MCAP MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCAP MCP ServerShow me the topics in session_003.mcap"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCAP MCP Server
Query your robot's MCAP recordings with SQL — straight from your LLM.
Setup
{
"mcpServers": {
"mcap-query": {
"command": "uvx",
"args": ["mcap-mcp-server[all]"]
}
}
}No install, no database, no API keys. Requires uv.
Related MCP server: GraphJin
Usage
Just talk to your LLM:
"Tell me what topics are in session_003.mcap"
"In session_017.mcap find all moments where voltage dropped below 22V"
"Correlate IMU acceleration with motor current."
"Compare average battery voltage across my last 5 runs"
"What version of mcap-mcp-server am I running? Update it"
Tools
Tool | Needs loading | What it does |
| no | Find MCAP files in your project (or any path) |
| no | Metadata, channels, attachments for a file |
| no | SQL table names & column types — for query planning |
| — | Decode MCAP into DuckDB (the LLM calls this automatically) |
| yes | Run SQL (full DuckDB — including ASOF JOIN) |
| no | Server version, available decoders, upgrade command |
Project documentation — configuration, Docker, development setup, and architecture.
Example SQL (under the hood)
-- 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_batteryPerformance
Metadata tools (list_recordings, get_recording_info, get_schema) return in < 1 ms regardless of file size. SQL queries execute in 1–20 ms once data is loaded. The one-time load_recording cost scales with file size:
Messages | File size | Load time | Memory | Query time |
1K | 23 KB | 8 ms | < 1 MB | 1 ms |
10K | 220 KB | 90 ms | 0.5 MB | 1–3 ms |
100K | 2.2 MB | 0.7 s | 5 MB | 1–5 ms |
500K | 11 MB | 3.9 s | 23 MB | 2–9 ms |
1M | 23 MB | 8 s | 46 MB | 2–13 ms |
2M | 48 MB | 18 s | 92 MB | 2–22 ms |
Measured on Apple M4 with JSON-encoded messages, 5 fields per message. Query times are median across aggregation, filter, and window function queries. Memory is the DuckDB in-memory footprint (default budget: 2 GB).
Tip: use
topicsandstart_time/end_timefilters onload_recordingto load only what you need.
Update
uvx mcap-mcp-server[all] --upgradeOr ask your LLM — the get_version tool returns the running version and the upgrade command.
License
GNU General Public License v3.0 — see LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/turkenberg/mcap_mcp_server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server