项目简介
本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,使用 Python 语言开发。它将高德地图的多个常用 API 封装成 MCP 工具,使得 LLM 应用可以通过标准的 MCP 协议调用高德地图的地理信息服务,例如地址解析、逆地址解析、IP 定位、天气查询、路径规划、距离测量、POI 搜索等。
主要功能点
- 地理编码与逆地理编码: 提供地址和经纬度之间的相互转换。
- IP 定位: 根据 IP 地址查询地理位置信息。
- 天气查询: 获取指定城市的天气预报信息。
- 路径规划: 支持步行、骑行、驾车和公共交通等多种方式的路径规划。
- 距离测量: 计算两点之间的距离。
- POI 搜索: 支持关键词搜索和周边搜索,查找地点信息。
- POI 详情查询: 获取 POI 的详细信息。
所有功能均通过 MCP 协议以标准化的方式暴露给 LLM 客户端,方便集成和使用。
安装步骤
- 环境准备: 确保已安装 Python 3.8 或更高版本。建议使用虚拟环境。
- 下载仓库: 使用 Git 克隆仓库到本地:
git clone https://github.com/sugarforever/amap-mcp-server.git cd amap-mcp-server - 安装依赖: 安装项目依赖的 Python 库:
pip install fastmcp requests - 配置 API Key: 你需要申请高德地图 API Key,并将其设置为环境变量 'AMAP_MAPS_API_KEY'。例如,在 Linux 或 macOS 中,可以执行:
在 Windows 中,可以使用 'set' 命令设置。export AMAP_MAPS_API_KEY=你的高德地图API密钥
服务器配置
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