项目简介

本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,使用 Python 语言开发。它将高德地图的多个常用 API 封装成 MCP 工具,使得 LLM 应用可以通过标准的 MCP 协议调用高德地图的地理信息服务,例如地址解析、逆地址解析、IP 定位、天气查询、路径规划、距离测量、POI 搜索等。

主要功能点

  • 地理编码与逆地理编码: 提供地址和经纬度之间的相互转换。
  • IP 定位: 根据 IP 地址查询地理位置信息。
  • 天气查询: 获取指定城市的天气预报信息。
  • 路径规划: 支持步行、骑行、驾车和公共交通等多种方式的路径规划。
  • 距离测量: 计算两点之间的距离。
  • POI 搜索: 支持关键词搜索和周边搜索,查找地点信息。
  • POI 详情查询: 获取 POI 的详细信息。

所有功能均通过 MCP 协议以标准化的方式暴露给 LLM 客户端,方便集成和使用。

安装步骤

  1. 环境准备: 确保已安装 Python 3.8 或更高版本。建议使用虚拟环境。
  2. 下载仓库: 使用 Git 克隆仓库到本地:
    git clone https://github.com/sugarforever/amap-mcp-server.git
    cd amap-mcp-server
  3. 安装依赖: 安装项目依赖的 Python 库:
    pip install fastmcp requests
  4. 配置 API Key: 你需要申请高德地图 API Key,并将其设置为环境变量 'AMAP_MAPS_API_KEY'。例如,在 Linux 或 macOS 中,可以执行:
    export AMAP_MAPS_API_KEY=你的高德地图API密钥
    在 Windows 中,可以使用 'set' 命令设置。

服务器配置

MCP 客户端需要配置以下信息才能连接到本 MCP 服务器。这是一个 JSON 格式的配置示例,请根据你的实际情况进行配置:

{
    "serverName": "amap-maps",  // 服务器名称,与 server.py 中 FastMCP 初始化时传入的名称一致
    "command": "python",       // 启动服务器的命令,这里使用 python 解释器
    "args": [                 // 启动命令的参数
        "-m",                 //  -m 参数用于执行包
        "amap_mcp_server"    //  执行的 Python 包名,对应项目中的 amap_mcp_server 包
    ]
    // transport 字段可以省略,默认使用 stdio 传输协议
}

配置说明:

  • 'serverName': 必须设置为 'amap-maps',这与服务器代码中定义的服务名称一致。
  • 'command': 启动服务器的命令,通常为 'python' 或 'python3',取决于你的 Python 环境配置。
  • 'args': 启动命令的参数,使用 '"-m amap_mcp_server"' 可以直接运行 'amap_mcp_server' 包作为主程序启动服务器。

基本使用方法

配置好 MCP 客户端后,客户端可以通过 JSON-RPC 协议向本服务器发送请求,调用高德地图的各项工具。例如,要使用 'maps_regeocode' 工具进行逆地理编码,客户端需要构造符合 MCP 协议的 JSON-RPC 请求,并将经纬度坐标作为参数发送给服务器。服务器将调用高德地图 API 并将结果以 JSON-RPC 响应的形式返回给客户端。

具体工具的参数和返回值请参考 'README.md' 文件中 高德地图 MCP 服务工具列表 部分的描述。

注意: 本 MCP 服务器主要通过 stdio 进行通信,适用于本地部署和测试。如果需要支持更复杂的网络环境,可能需要考虑其他传输协议,并对服务器代码进行相应的扩展。

信息

分类

网页与API