使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,它将百度地图的多个API接口封装成工具 (Tools),通过标准化的MCP协议,供支持MCP协议的LLM客户端(如 OpenAI Agents SDK)调用。该服务器允许LLM应用便捷地接入和使用百度地图的地理编码、地点检索、路线规划、天气查询等服务,从而扩展LLM在地理空间信息处理方面的能力。

主要功能点

  • 地理编码与逆地理编码:将地址转换为经纬度坐标,或将经纬度坐标反向解析为地址信息。
  • 地点检索:支持关键词、城市、周边地点检索,帮助LLM查找POI信息。
  • 地点详情:获取指定POI的详细信息,如评分、营业时间等。
  • 批量算路:计算多个起点到终点之间的距离和行驶时间,支持驾车、骑行、步行等多种模式。
  • 路线规划:提供驾车、骑行、步行、公交等多种出行方式的路线规划,并对非公交路线规划结果进行精简,提升LLM处理效率。
  • 天气查询:根据行政区划或经纬度坐标查询实时天气和未来天气预报。
  • IP定位:根据用户IP地址获取当前位置信息。
  • 实时路况查询:查询道路、区域的实时交通拥堵情况。
  • POI智能提取:从文本中智能提取POI相关信息(需要高级API权限)。

安装步骤

  1. 克隆仓库
    git clone https://github.com/Nehcknarf/openai-agents-with-mcp
    cd openai-agents-with-mcp
  2. 安装 Python 3.13 (如果尚未安装) 按照仓库 'README.md' 提示,推荐使用 'uv' 安装 Python 3.13:
    uv python install 3.13
  3. 初始化项目并创建虚拟环境
    uv init
    uv venv
  4. 激活虚拟环境
    • Windows:
      .venv\Scripts\activate
    • macOS/Linux:
      source .venv/bin/activate
  5. 安装依赖包
    uv add openai-agents "mcp[cli]"
  6. 移除示例文件 (可选)
    rm main.py

服务器配置

MCP客户端(例如 'client.py')需要配置以下信息才能连接到百度地图MCP服务器。配置信息为 JSON 格式,在客户端代码中指定,无需用户手动修改服务器端代码。

{
  "server name": "baidu-map",  // MCP 服务器的名称,客户端用于标识和引用
  "command": "uv",           // 启动服务器的命令,这里使用 uv
  "args": [                   // 启动服务器命令的参数列表
    "run",                    // uv run 子命令,用于运行 Python 脚本
    "--with",                 // uv run 的参数,指定运行环境包含 mcp[cli] 扩展
    "mcp[cli]",               // mcp[cli] 扩展,提供 MCP CLI 工具
    "mcp",                    // 实际执行的命令,调用 mcp CLI
    "run",                    // mcp CLI 的 run 子命令,用于启动 MCP 服务器
    "baidu_map_mcp_server/map.py" // MCP 服务器的入口脚本,即 map.py 文件路径
  ]
}

基本使用方法

  1. 配置 API 密钥
    • 在项目根目录下创建 '.env' 文件。
    • 将 OpenAI API Key、DeepSeek API Key 和 百度地图 API Key 填入 '.env' 文件中。请务必前往百度地图开放平台申请API Key。
      OPENAI_API_KEY=sk-...
      DEEPSEEK_API_KEY=sk-...
      BAIDU_MAPS_API_KEY=YOUR_BAIDU_MAPS_API_KEY
  2. 运行客户端
    • 确保已激活虚拟环境。
    • 运行 'client.py' 文件。客户端会自动启动并连接到百度地图MCP服务器。
      uv run client.py
  3. 与 Agent 交互
    • 客户端代码 'client.py' 中已配置一个名为 "Assistant" 的 Agent,并设置其使用百度地图MCP服务器。
    • Agent 的 'instructions' 设置为 "使用工具接入地图服务,实现查找周边地点、 规划出行路线等。"
    • 运行 'client.py' 后,Agent 会执行预设的查询 "北京到深圳的距离?",并输出结果。
    • 你可以修改 'client.py' 中的 'message' 变量来测试其他地图相关的问题。

注意:

  • 运行前请确保已正确安装所有依赖包并配置了必要的 API Key。
  • 本示例客户端使用了 OpenAI Agents SDK 和 'MCPServerStdio',演示了如何通过标准输入输出流 (stdio) 与 MCP 服务器进行通信。
  • 如果需要替换默认模型为 DeepSeek-V3,请取消 'client.py' 中 DeepSeek 相关的代码注释,并注释掉 OpenAI 相关的代码。

信息

分类

网页与API