Ros MCP logo

Ros MCP

by Yutarop

Controls ROS2 topics, services, and actions through natural-language requests from Claude Desktop.

Install Ros MCP

Pick your client, then add it in one click or paste the config.

No confirmed install command yet

We only publish a config when the install details come from the project itself — its README, its docs, or a verified owner. We haven’t found those for Yutarop/ros-mcp, and we’d rather show nothing than a guess you’d paste into your client.

Open setup steps on GitHub

Overview

The Yutarop/ros-mcp MCP server lets an AI agent inspect and control ROS2 systems through topics, services, and actions. It translates natural-language requests into ROS2 operations and supports arbitrary ROS message types. A companion localhost socket server can launch GUI tools such as Gazebo and rqt_graph on the local display. Reach for it when you need conversational control or troubleshooting of a ROS2 environment, especially one running ROS2 Humble.

Use cases

  • Publish commands to ROS2 topics
  • Call services to reset or configure a simulation
  • Send action goals to move a robot
  • Inspect nodes and debug ROS2 configuration
  • Launch Gazebo or rqt_graph from an agent request

Key features

  • ROS2 topic listing, monitoring, and publishing
  • ROS2 service discovery and calls
  • ROS2 action goal submission
  • Node inspection and process cleanup
  • Gazebo and rqt_graph launching through a local socket server
  • Support for arbitrary ROS message types

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 3d ago

Recent health check succeeded.

12/13 checks healthy over the last 79d

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars36Stargazers on the source repository.
Last commit1y agoMost recent push to the default branch.
Directory activity4 viewsConfig copies, upvotes, and views on AllMCPs.

How Ros MCP works

What Yutarop/ros-mcp MCP server does

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.

How it works

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. GUI operations require the socket server to be running separately and outside the Python virtual environment.

Setup and configuration

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.

Tools and capabilities

The Yutarop/ros-mcp MCP server provides these documented capability areas:

  • Topic management: list, monitor, and publish to ROS2 topics.
  • Node control: list and inspect active ROS2 nodes.
  • Service interaction: discover and call ROS2 services with custom data.
  • Action support: send goals to ROS2 actions.
  • GUI integration: launch ROS2 GUI applications through the socket server.
  • Environment debugging: inspect ROS2 setup and configuration.
  • Process management: clean up running ROS2 processes.

The repository links to a separate wiki page for the detailed available-tool definitions.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Ros MCP

Clone the repository, install websockets version 15.0.1 or later, create and activate a uv virtual environment, and run `uv pip install -e .`.

Yes. The README provides a Claude Desktop configuration that runs `ros-general.py` through `uv`.

The project has been tested with ROS2 Humble Hawksbill. Compatibility with other ROS2 distributions is not guaranteed.

Run the MCP server and ROS2 environment with the same `ROS_DOMAIN_ID` on the same local network.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewRos MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/yutarop-ros-mcp?style=directory)](https://allmcps.com/mcp/yutarop-ros-mcp)
HTML Embed
<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>