项目简介
本仓库 'mcp-servers' 旨在提供基于 Serverless 平台的 MCP Server 实现示例。'start-mcp-amap-maps' 目录提供了一个基于 Node.js 和高德地图 API 的 MCP Server 示例,实现了多种地图相关的工具,可以方便地集成到 LLM 应用中,提供地理位置相关的上下文信息和功能。
主要功能点
- 地理编码与逆地理编码:提供地址和经纬度之间的互相转换,方便 LLM 理解和生成地理位置信息。
- 天气查询:根据城市名称或 Adcode 查询实时天气和天气预报,为 LLM 提供环境感知能力。
- 路径规划:支持步行、骑行、驾车和公交等多种出行方式的路径规划,帮助 LLM 解决出行方案相关问题。
- 地点信息服务:包括 IP 定位、关键词搜索、周边搜索和 POI 详情查询,提供丰富的地点信息检索能力。
- 距离测量:测量两点或多点之间的距离,支持直线距离、驾车距离和步行距离测量。
安装步骤
- 环境准备:确保已安装 Node.js 和 npm(Node.js 包管理器)。
- 下载代码:克隆 'devsapp/mcp-servers' GitHub 仓库到本地。
git clone https://github.com/devsapp/mcp-servers.git cd mcp-servers/start-mcp-amap-maps - 安装依赖:在 'start-mcp-amap-maps' 目录下,使用 npm 安装项目依赖。
npm install - 配置 API Key:
- 访问 高德地图开放平台 并注册账号,创建应用并获取 Web 服务 API Key。
- 设置环境变量 'AMAP_MAPS_API_KEY',将获取到的 API Key 填入。例如,在 Linux/macOS 系统中,可以执行以下命令:
或者将 'AMAP_MAPS_API_KEY=你的高德地图APIKey' 添加到 '.env' 文件中 (仓库中没有,需要用户自己创建)。export AMAP_MAPS_API_KEY=你的高德地图APIKey
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令 (command) 及其参数 (args) 才能与 MCP 服务器建立连接。以下是 'start-mcp-amap-maps' 的服务器配置信息,请复制到 MCP 客户端的服务器配置中。
{ "serverName": "amap-maps-mcp-server", "command": "node", "args": ["/path/to/mcp-servers/start-mcp-amap-maps/src/code/index.js"] }
参数注释:
- serverName: MCP 服务器的名称,可以自定义,用于在客户端中标识该服务器。
- command: 启动 MCP 服务器的命令,这里使用 'node' 表示使用 Node.js 运行时环境。
- args: 启动命令的参数,指向 'start-mcp-amap-maps' 目录下的 'index.js' 文件,请将 '/path/to/mcp-servers' 替换为实际的仓库代码路径。
基本使用方法
- 启动 MCP Server:在 'start-mcp-amap-maps' 目录下,运行以下命令启动 MCP Server。
启动成功后,会在控制台输出 'Amap Maps MCP Server running on stdio',表示服务器已在标准输入输出流 (stdio) 上运行并等待客户端连接。npm start - 配置 MCP 客户端:在 MCP 客户端中,添加上述服务器配置信息,确保客户端能够连接到该 MCP Server。
- 调用工具:MCP 客户端可以通过 JSON-RPC 协议与 MCP Server 通信。
- 使用 'ListTools' 请求获取该 MCP Server 提供的工具列表,例如 'maps_regeocode'(逆地理编码)、'maps_weather'(天气查询)、'maps_direction_driving'(驾车路径规划)等。
- 使用 'CallTool' 请求调用具体的工具,并传入工具所需的参数。例如,调用 'maps_weather' 工具查询北京天气,需要传入 'city: "北京"' 作为参数。
- MCP Server 会执行相应的地图 API 调用,并将结果以 JSON-RPC 响应返回给客户端。
示例:
假设 MCP 客户端需要调用 'maps_regeocode' 工具查询经纬度 '116.397428,39.90923' 的地址信息,则可以发送如下 JSON-RPC 请求:
{ "jsonrpc": "2.0", "method": "CallTool", "params": { "name": "maps_regeocode", "arguments": { "location": "116.397428,39.90923" } }, "id": "123" }
MCP Server 将会返回包含地址信息的 JSON-RPC 响应。
信息
分类
网页与API