CodeBuddy 中配置与使用百度地图 MCP 全流程指南
CodeBuddy 中配置与使用百度地图 MCP 全流程指南
本指南汇总了在 CodeBuddy 里从零接入百度地图 MCP、踩坑排查到实战跑通「地址转坐标 + 搜周边咖啡店」的完整过程。
一、准备工作:申请 API Key(AK)
- 打开 百度地图开放平台控制台
- 注册 / 登录 → 创建**「服务端」**类型应用,拿到AK(API Key)
- 关键一步:在应用里启用「MCP (SSE)」服务(否则可能调不通或性能较差)
- ⚠️ AK 属于敏感凭证,明文存在
mcp.json中,切勿提交到 git 仓库
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
二、写入 MCP 配置(mcp.json)
编辑C:\Users\admin\.codebuddy\mcp.json,在mcpServers中追加:
"baidu-map":{"command":"D:/SoftWare/node22/npx.cmd","args":["-y","@baidumap/mcp-server-baidu-map"],"env":{"BAIDU_MAP_API_KEY":"<你的AK>"},"description":"百度地图LBS服务(地理编码/POI/路线/天气/交通)","disabled":false}两种接入方式对比:
| 方式 | 包名 | 环境变量 |
|---|---|---|
| Node.js(推荐) | @baidumap/mcp-server-baidu-map | BAIDU_MAP_API_KEY(无 S) |
| Python | mcp-server-baidu-maps | BAIDU_MAPS_API_KEY(有 S) |
⚠️ 变量名两个版本不一样,Node 版用
BAIDU_MAP_API_KEY,Python 版才用BAIDU_MAPS_API_KEY,配错会导致鉴权失败。
生效方式:写入后,在 CodeBuddy 对该 MCP 做禁用 → 启用(或重启 CodeBuddy)。
三、工具清单(10 个标准接口)
| 工具 | 作用 |
|---|---|
map_geocode | 地址 → 经纬度坐标 |
map_reverse_geocode | 坐标 → 地址/区域/周边 POI |
map_search_places | 按关键词/类型/半径搜 POI |
map_place_details | 按 POI 唯一 ID 取详情 |
map_directions | 两点路线规划(驾车/步行/骑行/公交) |
map_directions_matrix | 批量路线矩阵(多起点→多终点) |
map_weather | 按区域/坐标查实时 + 预报天气 |
map_ip_location | 通过 IP 定位城市 + 坐标 |
map_road_traffic | 查道路/区域实时交通状况 |
map_poi_extract* | 从自由文本提取 POI(需高级权限) |
四、踩坑排查:APP IP 校验失败
现象
首次调用map_geocode返回:
Geocoding failed: APP IP校验失败根因
该 AK 在开放平台开启了「IP 白名单」校验,当前机器发起请求的出口 IP 不在白名单中,被服务端拒绝。
注意:请求能到达百度服务器,说明机器本身能联网,问题只在白名单。
误入的方案 B(SN 校验)—— 不可行
尝试改用 AK + SK 的 SN 签名模式,但查官方仓库(baidu-maps/mcp)确认:
- 该 MCP Server只支持 AK 鉴权
- 没有任何 SK / SN 签名的环境变量,也不会自己算签名
- 即使在开放平台把 AK 类型改为 SN 校验,MCP 发出的请求不带
sn参数,百度照样拒绝
结论:对 MCP 唯一友好的是 IP 白名单模式,方案 B 不成立。
五、正确解法:方案 A —— 加 IP 白名单
- 查当前公网出口 IP(本机实测)`
- 打开 百度地图开放平台控制台
- 找到该 AK 对应的应用 → 编辑 →IP 白名单加上
- 临时调试可填
0.0.0.0/0(放开所有 IP,用完改回)
- 临时调试可填
- 保存后,直接重跑即可(无需重启 MCP)
若以后又报「APP IP校验失败」,多半是公网 IP 变了(动态分配),重新查 IP 再加一次白名单即可。
六、实战跑通:地址转坐标 + 搜周边咖啡店
步骤 1:地理编码(地址 → 坐标)
调用map_geocode,输入北京市海淀区中关村大街:
- 经度 (lng):
116.324104 - 纬度 (lat):
39.981942 - 解析级别:道路(level=道路)
步骤 2:检索周边咖啡店
调用map_search_places,中心点39.98194156690778,116.32410398706402,关键词咖啡。
该 MCP 的
search_places未暴露radius参数,故对返回结果用Haversine 直线距离过滤 2km 边界。
结果(共 10 家,按由近及远):
| # | 名称 | 距中心 | 地址 |
|---|---|---|---|
| 1 | 书和咖啡 | ~61 m | 海淀区中关村大街31号 |
| 2 | 瑞幸咖啡(海淀剧院店) | ~139 m | 中关村大街28号-1号一层 |
| 3 | OKCOFFEE福气咖啡(海淀文化艺术大厦店) | ~211 m | 中关村大街甲28号海淀文化艺术大厦B座7层 |
| 4 | 弄咖啡 GNU COFFEE(银网中心店) | ~270 m | 知春路113号银网中心-B座F1 |
| 5 | MANNER COFFEE(新中关购物中心店) | ~316 m | 中关村大街19号新中关大厦KL105 |
| 6 | MMaoCafe猫叔咖啡(人民大学店) | ~445 m | 人民大学北路静园7号楼1层 |
| 7 | 瑞幸咖啡(互联网金融中心店) | ~534 m | 丹棱街1号互联网金融中心一层大堂 |
| 8 | 瑞幸咖啡(科学院南路店) | ~632 m | 中关村科学院南路17号一层罗森 |
| 9 | MOJO(中关村店) | ~666 m | 中关村大街11号e世界财富中心A座底商 |
| 10 | 瑞幸咖啡(四通大厦店) | ~721 m | 海淀大街2号四通大厦一层大堂 |
距离为直线估算,实际步行/驾车距离更长;坐标为百度 POI 数据,可能与门牌有微小偏差。
七、关键要点速记
- 配置变量名:Node 版
BAIDU_MAP_API_KEY(无 S),别配错。 - 鉴权只有 AK 一种:SN 校验在 MCP 层无法实现,老老实实走 IP 白名单。
- 白名单排查:报「APP IP校验失败」= 出口 IP 未加白,查
https://ip.3322.net加进去。 - 禁用 → 启用:改完
mcp.json要重启或切换连接才生效。 - 经典三件套:
map_geocode+map_search_places+map_directions覆盖绝大多数 LBS 场景。