本README.md由AI生成
一个基于 FastMCP 构建的 高德地图 MCP 服务器,将高德地图 Web API 封装为 MCP 工具,可被任何 MCP 客户端(如 Claude Desktop、VS Code + Continue / Cline、LangChain Agent 等)直接调用。
💡 部分命名方式和逻辑借鉴了 qiao101660/gaode_mcp,在此致谢。
| 工具名 | 功能 | 核心输入 |
|---|---|---|
geocoding |
地理编码:地址 → 城市编码 / 区域编码 / 经纬度 | 结构化地址 + 可选城市 |
public_transit_route_planning |
公共交通路线规划(地铁/公交/步行/出租) | 起终点经纬度 + 城市编码 |
bicycle_route_schedule |
自行车骑行路线规划 | 起终点经纬度 |
automobile_driving_route_schedule |
驾车路线规划(支持策略/途经点/车牌限行) | 起终点经纬度 + 可选参数 |
keyword_search_of_poi |
关键字搜索 POI(美食/购物/景点等) | 关键字 + 可选区域 |
poi_around_given_location |
周边 POI 搜索 | 中心点经纬度 + 半径 + 类型 |
.
├── .env # API Key 和接口 URL 配置
├── gaode_map_config.py # 全局配置(超时、请求头)
├── gaode_map_mcp.py # MCP 服务器主入口(含所有工具定义)
└── README.md
前往 高德开放平台 注册并创建应用,获取 Web 服务 类型的 API Key。
git clone https://github.com/ColtM1873/Gaode-Map-MCP
cd Gaode-Map-MCPpip install fastmcp httpx python-dotenv编辑 .env 文件,填入你的 API Key:
GAODE_MAP_API_KEY="你的API Key,不加引号也可以"其余 URL 一般无需修改,除非高德 API 地址发生变更。
在客户端的 MCP 配置中添加:
{
"mcpServers": {
"gaode_map": {
"command": "python",
"args": ["/path/to/your/gaode_map_mcp.py"],
"transport": "stdio"
}
}
}注意: 把
/path/to/your/gaode_map_mcp.py替换为你本机上的实际路径。
配置后重启客户端,即可在对话中调用高德地图相关能力。
编辑 Claude Desktop 的 MCP 配置文件(通常在 ~/Library/Application Support/Claude/claude_desktop_config.json 或 %APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"gaode_map": {
"command": "python",
"args": ["/path/to/your/gaode_map_mcp.py"],
"transport": "stdio"
}
}
}from langchain_mcp_adapters.client import MultiServerMCPClient
map_client = MultiServerMCPClient(
{
"map_consult": {
"command": "python",
"args": ["/path/to/your/gaode_map_mcp.py"],
"transport": "stdio"
},
}
)
# 获取工具列表
tools = await map_client.get_tools()
# 在 Agent 中使用
from langgraph.prebuilt import create_react_agent
agent = create_react_agent(llm, tools)将结构化地址解析为城市编码(citycode)、区域编码(adcode)和经纬度(location)。
输入: address="北京市朝阳区阜通东大街6号", city="北京"
输出: citycode="010", adcode="110101", location="116.482086,39.990496"
⚡ 其他路线规划工具都依赖经纬度,不确定时请先用此工具查询。
规划地铁、公交、步行及少量出租车的组合出行方案。
city1/city2必须传 citycode(如北京是"010"),拿不准可通过geocoding获取。- 返回每条路线的总距离(米)、时间成本(秒)、换乘费用(元)、首末班车时间等。
自行车骑行路线规划,返回距离(米)、耗时(秒)、分段步骤等。
支持三种策略:
| strategy | 含义 |
|---|---|
0 |
速度优先(不一定最短) |
1 |
费用优先(不走收费路段) |
2 |
常规最快(默认,综合距离/耗时) |
还支持途经点(waypoints)、车牌号(plate,用于判断限行)、POI ID 等高级参数。
按关键字搜索兴趣点,返回 POI 的 ID、类型、名称、地址及商业信息(美食、购物、玩乐等)。
以指定经纬度为中心,搜索半径范围内的兴趣点。支持的 POI 类型包括:
| typecode | 类型 |
|---|---|
050000 |
餐饮服务 |
060000 |
购物服务 |
080000 |
体育休闲 |
100000 |
住宿服务 |
110000 |
风景名胜 |
140000 |
科教文化 |
python gaode_map_mcp.py将启动 MCP 服务器并监听 stdio,可用于调试或直接与 MCP 客户端对接。
如果这个项目对你有帮助,欢迎给一个 Star ⭐,这是对我最大的鼓励!
GPL-3.0 ©