Bagel is developed by Extelligence, and the repository address is https://github.com/Extelligence-ai/bagel,定位是让用户以自然语言(英文)向机器人、无人机和 IoT data. Its core idea is that all computations on message data are executed by DuckDB SQL rather than guessed by the model, and the generated query statements are shown to the user for auditing. At the same time, Bagel provides an intelligent edge data reduction pipeline that can describe an event, let Bagel run detection on the robot, keep only the key time windows, and discard the rest of the data. Through the MCP server, Bagel can connect to Claude Code, Gemini, Cursor, or fully local models. The official description says Bagel is the first MCP server to provide a real analytics toolkit for robot data, and it puts the LLM in front of the logs, never in the robot control loop.
Main capabilities include:
- Natural language questioning: no need for deep domain knowledge, for example asking whether an IMU sensor is overheating.
- Transparent computation: generates deterministic SQL queries rather than black-box LLM mathematical operations.
- Natural language pipelines: for example, "keep the 10 seconds before and after each hard brake and discard the rest," which can be previewed before execution and supports single runs, fleet batches, or resident edge operation.
- Broad LLM support: Claude Code, Gemini, Cursor, Codex, and others.
- Multiple installation methods: pip/uvx for recorded data, Docker images for real-time robots and edge.
- Extensibility: learn new skills through POML files or by saving conversations as capabilities.
- Broad format coverage: tickets can be submitted for missing formats.
Usage: Bagel is published on PyPI as bagel-mcp, and analyzing recorded data does not require Docker or ROS installation. There are two installation methods:
- Use uvx (uv must be installed first): after installing uv, you can run bagel-mcp directly via uvx. Any client that accepts JSON MCP configuration (Claude Desktop, Cursor, Codex, etc.) can use it.
- Use pip: Python 3.10 to 3.12 is required, and a virtual environment is recommended. After installation, configure the command in the MCP client as bagel-mcp (full path) with the argument --transport stdio. Format support is provided as extras and can be installed as needed, for example uvx --from "bagel-mcp[ros,px4,automotive]" bagel-mcp --transport stdio, or pip install "bagel-mcp[ros,px4,automotive]". MCAP, CSV/JSON/Parquet, ROS text logs, PlotJuggler/Lichtblick/LeRobot exports, and S3 upload require no extra. When upgrading, the installed extras must be repeated to ensure dependencies are updated.
For real-time robotics, fleet, and edge scenarios, or specific ROS distributions, Docker can be used. Users who already have Claude Code can paste the repository link and describe the environment, and Claude will automatically complete cloning, starting Docker, and connecting MCP. The default Docker service port is 8000, which can be changed via MCP_SERVER_PORT. The MCP endpoint only binds to localhost; if sharing is needed, remove the 127.0.0.1 prefix and configure an authentication proxy, see SECURITY.md.
Supported clients and plugins: Bagel can work with any LLM that supports MCP. Official setup guides have been provided and tested for Claude Code, Gemini, Cursor, Codex, and others. Bagel also comes with an agent plugin containing four skills (log triage, pipeline authoring, real-time receiver, visualization export), and automatically connects to MCP. Claude Code and OpenAI Codex share the same plugin directory. Codex and ChatGPT users can install it with one click from the OpenAI Plugins Directory, or clone the repository and add it as a plugin marketplace, then use codex mcp add bagel --url http://localhost:8000/mcp to connect.
Supported data formats: MCAP, CSV/JSON/Parquet, ROS text logs, PlotJuggler/Lichtblick/LeRobot exports, and S3 upload require no extra; ROS 1 and ROS 2 bag require the ros extra, using the pure Python rosbags library for reading and writing, with no need to install ROS; PX4 flight logs, CAN/MDF4, real-time MQTT, etc. are additional extras. Real-time ROS robots (rosbridge) and fleet/edge pipelines run in Docker. There are also integrations such as PostgreSQL/TimescaleDB, InfluxDB 3, Slack, Rerun, and Cloudini.
Use cases:
- Quick Q&A and troubleshooting for robotics, drone, and IoT logs.
- Edge data reduction: run detection where the data is generated, upload only critical windows, and save bandwidth and storage.
- Anomaly detection (beta): learn normal patterns and flag anomalies via Jev, and upload only segments with JSON labels.
- Batch process fleet data and upload to S3, GCS, Azure, MinIO, or R2.
- Work alongside existing tools (ros2, PlotJuggler, grep) to get quick answers and then hand them off for further processing.
Limitations and known rough edges:
- The automotive MDF4/CAN reader is beta and has only been validated against files generated with the same libraries (asammdf, python-can); it has not yet been tested on real CANape/INCA/Vector captures.
- LeRobot export (beta) has been tested with loading using the real lerobot package, but there is not yet a policy for exporting training from Bagel.
- The Jev integration is beta, covering anomaly and decision gates, preview_anomalies, the local backend, and the ros2-jazzy-jev image; its Jev backend has been run on real driving, synthetic fault logs, and real-time MQTT streams via the Vercel AI Gateway, but direct TypeSafe keys have not yet been tested, and detection quality has not been measured on logs.
- Other notes: some Docker services only publish amd64; arm64 Linux requires QEMU/binfmt to run in emulation.
Pricing and price information, platform limitations, and performance metrics are not yet provided.