项目简介

量子磁导航MCP服务器是一个基于Model Context Protocol (MCP) 的后端实现,它将量子磁力导航系统的核心功能以标准化的方式提供给LLM客户端。通过该服务器,LLM应用可以查询地球磁场数据,进行无GPS定位,校准磁传感器,以及模拟导航轨迹,从而在GPS受限的环境中实现精确的位置感知和导航能力。

主要功能点

  • 磁场查询 (query_magnetic_field):允许LLM客户端查询特定地理坐标的磁场强度,支持双线性插值和双三次插值,为理解环境磁场信息提供数据基础。
  • 位置估计 (estimate_position):利用扩展卡尔曼滤波(EKF)算法,结合磁场测量值估计设备当前位置,即使在GPS不可用时也能实现定位。
  • 传感器校准 (calibrate_sensor):提供磁力计传感器的校准工具,支持椭球拟合和简单校准方法,提高磁场数据的精度。
  • 轨迹模拟 (simulate_trajectory):生成模拟的导航轨迹数据,包括位置、时间和磁场强度等信息,用于测试和验证导航算法及LLM应用。

安装步骤

本地开发安装

  1. 确保已安装 Python 3.11 或更高版本。
  2. 克隆代码仓库到本地。
  3. 在仓库根目录下,使用 pip 安装开发依赖:
    pip install -e ".[dev]"

Docker 安装

  1. 确保已安装 Docker。
  2. 克隆代码仓库到本地。
  3. 在仓库根目录下,构建 Docker 镜像:
    make docker-build

服务器配置

MCP客户端需要配置以下信息以连接到量子磁导航MCP服务器。配置信息为 JSON 格式,示例如下:

{
  "量子磁导航服务器": {
    "serverName": "QMagNavServer",  // 服务器名称,可自定义
    "command": "python",           // 启动命令,这里使用 python
    "args": [                      // 启动参数
      "-m",                       // 运行模块
      "scripts.run_mcp_server_fixed", // MCP服务器启动脚本
      "--map",                    // 指定磁场地图文件路径参数
      "path/to/magnetic_map.tif"   // 磁场地图文件路径,**需要替换为实际的地图文件路径**
    ]
  }
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,可以自定义,用于在客户端识别服务器。
  • 'command': 启动 MCP 服务器的命令,通常为 Python 解释器 'python' 或 'python3'。
  • 'args': 启动命令的参数列表,用于配置 MCP 服务器的行为。
    • '-m scripts.run_mcp_server_fixed': 指定运行 'scripts' 目录下的 'run_mcp_server_fixed.py' 脚本,该脚本是 MCP 服务器的入口点。
    • '--map path/to/magnetic_map.tif': 重要参数,指定磁场地图文件的路径。请务必将 'path/to/magnetic_map.tif' 替换为实际的磁场地图文件路径,支持 GeoTIFF 或 NetCDF 格式的地图文件。

注意:

  • 请根据实际的磁场地图文件路径替换 'args' 中的 '"path/to/magnetic_map.tif"'。
  • 如果使用 Docker 部署,请参考仓库 'README.md' 中的 Docker 相关配置。

基本使用方法

  1. 启动 MCP 服务器

    • 本地开发:运行 'scripts/run_mcp_server_fixed.py' 脚本,并使用 '--map' 参数指定磁场地图文件路径。例如:
      python -m scripts.run_mcp_server_fixed --map tests/data/5x5_grid.tif
    • Docker:使用 'make docker-run' 命令启动 Docker 容器运行 MCP 服务器。
  2. 运行 MCP 客户端

    • 仓库中提供了 Python 示例客户端 'examples/mcp_client_example_fixed.py',可以参考该示例编写或使用 MCP 客户端工具连接到服务器。
    • 运行示例客户端,并使用 '--map' 参数指定磁场地图文件路径,与服务器使用的地图文件保持一致。例如:
      python examples/mcp_client_example_fixed.py --map tests/data/5x5_grid.tif
  3. 通过 MCP 客户端调用工具

    • 客户端启动后,可以使用 'list_tools' 命令列出服务器提供的工具。
    • 使用 'call_tool' 命令调用具体的工具,例如 'query_magnetic_field'、'estimate_position' 等,并根据工具的输入参数要求提供相应的参数。
    • 客户端会接收并显示服务器返回的结果,包括文本信息和详细的数据(JSON 格式)。

请参考 'examples/mcp_client_example_fixed.py' 示例代码,了解如何使用 Python MCP 客户端库与服务器进行交互,并调用不同的工具。

信息

分类

AI与计算