leng-2024/agent-with-mcp
If you are the rightful owner of agent-with-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
A geolocation intelligent assistant based on Baidu Map API, DeepSeek API, and MCP toolchain, effective only in China.
🗺️ 地点检索与路线规划 Agent
基于 Baidu Map API + DeepSeek API + MCP工具链 的地理信息智能助手(只在中国地区有效)
本项目实现了一个支持 地点检索 与 路线规划 的智能 Agent,并通过 MCP(Model Context Protocol)暴露一组可供任意大模型使用的地理工具。 你可以:
- 直接运行内置的 DeepSeek 驱动的 Agent
- 将 MCP 服务部署到服务器上,供任意兼容 MCP 的大模型使用
✨ 功能简介
本项目的 Agent 支持以下核心功能:
📍 地点检索
- 地址转坐标
- 根据经纬度搜索附近地点
- 获取用户 IP 并反查地理位置
🚗 多方式路线规划
基于百度地图 API,支持获取两地之间的:
- 驾车路线
- 公交路线
- 步行路线
- 骑行路线 (含距离、耗时、路线信息)
🤖 智能规划 Agent
- 主体运行于
ds_model.py - 使用 DeepSeek Chat 作为推理模型
- 根据用户输入自动决定调用哪些 MCP 工具
- 最终以 Markdown 形式输出结构化结果(路线建议、比较、推荐等)
🔧 环境准备
1. 创建虚拟环境(Windows)
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
※ 若没有 requirements.txt,你也可以安装:
pip install openai httpx fastmcp
🔑 API设置
▶️ 方式一:本地运行 Agent(需要两个 API Key)
运行 ds_model.py 时必须设置:
| 环境变量 | 说明 |
|---|---|
| BAIDU_MAP_API_KEY | 百度地图 Web API 的 AK |
| DEEPSEEK_API_KEY | DeepSeek API Key,用于运行 agent 的大模型 |
▶️ 方式二:仅使用 MCP 工具(只需百度地图 API Key)
如果你要把 MCP 服务接入 第三方大模型应用(如 OpenAI + MCP),则只需要:
BAIDU_MAP_API_KEY
因为大模型由外部提供,不需要 DeepSeek API。
🚀 运行方式
✅ 方式一:直接运行 Agent(推荐)
运行 ds_model.py 前必须设置:
| 环境变量 | 说明 |
|---|---|
| BAIDU_MAP_API_KEY | 百度地图 Web API 的 AK |
| DEEPSEEK_API_KEY | DeepSeek API Key,用于运行 agent 的大模型 |
设置示例:
Windows PowerShell
setx BAIDU_MAP_API_KEY "你的百度AK"
setx DEEPSEEK_API_KEY "你的deepseek-key"
运行agent:
python ds_model.py
✅ 方式二:运行 MCP 工具服务(供其他大模型调用)
python baidu_map_search_mcp.py
运行后会以 stdio transport 的方式启动 MCP 服务
在配置时,填入 MCP 服务器路径即可,例如:
{
"mcpServers": {
"search_mcp": {
"command": "<YOUR_VENV_PYTHON_PATH>",
"args": ["<YOUR_BAIDU_MAP_SEARCH_MCP_PATH>"],
"env": {
"BAIDU_MAPS_API_KEY": "<YOUR_API_KEY>"
}
}
}
}
🛠️ MCP 工具能力说明
search_mcp.py 定义了多个可被调用的工具:
| 工具 | 功能 |
|---|---|
get_ip() | 获取用户公网 IP |
get_location_ip(ip) | 通过 IP 获取地理位置 |
get_location_text(address) | 地址转经纬度 |
get_places(query, location, radius) | 附近地点搜索 |
get_place_driving_distance(origin, destination) | 驾车路线规划 |
get_place_walking_distance(origin, destination) | 步行路线 |
get_place_riding_distance(origin, destination) | 骑行路线 |
get_place_transit_distance(origin, destination) | 公交路线 |
这些能力会自动被 Agent 或第三方大模型调用,用于路线规划和地点检索。
📌 示例对话(本地运行 Agent)
用户:
帮我查一下广州塔附近有什么咖啡店?
Agent: (自动执行:地址→坐标→地点搜索)
## ☕ 广州塔附近的咖啡店(半径1000米)
- 瑞幸咖啡(380m)
- 星巴克(520m)
- MANNER COFFEE(810m)
### 📍 推荐理由
距离近、评分高、步行即达。