An open API service indexing awesome lists of open source software.

https://github.com/robotmcp/ros-mcp-server

Connect AI models like Claude & GPT with robots using MCP and ROS.
https://github.com/robotmcp/ros-mcp-server

mcp mcp-server modelcontextprotocol ros ros-mcp-server ros2 ros2-mcp-server

Last synced: about 1 month ago
JSON representation

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

Awesome Lists containing this project

README

          

# ROS MCP Server πŸ§ β‡„πŸ€–

![Static Badge](https://img.shields.io/badge/ROS-Available-green)
![Static Badge](https://img.shields.io/badge/ROS2-Available-green)
![Static Badge](https://img.shields.io/badge/License-Apache%202.0-blue)
![Python](https://img.shields.io/badge/python-3.10%2B-blue)
![pip](https://img.shields.io/badge/pip-23.0%2B-blue)
![Dev Container](https://img.shields.io/badge/Dev-Container%20Ready-blue)
![GitHub Repo stars](https://img.shields.io/github/stars/robotmcp/ros-mcp-server?style=social)
![GitHub last commit](https://img.shields.io/github/last-commit/robotmcp/ros-mcp-server)



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.



---
πŸ• **Example - Controlling Unitree Go with natural language** ([video](https://youtu.be/RW9_FgfxWzs?si=8bdhpHNYaupzi9q3))
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.



---
🏭 **Example - Debugging an industrial robot** ([Video](https://youtu.be/SrHzC5InJDA))
- 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).



Testing and debugging an industrial robot

---

## βš™οΈ Features of the ROS MCP Server

- **List topics, services, and message types** β†’ explore everything available in your robot’s ROS environment.
- **View type definitions (incl. custom)** β†’ understand the structure of any message.
- **Publish/subscribe to topics** β†’ send commands or stream robot data in real time.
- **Call services (incl. custom)** β†’ trigger robot functions directly.
- **Get/set parameters** β†’ read or adjust robot settings on the fly.
- πŸ”œ **Action support** β†’ upcoming support for ROS Actions.
- πŸ”œ **Permission controls** β†’ manage access for safer deployments.

---

## πŸ›  Getting Started

The MCP server is version-agnostic (ROS1 or ROS2) and works with any MCP-compatible LLM.



### Installation

Follow the [installation guide](docs/installation.md) for step-by-step instructions to install, run, and troubleshoot the ROS-MCP server.

For developers, we also have instructions for [installation from source](docs/installation-from-source.md).

If you prefer not to use desktop LLM apps (such as Claude, ChatGPT, or Gemini), you can use the [robot-mcp-client](https://github.com/robotmcp/robot-mcp-client) to run and interact with the MCP server directly from the terminal.

---

## πŸ“š More Examples & Tutorials

Browse our [examples](examples) to see the server in action.
We welcome community PRs with new examples and integrations!

---

## 🀝 Contributing

We love contributions of all kinds:
- Bug fixes and documentation updates
- New features (e.g., Action support, permissions)
- Additional examples and tutorials

Check out the [contributing guidelines](docs/contributing.md) and see issues tagged **good first issue** to get started.

---

## πŸ“œ License

This project is licensed under the [Apache License 2.0](LICENSE).