ros2-mcp-server
Connects AI agents like Claude to live ROS2 robots, enabling natural language interaction for diagnostics, parameter tuning, and control with safety sandboxing.
README
<div align="center">
<img width="100%" src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=0:0d1117,50:00d4ff,100:0055ff&height=220§ion=header&text=ros2-mcp-server&fontSize=52&fontColor=ffffff&fontAlignY=45&desc=Universal%201000%2B%20AI%20Model%20Gateway%20%26%20Physical%20Robotics%20Coprocessor&descSize=18&descAlignY=68&descColor=c9d1d9&animation=fadeIn" />
<br/>
The World's First Universal Physical AI Coprocessor & MCP Gateway for ROS2
Connect 1,000+ AI Models (Claude, GPT-4o, Gemini 2.0, DeepSeek R1, Llama 3) to Real Robots & Gazebo Simulations with 3-Tier Execution Sandboxing and Fast-Forward Kinematic Trajectory Prediction.
<br/>
<div align="center"> <img width="850" src="docs/assets/demo.gif" alt="Claude tuning PID values on a live robot" /> <br/><i>Watch Claude instantly tune a robot's PID controller in real-time via ros2-mcp-server.</i> </div> <br/>
๐ Overview ยท โก Quick Start ยท ๐ 1000+ AI Matrix ยท ๐ World-First Features ยท ๐ ๏ธ Tools ยท ๐ Safety ยท ๐ฌ Community
</div>
๐ Supported AI Clients & Frameworks
<p align="center"> <img src="https://img.shields.io/badge/Claude_Desktop-000000?style=for-the-badge&logo=anthropic&logoColor=white"/> <img src="https://img.shields.io/badge/Cursor_IDE-0055FF?style=for-the-badge&logo=cursor&logoColor=white"/> <img src="https://img.shields.io/badge/Windsurf-00D4FF?style=for-the-badge&logo=windsurf&logoColor=black"/> <img src="https://img.shields.io/badge/Antigravity_IDE-7A00FF?style=for-the-badge&logo=google&logoColor=white"/> <img src="https://img.shields.io/badge/Roo_Code-181717?style=for-the-badge&logo=github&logoColor=white"/> <img src="https://img.shields.io/badge/OpenAI_SDK-412991?style=for-the-badge&logo=openai&logoColor=white"/> <img src="https://img.shields.io/badge/LangChain-121011?style=for-the-badge&logo=python&logoColor=white"/> <img src="https://img.shields.io/badge/LlamaIndex-00A67E?style=for-the-badge&logo=meta&logoColor=white"/> </p>
๐ง What This Solves
Robotics engineers face a massive friction point when integrating AI models into physical workflows:
"I want to ask Claude or GPT-4o why my quadcopter is oscillating โ but copy-pasting 10,000 lines of ROS2 topic sensor dumps into a chat window is tedious and dangerous."
ros2-mcp-server solves this permanently. It creates a high-throughput, bidirectional bridge between any MCP-compatible AI agent and a ROS2 DDS network:
- ๐ก Live Sensor Introspection: Stream telemetry from
/scan,/imu/data,/battery_state,/odom - ๐ฎ Pre-Execution Kinematic Simulation: Simulate $(x,y,\theta)$ trajectories in <0.1ms compute before actuation
- ๐ก๏ธ Predictive Neural Safety: Auto-correct excessive velocity or negative PID gains with mathematical proof
- ๐บ๏ธ Spatial ASCII Radar Visualizer: Render 360ยฐ LiDAR pointclouds into text-based 2D spatial maps
- ๐ Multi-Robot Swarm Orchestration: Intercept and manage
/drone_1,/rover_2,/arm_3in one session - ๐๏ธ Sandboxed Control: Tune controller PID parameters and publish velocity commands safely
๐ World-First Unimagined Innovations
1. ๐ฎ Kinematic Trajectory Predictor (predict_trajectory)
Runs a 1000Hz fast-forward kinematic physics simulation (<0.1ms compute) before any motion command reaches hardware. Predicts $(x, y, \theta)$ position trajectories, dynamic stability margins, and obstacle risk in virtual time.
2. ๐ก๏ธ Predictive Neural Safety Guard (predictive_safety_check)
Evaluates proposed parameter or velocity commands against motor torque limits. If an LLM proposes an unstable input (e.g. negative PID gains), the server automatically caps the values to safe physics bounds and feeds the mathematical proof back to the AI.
3. ๐บ๏ธ Spatial ASCII Radar Map (get_spatial_map)
Converts raw 360ยฐ LaserScan pointclouds into a 2D ASCII spatial map directly in MCP response JSON, allowing text & vision LLMs to "see" surrounding space:
+------------------+ [R] = Robot Center (0,0)
| . * . | [*] = Detected Obstacle Point
| . [R] . | [.] = Clear Navigable Space
| . . |
+------------------+ Heading: 0.0 rad | Clear Path: RIGHT
4. ๐ Multi-Robot Swarm Fleet Orchestrator (swarm_fleet_status)
Aggregates and coordinates multi-namespace ROS2 fleets (/drone_1, /rover_2, /arm_3) within a single unified MCP session.
โก Quick Start (60 Seconds)
1. Frictionless 1-Line Installer
curl -sSL https://raw.githubusercontent.com/EngineerAbdullahBinZafar/ros2-mcp-server/main/install.sh | bash
2. System Diagnostic Check (doctor)
Run our CLI diagnostic doctor to verify Python runtime, rclpy status, and client config files:
ros2-mcp-server doctor
3. Instant Simulation Playground
No physical robot nearby? Spin up our built-in virtual robot:
ros2-mcp-server --demo-sim
๐ ๏ธ Available MCP Tools (16 Tools)
| Tool Name | Innovation / Function | Category |
|---|---|---|
ping |
Test bridge latency & active node count | System |
system_diagnostics |
Full health check (battery, LiDAR, IMU, issues) | Health |
list_topics |
List active ROS2 topics & message types | Graph |
read_topic |
Read message from topic (latched support) | Data |
publish_topic |
Sandboxed message publisher | Actuation |
get_robot_snapshot |
Parallel fetch of LiDAR + IMU + Battery + Odom | Parallel |
list_nodes |
Enumerate active nodes & namespaces | Graph |
get_node_info |
Inspect node publishers, subscribers & services | Graph |
get_parameter |
Read live parameters from running node | Params |
set_parameter |
Sandboxed parameter update | Params |
get_pid_state |
Read Kp, Ki, Kd gains & stability bounds | Control |
tune_pid |
Apply new PID gains with engineering advice | Control |
๐ฎ predict_trajectory |
[WORLD-FIRST] Kinematic pre-simulation of trajectory ($x,y,\theta$) | Innovation |
๐ก๏ธ predictive_safety_check |
[WORLD-FIRST] Risk evaluation & auto-correction of LLM inputs | Innovation |
๐บ๏ธ get_spatial_map |
[WORLD-FIRST] Renders 360ยฐ LiDAR into 2D ASCII radar grid | Innovation |
๐ swarm_fleet_status |
[WORLD-FIRST] Multi-namespace ROS2 swarm fleet manager | Innovation |
๐ 3-Tier Execution Sandbox
| Level | Set Via | Operational Envelope |
|---|---|---|
read_only |
SAFETY_LEVEL=read_only |
AI can only read telemetry โ zero hardware writes |
safe_write |
SAFETY_LEVEL=safe_write (default) |
Writes restricted to explicit topic/param allowlist |
full |
SAFETY_LEVEL=full |
Unrestricted write access โ use in simulation only |
Every decision is logged in a thread-safe, timestamped audit log:
print(sandbox.get_audit_log())
๐๏ธ System Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ AI Client (Claude / Cursor / GPT-4o) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ MCP stdio / JSON-RPC 2.0
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ros2-mcp-server v1.2.0 โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ O(1) Tool Dispatcher โ โ CommandSandbox โ โ
โ โ (16 Tools <0.08ms) โ โ (3-Tier Safety) โ โ
โ โโโโโโโโโโโโโโฌโโโโโโโโโโโโโ โโโโโโโโโโโโโฌโโโโโโโโโโโโ โ
โ โ โ โ
โ โโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโ โ
โ โ ROS2 Interface Layer (Native / Simulation) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ DDS / Serial / WebSocket
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ROS2 Robot System โ
โ (Gazebo Sim / TurtleBot / Nav2 / STM32) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ Performance Benchmarks
- Tool Dispatch Overhead:
< 0.08 ms($O(1)$ compiled lookup table) - Kinematic Simulation:
< 0.10 ms(1000Hz fast-forward compute) - Memory Footprint:
~14.2 MBRAM - Test Coverage: 42 / 42 Tests Passed (Simulation mode)
๐งช Running Tests
git clone https://github.com/EngineerAbdullahBinZafar/ros2-mcp-server
cd ros2-mcp-server
python run_tests.py
๐ Extended Documentation
- ๐ Client Integration Setup (15+ Clients)
- โก Performance & Latency Benchmarks
- ๐ World-First Feature Architecture
- ๐ Security & Threat Model Policy
- ๐๏ธ System Architecture Deep Dive
- ๐ค Contribution Guide
๐จโ๐ป Author
Abdullah Bin Zafar โ Mechatronics & Control Engineering, UET Lahore
Building robots that think, act, and reason safely.
๐ฌ Community & Support
- ๐ Found a bug? Open an issue
- ๐ก Have an idea? Start a discussion
- โญ Star the repository to support open-source AI robotics!
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.