项目简介

本仓库 'mcp-servers' 旨在提供基于 Serverless 平台的 MCP Server 实现示例。'start-mcp-amap-maps' 目录提供了一个基于 Node.js 和高德地图 API 的 MCP Server 示例,实现了多种地图相关的工具,可以方便地集成到 LLM 应用中,提供地理位置相关的上下文信息和功能。

主要功能点

  • 地理编码与逆地理编码:提供地址和经纬度之间的互相转换,方便 LLM 理解和生成地理位置信息。
  • 天气查询:根据城市名称或 Adcode 查询实时天气和天气预报,为 LLM 提供环境感知能力。
  • 路径规划:支持步行、骑行、驾车和公交等多种出行方式的路径规划,帮助 LLM 解决出行方案相关问题。
  • 地点信息服务:包括 IP 定位、关键词搜索、周边搜索和 POI 详情查询,提供丰富的地点信息检索能力。
  • 距离测量:测量两点或多点之间的距离,支持直线距离、驾车距离和步行距离测量。

安装步骤

  1. 环境准备:确保已安装 Node.js 和 npm(Node.js 包管理器)。
  2. 下载代码:克隆 'devsapp/mcp-servers' GitHub 仓库到本地。
    git clone https://github.com/devsapp/mcp-servers.git
    cd mcp-servers/start-mcp-amap-maps
  3. 安装依赖:在 'start-mcp-amap-maps' 目录下,使用 npm 安装项目依赖。
    npm install
  4. 配置 API Key
    • 访问 高德地图开放平台 并注册账号,创建应用并获取 Web 服务 API Key。
    • 设置环境变量 'AMAP_MAPS_API_KEY',将获取到的 API Key 填入。例如,在 Linux/macOS 系统中,可以执行以下命令:
      export AMAP_MAPS_API_KEY=你的高德地图APIKey
      或者将 'AMAP_MAPS_API_KEY=你的高德地图APIKey' 添加到 '.env' 文件中 (仓库中没有,需要用户自己创建)。

服务器配置

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' 替换为实际的仓库代码路径

基本使用方法

  1. 启动 MCP Server:在 'start-mcp-amap-maps' 目录下,运行以下命令启动 MCP Server。
    npm start
    启动成功后,会在控制台输出 'Amap Maps MCP Server running on stdio',表示服务器已在标准输入输出流 (stdio) 上运行并等待客户端连接。
  2. 配置 MCP 客户端:在 MCP 客户端中,添加上述服务器配置信息,确保客户端能够连接到该 MCP Server。
  3. 调用工具: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