The ROS MCP Server translates natural language commands into ROS/ROS2 robot commands via WebSocket communication, enabling seamless interaction with robotic systems.
Publish Twist Messages: Control robot movement by publishing linear and angular velocity commands.
Sequential Commands: Execute a sequence of movements with specified durations.
Cross-Platform Compatibility: Operates on Linux, Windows, and MacOS.
AI Integration: Directly translates natural language inputs from LLMs/AI systems into robot actions.
Extensible Functionality: Easily add new control or sensor functions.
No Code Modifications: Works with existing ROS/ROS2 topics and services without changing robot code.
Message Support: Handles various message types including
geometry_msgs/Twist
,sensor_msgs/Image
, andsensor_msgs/JointState
.Simulation Tested: Verified with MOCA mobile manipulator in NVIDIA Isaac Sim.
ROS MCP Server 🧠⇄🤖
The ROS MCP Server bridges large language models (LLMs) with robot control, allowing users to issue natural language commands that are translated into ROS/ROS2 instructions. It is compatible with any language model that supports MCP, can run with both ROS and ROS2, and communicatess via WebSocket for cross-platform compatibility.
It does not require changes to existing robot code, since it is built on rosbridge
— making it fast and easy to integrate into any robotic stack.
Highlights
- Universal compatibility: Works with both ROS and ROS2 via rosbridge
- Cross-platform support: Compatible with Linux, Windows, and macOS
- AI-ready: Seamlessly integrates with LLMs and AI systems to drive robot behavior via natural language
- No ROS node modification required: Fully interoperable with existing systems
Features
- List topics, services, and types
- View message type details (incl. custom)
- Publish/subscribe to any topic (incl. custom)
- Call any service (incl. custom)
- Get/set parameters
- (Coming soon): Full Action support
- (Coming soon): Permission controls for write access
Examples in action:
Controlling the MOCA mobile manipulator in the NVIDIA Isaac Sim environment. In this example, the user inputs commands directly into Claude desktop, which can now use the MCP server to directly control a robot simulated in Isaac Sim.
Getting Started
Below are instructions to install and run the MCP server with your robot. The MCP server is agnostic to the version of ROS/ROS2 that you are running and works with any LLM that supports MCP.
Our examples use Claude desktop as the LLM client, but any client that supports the MCP protocol can be used!
Installation and Use
Follow the installation guide for full setup instructions on:
- Cloning the ROS-MCP-server repository
- Installing
uv
androsbridge
- Installing
Claude desktop
- Configuring Claude to connect to the ROS-MCP-server.
- Installing and starting rosbridge on the target robot
More Examples and Tutorials
Look into our list of examples for inspiration and tutorials of the ROS-MCP server in use. Feel free to submit PRs adding examples that you have successfully implemented!
Contributing
Contributions are welcome!
Whether you're fixing a typo, adding a feature, or suggesting an improvement — thank you.
Please see the contributing guidelines to get started.
License
This project is licensed under the Apache License 2.0.
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Tools
Facilitates robotic movement control by providing functions that enable precise manipulation of linear and angular velocities through natural language commands, compatible with both ROS and ROS2.
Related Resources
Related MCP Servers
- -securityAlicense-qualityProvides code manipulation, execution, and version control capabilities. It allows AI assistants to read, write, and execute code while maintaining a history of changes.Last updated -9MIT License
- -securityFlicense-qualityA Python-based server that enables AI assistants to control robots by integrating the Model Context Protocol (MCP) with ROS 2, allowing for natural language commands that translate into robot movement via the /cmd\_vel topic.Last updated -61
- AsecurityAlicenseAqualityA server built on the Model Context Protocol that enables controlling the Unitree Go2 robot using natural language commands, which are translated into ROS2 instructions for the robot to perform corresponding actions.Last updated -1241Apache 2.0
- AsecurityAlicenseAqualityA server that provides both comprehensive API documentation and direct robot control capabilities for Opentrons Flex and OT-2 robots, enabling users to manage protocols, control runs, and monitor robot health through natural language.Last updated -142955MIT License