项目简介
量子磁导航MCP服务器是一个基于Model Context Protocol (MCP) 的后端实现,它将量子磁力导航系统的核心功能以标准化的方式提供给LLM客户端。通过该服务器,LLM应用可以查询地球磁场数据,进行无GPS定位,校准磁传感器,以及模拟导航轨迹,从而在GPS受限的环境中实现精确的位置感知和导航能力。
主要功能点
- 磁场查询 (query_magnetic_field):允许LLM客户端查询特定地理坐标的磁场强度,支持双线性插值和双三次插值,为理解环境磁场信息提供数据基础。
- 位置估计 (estimate_position):利用扩展卡尔曼滤波(EKF)算法,结合磁场测量值估计设备当前位置,即使在GPS不可用时也能实现定位。
- 传感器校准 (calibrate_sensor):提供磁力计传感器的校准工具,支持椭球拟合和简单校准方法,提高磁场数据的精度。
- 轨迹模拟 (simulate_trajectory):生成模拟的导航轨迹数据,包括位置、时间和磁场强度等信息,用于测试和验证导航算法及LLM应用。
安装步骤
本地开发安装
- 确保已安装 Python 3.11 或更高版本。
- 克隆代码仓库到本地。
- 在仓库根目录下,使用 pip 安装开发依赖:
pip install -e ".[dev]"
Docker 安装
- 确保已安装 Docker。
- 克隆代码仓库到本地。
- 在仓库根目录下,构建 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 相关配置。
基本使用方法
-
启动 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 服务器。
- 本地开发:运行 'scripts/run_mcp_server_fixed.py' 脚本,并使用 '--map' 参数指定磁场地图文件路径。例如:
-
运行 MCP 客户端:
- 仓库中提供了 Python 示例客户端 'examples/mcp_client_example_fixed.py',可以参考该示例编写或使用 MCP 客户端工具连接到服务器。
- 运行示例客户端,并使用 '--map' 参数指定磁场地图文件路径,与服务器使用的地图文件保持一致。例如:
python examples/mcp_client_example_fixed.py --map tests/data/5x5_grid.tif
-
通过 MCP 客户端调用工具:
- 客户端启动后,可以使用 'list_tools' 命令列出服务器提供的工具。
- 使用 'call_tool' 命令调用具体的工具,例如 'query_magnetic_field'、'estimate_position' 等,并根据工具的输入参数要求提供相应的参数。
- 客户端会接收并显示服务器返回的结果,包括文本信息和详细的数据(JSON 格式)。
请参考 'examples/mcp_client_example_fixed.py' 示例代码,了解如何使用 Python MCP 客户端库与服务器进行交互,并调用不同的工具。
信息
分类
AI与计算