agent-with-mcp

leng-2024/agent-with-mcp

3.2

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.

Tools
8
Resources
0
Prompts
0

🗺️ 地点检索与路线规划 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_KEYDeepSeek 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_KEYDeepSeek 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)

### 📍 推荐理由
距离近、评分高、步行即达。