bagel

Extelligence-ai/bagel

3.6

If you are the rightful owner of bagel and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

Bagel is a tool designed for fast extraction, transformation, and analysis of robotics data, supporting various log formats and offering extensibility for additional formats.


Bagel lets you chat with your robotics data.

For example, you can ask Bagel to check a PX4 drone's IMU data for hard landings:

Bagel can also propose fixes for detected errors in your robot:

Bagel works with a wide range of common robotics and sensor log formats out of the box. Don't see your format? Open a ticket.

Format
ROS 2 (.mcap, .db3)
ROS 1 (.bag)
PX4 (.ulg)
ArduPilot (.bin)

Don't forget to join our Discord server! (We messed up our Discord invite before. This link should add you as a member automatically.)

Quickstart

We are using ROS2 Kilted and Claude Code as example.

source /opt/ros/kilted/setup.sh  # Source ROS2 dependencies
uv sync --group ros2             # Install PyPI packages
uv run main.py up mcp            # Start Bagel MCP server

Open another terminal and run:

# Add Bagel MCP server to Claude Code
claude mcp add --transport sse bagel http://localhost:8000/sse

# Launch Claude Code
claude

# Happy prompting
> Summarize the metadata of robolog "./doc/tutorials/data/ros2".

The Bagel MCP server is not exclusively tied to Claude. You're free to integrate your preferred LLMs with Bagel.

Tutorials

Running in Docker 🐳

To run Bagel without installing local dependencies like ROS, you can use our provided Docker images. Make sure you have Docker Desktop installed. This example uses ROS 2 Kilted.

Mount Your Data

First, give the container access to your robolog files. Open the file and find the service you want to use (e.g., ros2-kilted). Edit the volumes section to link your local data folder to the container's data folder.

services:
  ros2-kilted:
    ...
    # volumes:                                     <-- ✅ Uncomment
    #   - <path-to-local-data>:/home/ubuntu/data   <-- ✅ Uncomment & Replace

Your local robolog files will be accessible inside the container at /home/ubuntu/data.

Launch the MCP Server

Build and start the Bagel MCP server in a container with this command.

docker compose run --build --service-ports ros2-kilted uv run main.py up mcp

Roadmap

If there's something you have feedback on, or something you'd like to see, file a feature request and let us know!

Features are organized into Versions for easier tracking. New features will be released regularly, and this README.md will be updated to show which ones have shipped. Strikethrough text indicates completed features.

V1
  • Computer Vision (CV) Module
    • Video Language Model
    • Anomaly detection
    • Similarity search
  • More Robotics Formats
  • More LLMs
    • Cursor
    • OpenAI
    • Llama
    • Copilot
V1.5
  • Troubleshooting Toolkit
  • Better User Experience
    • Message pagination
    • MCP resources
    • DSL for querying nested topic messages
  • Easy Model Integration
V2
  • Platform Integration
    • Foxglove
    • Rerun
  • Better User Experience
    • Pip install and PyPI package
    • bagel CLI