SQL查询机器人记录工具

MCAP MCP Server是一个无需安装、无需数据库、无需API密钥的工具,允许用户通过SQL查询机器人的MCAP记录,直接从LLM中操作。

  • by turkenberg
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 turkenberg/mcap_mcp_server

使用说明

MCAP MCP服务器

查询您的机器人 大司令部自动数据处理计划 使用SQL进行录制——直接来自您的法学硕士。

设置

{
  "mcpServers": {
    "mcap-query": {
      "command": "uvx",
      "args": ["mcap-mcp-server[all]"]
    }
  }
}

没有安装,没有数据库,没有API密钥。需要 紫外线.

用法

只需与您的法学硕士交谈:

  • “告诉我session_003.mcap中有哪些主题”
  • “在session_017.mcap中,找到电压降至22V以下的所有时刻”
  • “将IMU加速度与电机电流相关联。”
  • “比较我最近5次跑步的平均电池电压”
  • “我正在运行什么版本的mcap-mcp服务器?更新它”

工具

工具 需要加载 它的作用
list_recordings no 在项目(或任何路径)中查找MCAP文件
get_recording_info no 文件的元数据、频道、附件
get_schema no SQL表名和列类型--用于查询规划
load_recording — 将MCAP解码为DuckDB (LLM会自动调用此功能)
query 是 运行SQL(完整的DuckDB——包括ASOF JOIN)
get_version 否 服务器版本、可用解码器、升级命令

项目文档 --配置、Docker、开发设置和架构。

SQL示例(幕后)

-- Time-windowed stats
SELECT (timestamp_us / 1000000) as second,
       AVG(voltage) as avg_v, MIN(voltage) as min_v
FROM battery GROUP BY second ORDER BY second

-- Cross-sensor correlation via ASOF JOIN
SELECT b.timestamp_us, b.voltage, i.linear_acceleration_x
FROM battery b ASOF JOIN imu i ON b.timestamp_us >= i.timestamp_us

-- Multi-recording comparison
SELECT 'run1' as run, AVG(voltage) FROM r1_battery
UNION ALL
SELECT 'run2', AVG(voltage) FROM r2_battery

演出

元数据工具(list_recordings, get_recording_info, get_schema)返回 <1毫秒 而不管文件大小。SQL查询在中执行 1-20毫秒 一旦数据被加载。一次性 load_recording 成本随文件大小而变化:

消息 文件大小 加载时间 内存 查询时间
1K 23 KB 8毫秒 <1 MB 1毫秒
10K 220 KB 90毫秒 0.5 MB 1–3毫秒
100K 2.2 MB 0.7秒 5 MB 1-5毫秒
500K 11 MB 3.9秒 23 MB 2-9毫秒
1M 23 MB 8秒 46 MB 2-13毫秒
2M 48 MB 18秒 92 MB 2-22毫秒

在Apple M4上使用JSON编码的消息进行测量,每条消息有5个字段。查询时间是聚合、过滤和窗口函数查询的中值。内存是DuckDB的内存占用(默认预算:2 GB)。

提示: 使用 topics 和 start_time/end_time 过滤器打开 load_recording 只加载您需要的内容。

更新

uvx mcap-mcp-server[all] --upgrade

或者问你的法学硕士 get_version 工具返回运行版本和升级命令。

许可证

GNU通用公共许可证v3.0--请参阅 许可证.