ros-mcp-server

by robotmcp

Pending

Connect AI models like Claude & GPT with robots using MCP and ROS.

970stars
142forks
Python
Added 12/27/2025
MCP Serversmcpmcp-servermodelcontextprotocolrosros-mcp-serverros2ros2-mcp-server
Installation
# Add to your Claude Code skills
git clone https://github.com/robotmcp/ros-mcp-server
README.md

ROS MCP Server 🧠⇄🤖

Static Badge Static Badge Static Badge Python pip Dev Container GitHub Repo stars GitHub last commit

<!-- mcp-name: io.github.robotmcp/ros-mcp-server --> <p align="center"> <img src="https://github.com/robotmcp/ros-mcp-server/blob/main/docs/images/framework.png"/> </p>

ROS-MCP-Server connects large language models (such as Claude, GPT, and Gemini) with existing robots giving them bidirectional AI integration.

With no changes to existing robot source code, this enables:

  • 🗣 Commanding the robot in natural language → instructions are translated into ROS/ROS2 commands.
  • 👀 Giving AI full visibility → subscribe to topics, call services, read sensor data, and monitor robot state in real time.

✅ Key Benefits

  • No robot code changes → only requires adding the rosbridge node.
  • True two-way communication → LLMs can both control robots and observe everything happening in ROS (sensors, topics, parameters).
  • ROS1 & ROS2 support → works with both versions out of the box.
  • MCP-compatible → integrates with any MCP-enabled LLM (Claude Desktop, Gemini, ChatGPT, and beyond).

🎥 Examples in Action

🖥️ Example - Controlling the MOCA mobile manipulator in NVIDIA Isaac Sim
Commands are entered into Claude Desktop, which uses the MCP server to directly drive the simulated robot.

<p align="center"> <img src="https://github.com/robotmcp/ros-mcp-server/blob/main/docs/images/result.gif" /> </p>

🐕 Example - Controlling Unitree Go with natural language (video)
The MCP server enables the Claude to interpret images from the robot's cameras, and then command the robot based on human natural language commands.

<p align="left"> <img src="https://contoro.com/asset/media/demo_go2.gif" /> </p>

🏭 Example - Debugging an industrial robot (Video)

  • Connecting to an industrial robot enables the LLM to browse all ROS topics and services to assess the robot state.
  • With no predefined context, the MCP server enables the LLM to query details about custom topic and service types and their syntax (00:28).
  • Using only natural language, the operator calls the custom services to test and debug the robot(01:42).
<p align="center"> <a href="https://contoroinc.sharepoint.com/:v:/s/SandboxNewBusiness/EVh2t2_YG9BEl-Bw-8k6xucBcEv7XebJv1MtqLTIfrQpig?e=deu3YO"> <img src="https://github.com/robotmcp/ros-mcp...