Get the FREE Ultimate OpenClaw Setup Guide →

rosout_mcp

A Model Context Protocol (MCP) server that loads ROS2 rosbag files containing log information (/rosout), builds an in-memory database, and provides SQL-like querying capabilities.

Installation
Run this command in your terminal to add the MCP server to Claude Code.
Run in terminal:
Command
claude mcp add --transport stdio araitaiga-rosout_mcp docker run -i --rm --net=host --mount type=bind,src=<LOCAL_BAG_DIR>,dst=<LOCAL_BAG_DIR>,readonly araitaiga/rosout-mcp:latest

How to use

This MCP server loads ROS2 rosbag files containing /rosout data into an in-memory SQLite database and exposes SQL-like querying capabilities via the MCP protocol. Once running, you can use the available MCP tools to load rosbag data, query logs with filters such as time range, node name, log level, and message content, inspect database statistics, and list unique node names. Typical workflow: prepare a directory with your rosbag files, start the MCP server (e.g., via Docker using the provided mcp.json configuration), then use the MCP inspector or client to issue commands like rosbag_load to ingest bags, db_search to filter logs, db_status to monitor the database, node_list to discover nodes, and db_init to reset the in-memory database. The inspector UI will be available at the default address (http://localhost:6274) to test available tools and queries.

How to install

Prerequisites: Docker (for the recommended run method), or uv (uvx) with Python 3.10+ if you prefer local execution. Also ensure ROS2 is installed if you plan to generate or interpret rosbag data during testing.

Option A - Run via Docker (recommended):

  1. Install Docker from https://www.docker.com/
  2. Prepare a local directory with your rosbag files and note its path as <LOCAL_BAG_DIR>.
  3. Create a mcp.json (or use the provided configuration) and ensure the rosbag directory path is mounted in read-only mode.
  4. Run the container using the configuration:
# Example using the provided docker command in mcp_config
# Replace <LOCAL_BAG_DIR> with the actual path
docker run -i --rm --net=host --mount type=bind,src=<LOCAL_BAG_DIR>,dst=<LOCAL_BAG_DIR>,readonly araitaiga/rosout-mcp:latest

Option B - Run via uvx (Python):

  1. Install UV following the instructions at https://astral.sh/uv/install.sh
  2. Ensure Python 3.10+ (Humble) or 3.12+ ( Jazzy) is available and ROS2 is installed.
  3. Start the MCP server by pulling from GitHub and using uvx with the proper options, for example:
uvx --python 3.12 --from git+https://github.com/araitaiga/rosout_mcp rosout-mcp
  1. If you are testing with Jazzy (Python 3.12) or Humble (Python 3.10), adjust the --python flag accordingly.

Option C - Local development from source (Dockerfile or inspector):

  1. Clone the repository and install dependencies.
  2. Build and run using the local Dockerfile or install the package and start the inspector as described in the project docs.

Additional notes

Tips and common considerations:

  • The default Docker command assumes you will mount a directory containing rosbag files at <LOCAL_BAG_DIR> and access the MCP inspector at http://localhost:6274.
  • The rosbag data is loaded into an in-memory SQLite DB; use db_init to clear and reinitialize if needed.
  • When using uvx, ensure the --from parameter points to the rosout_mcp repository URL and the final argument is the name of the MCP module (rosout-mcp).
  • If you run inside a constrained environment, you may need to adjust network settings (e.g., --net=host) or port exposure for the inspector.
  • The tools available under Available MCP Tools include: rosbag_load, db_search, db_status, node_list, db_init.
  • Replace placeholders such as <LOCAL_BAG_DIR> with real paths before running.
  • The README mentions both a Docker Hub image (araitaiga/rosout-mcp:latest) and the ability to run from source; choose the method that best fits your workflow.

Related MCP Servers

Sponsor this space

Reach thousands of developers