ROS MCP Server (Yutarop)
ROS2 robot command interface for controlling topics, services, actions, and GUI tools.
Data last scanned today · Reviewed yesterday
Overview
ROS MCP enables natural language control over ROS2 environments by mapping user prompts to topics, services, and actions. The implementation consists of a Python-based MCP server and a socket server that handles local GUI tool launches, such as Gazebo or rqt_graph, via WebSocket communication on localhost. To use this server, the MCP host and the ROS network must share the same ROS_DOMAIN_ID. It specifically requires the ROS2 Humble Hawksbill distribution and the uv package manager for installation.
Our verdict
This server carries a high security risk with a score of 14/100, primarily due to the total lack of an authentication method, which allows anyone with access to the configuration to execute commands. Furthermore, the repository has not been updated in nearly a year and remains a community-maintained project rather than an official vendor release. Given the lack of access controls and the potential for direct robot control, it is not recommended for environments where unauthorized access or stability is a concern.
- Zero direct dependencies simplifies the supply-chain surface
- Provides comprehensive support for ROS2 topics, services, and actions
- Integrates local GUI tools like Gazebo via WebSocket
- No authentication mechanisms implemented
- Last code commit occurred over 330 days ago
- Community-maintained without official vendor oversight
Tools
| Tool | Description | Risk |
|---|---|---|
| list_topics | List, monitor, and publish to ROS2 topics | low |
| publish_topic | Publish to ROS2 topics | medium |
| list_nodes | List and inspect running ROS2 nodes | low |
| call_service | Call ROS2 services with custom | medium |
| send_action_goal | Send goals to ROS2 actions | medium |
| launch_gui_tool | Launch ROS2 GUI tools via WebSocket server | high |
| check_environment | Check ROS2 setup and configuration | low |
| cleanup_processes | Clean up running ROS2 processes | high |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| ChatGPT | ||||
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf |
Frequently asked questions
›Which ROS2 distribution is required?
This server is tested with ROS2 Humble Hawksbill, and compatibility with other ROS2 distributions is not guaranteed.
›What is the purpose of the Socket Server?
The socket server handles GUI-related operations, such as launching ROS2 tools like Gazebo or rqt_graph on your local display.
›How do I ensure communication between the MCP server and my local ROS environment?
You must configure both the MCP server and your local machine with the same ROS_DOMAIN_ID on the same local network.
›Do I run the socket server inside the virtual environment?
No, the socket server should be started outside of the virtual environment.
›What are the core dependencies for installation?
The server requires Python 3.10+, the uv package manager, and websockets version 15.0.1 or higher.
Alternatives
Badge
Maintain this server? Add the live badge to your README.