# Bagel [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/Extelligence-ai/bagel  
**GitHub Stars:** 397  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/bagel

## Description
Plain-English analysis of robotics, drone, and IoT data, with intelligent edge data reduction.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `uvx` (confidence: high):

```json
"mcpServers": {
  "bagel": {
    "command": "uvx",
    "args": ["ollmcp"]
  }
}
```

## Documentation

## What Bagel does

The Bagel MCP server connects an MCP-enabled language model to analysis workflows for robotics, drones, and IoT systems. It accepts questions about message data in ordinary language and produces results backed by DuckDB SQL. The SQL is exposed so developers can inspect how a calculation was performed.

Supported environments include ROS1, several ROS2 releases, PX4, ArduPilot, Betaflight, and live IoT/MQTT use. The repository provides separate Docker services for these environments, including ROS2 Kilted, Jazzy, Iron, and Humble, plus ROS1 Noetic variants. PX4 also includes a bundled sample log suitable for a quick health report.

The server is useful for reviewing sensor behavior, checking log metadata, identifying data gaps, and investigating flight or robot events. It keeps the language model in the analysis layer rather than placing it in a robot control loop.

## How it works

Bagel runs in a Dockerized environment and exposes an MCP endpoint over HTTP. The documented Claude Code setup connects to an SSE endpoint at `http://localhost:8000/sse`; the Codex configuration uses `http://localhost:8000/mcp`. A client sends a natural-language request, and Bagel performs data calculations with DuckDB SQL.

The edge reduction workflow turns a description such as retaining a period around hard braking into a pipeline. The pipeline is previewed before data is written, then can be run once, across a fleet, or continuously at the edge. Detection can run on the robot with a local decision-model backend in the beta ROS2 Jazzy JEV image; the hosted Jev backend is available in every image.

## Setup and configuration

Docker Desktop and an MCP-enabled LLM are the documented prerequisites. Clone the repository, choose a service matching the data source, and start it with Docker Compose. The default service is `ros2-kilted`, and the server listens on port 8000 unless `MCP_SERVER_PORT` changes it. Local data access requires editing `compose.yaml` to add or update a volume mount.

A no-client demonstration is available with the PX4 image and its bundled sample log. For offline use, the README documents Ollama with `ollmcp`, allowing both the data and language model to remain on the local machine.

The endpoint binds to localhost by default. Sharing it with other machines requires changing the binding and placing an authenticated proxy in front of it. On arm64 Linux hosts, non-multi-architecture images may need QEMU/binfmt; Docker Desktop handles emulation automatically on supported desktop setups.

## Tools and capabilities

The Bagel MCP server provides capabilities for:

- Plain-language analysis of robotics, drone, and IoT logs.
- Auditable DuckDB SQL calculations.
- Robot-health checks using available log topics.
- Natural-language event-detection and data-reduction pipelines.
- Previewing pipelines before writing output.
- Running reductions once, across a fleet, or continuously at the edge.
- Extending the system with additional capabilities.

The repository also includes agent skills for log triage, pipeline authoring, live sinks, and visualization export, with plugin support for Claude Code and Codex.

## Limitations and notes

The README does not promise coverage for every data format; unsupported formats may require an issue or extension. The ROS2 Jazzy JEV environment is marked beta and targets GPU-enabled on-robot decision-model execution. Some images are amd64-only, while `ros2-kilted` is published for multiple architectures.

Bagel is an analysis service, not a robot control-loop component. Network exposure is not configured by default, and the local-only binding should be changed only with suitable authentication controls.

_Full upstream README: https://allmcps.com/mcp/bagel/readme_

