Controls ROS2 topics, services, and actions through natural-language requests from Claude Desktop.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
One-click editor setup isn’t available for this listing yet — we don’t have a confirmed install command, and we’d rather show nothing than point your editor at the wrong package or host. Follow the project’s own setup instructions, linked above.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Ros MCP.
The Yutarop/ros-mcp MCP server exposes ROS2 communication through MCP so a compatible client can work with a robot using natural-language instructions. It covers three main ROS2 communication patterns: topics, services, and actions. The server can list, inspect, monitor, and publish to topics; inspect running nodes; call services with custom inputs; and send goals to actions.
The implementation is described as working with any ROS message type. Example workflows include moving a TurtleBot3 in Gazebo through a topic, resetting a Gazebo world by calling a service, and sending an action goal to move the robot forward.
The MCP implementation is in ros-general.py. It receives natural-language input, maps the request to ROS2 commands, and communicates with the ROS2 environment. A separate socket_server.py process listens on localhost port 8765 and handles GUI-related requests, such as launching Gazebo or rqt_graph on the local display.
The MCP process and the local ROS2 machine must use the same ROS_DOMAIN_ID and be on the same local network for node communication. The README also lists environment debugging and ROS2 process cleanup among the available capabilities. GUI operations require the socket server to be running separately and outside the Python virtual environment.
The documented environment is ROS2 Humble Hawksbill, Python 3.10 or newer, the websockets package at version 15.0.1 or later, and the uv package manager. Compatibility with other ROS2 distributions is not guaranteed because the project has only been tested with Humble.
Installation uses a local Git clone, installation of the websockets dependency, creation of a virtual environment with uv, and installation of the project dependencies from pyproject.toml. Claude Desktop is configured to run ros-general.py through uv. That configuration sources /opt/ros/humble/setup.bash, sets ROS_LOG_DIR to /tmp, and supplies the ROS domain ID. The example configuration contains placeholders for the local project and script paths; those values must be replaced before use.
Start the MCP process with uv run ros-general.py after activating the virtual environment. Start the GUI socket process separately with python3 socket_server.py, without activating the virtual environment for that second command.
The Yutarop/ros-mcp MCP server provides these documented capability areas:
The repository links to a separate wiki page for the detailed available-tool definitions.
Factual signals from GitHub, npm, and our automated checks — not a rating.
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/yutarop-ros-mcp)<a href="https://allmcps.com/mcp/yutarop-ros-mcp"><img src="https://allmcps.com/api/badge/yutarop-ros-mcp?style=directory" alt="Ros MCP on AllMCPs" /></a>