ROS

v3.0.1Cloud Servicesstable

Enables control of ROS/ROS2 robots through natural language commands by translating LLM instructions into ROS topics and services. Supports cross-platform WebSocket-based communication with existing robot systems without requiring code modifications.

mcpmcp-servermodelcontextprotocolrosros-mcp-server
Share:
1,240
Stars
0
Downloads
0
Weekly
0/5

What is ROS?

ROS is a Model Context Protocol (MCP) server that allows AI assistants like Claude, Cursor, and VS Code to enables control of ros/ros2 robots through natural language commands by translating llm instructions into ros topics and services. supports cross-platform websocket-based communication with existing r...

Enables control of ROS/ROS2 robots through natural language commands by translating LLM instructions into ROS topics and services. Supports cross-platform WebSocket-based communication with existing robot systems without requiring code modifications.

This server falls under the Cloud Services category on MCPgee, the world's largest MCP server directory with 33,000+ servers.

Features

  • Enables control of ROS/ROS2 robots through natural language

Use Cases

Control ROS/ROS2 robots through natural language commands.
Translate LLM instructions into ROS topics and services.
Enable WebSocket-based robot communication without code modifications.
robotmcp

Maintainer

LicenseApache-2.0
Languagepython
Versionv3.0.1
UpdatedMay 22, 2026
Statushealthy
Maintenanceactive

Works with

ClaudeOpenAIwindowsmacoslinux

Installation

PIP

pip install ros-mcp

Manual Installation

pip install ros-mcp

Configuration

Configuration Details

Config File

claude_desktop_config.json

Performance

Response Metrics

Response Time< 200ms
ThroughputMedium

Resource Usage

Memory UsageLow
CPU UsageLow

How to Set Up and Use ROS

ROS MCP Server (ros-mcp) is a Python-based MCP server that bridges natural-language AI instructions to ROS and ROS 2 robot systems via a rosbridge WebSocket connection. It allows LLMs and AI coding assistants to publish and subscribe to ROS topics, call services and actions, set parameters, read sensor data, and monitor robot state in real time — all without modifying the robot's source code. This enables researchers and robotics engineers to control physical or simulated robots by describing their intent in plain language, from high-level tasks like "navigate to the kitchen" down to low-level commands like "publish velocity 0.5 on /cmd_vel".

Prerequisites

  • Python 3.10 or later and pip 23.0 or later
  • A running ROS 2 (Jazzy, Humble, or another distro) or ROS 1 system with rosbridge_server installed
  • uv package runner recommended: `curl -LsSf https://astral.sh/uv/install.sh | sh`
  • An MCP-compatible client such as Claude Desktop, Claude Code, Cursor, or Gemini CLI
  • Network connectivity between the MCP server host and the ROS machine (same LAN or VPN)
1

Install uv (recommended package runner)

uv provides fast, isolated Python environment management and is the recommended way to run ros-mcp.

curl -LsSf https://astral.sh/uv/install.sh | sh
2

Install rosbridge on your ROS machine

rosbridge translates ROS messages to WebSocket JSON so the MCP server can communicate with the robot without being on the same machine.

sudo apt update
sudo apt install ros-<your-ros-distro>-rosbridge-server
3

Launch the rosbridge WebSocket server

Source your ROS workspace and start the rosbridge server. By default it listens on port 9090.

source /opt/ros/<your-ros-distro>/setup.bash
ros2 launch rosbridge_server rosbridge_websocket_launch.xml
4

Add ros-mcp to your MCP client (Claude Code)

Register the MCP server using the Claude Code CLI. The `uvx` command runs the server in an isolated environment without a separate install step.

claude mcp add ros-mcp -- uvx ros-mcp --transport=stdio
5

Or install via pip and configure manually

If not using Claude Code, install the package and add it to your MCP client configuration file.

pip install ros-mcp
6

Add to claude_desktop_config.json

For Claude Desktop or other MCP hosts, add the following configuration block.

{
  "mcpServers": {
    "ros-mcp": {
      "command": "uvx",
      "args": ["ros-mcp", "--transport=stdio"]
    }
  }
}

ROS Examples

Client configuration

claude_desktop_config.json for the ROS MCP server using uvx.

{
  "mcpServers": {
    "ros-mcp": {
      "command": "uvx",
      "args": ["ros-mcp", "--transport=stdio"]
    }
  }
}

Prompts to try

Natural-language robot control commands that the ROS MCP server translates into ROS topics and service calls.

- "List all available ROS topics and their message types"
- "Publish a velocity command of 0.5 m/s forward on the /cmd_vel topic for 2 seconds then stop"
- "Read the current sensor data from /scan and describe what obstacles the LiDAR sees"
- "Call the /move_base service to navigate the robot to coordinates x=2.0, y=1.5"
- "Monitor the /battery_state topic and alert me when the charge drops below 20%"
- "Test the robot gripper by calling the /gripper_action service and report any errors"

Troubleshooting ROS

MCP server cannot connect to rosbridge — connection refused on port 9090

Confirm rosbridge is running on the ROS machine with `ros2 launch rosbridge_server rosbridge_websocket_launch.xml`. Check that port 9090 is not blocked by a firewall between the MCP server host and the ROS machine. If they are on different machines, ensure they are on the same network or connected via VPN.

uvx command not found after installing uv

Restart your terminal or run `source ~/.bashrc` (or `~/.zshrc`) to pick up the uv installation. Alternatively, install ros-mcp with pip directly: `pip install ros-mcp` and use `python -m ros_mcp` as the command.

Robot does not respond to published commands

Verify the topic name and message type with the list-topics tool first. ROS is case-sensitive and message types must match exactly. Use `ros2 topic echo /cmd_vel` on the ROS machine to confirm messages are arriving when the MCP server publishes.

Frequently Asked Questions about ROS

What is ROS?

ROS is a Model Context Protocol (MCP) server that enables control of ros/ros2 robots through natural language commands by translating llm instructions into ros topics and services. supports cross-platform websocket-based communication with existing robot systems without requiring code modifications. It connects AI assistants to external tools and data sources through a standardized interface.

How do I install ROS?

Install via pip with: pip install ros-mcp. Then configure your AI client to connect to this MCP server.

Which AI clients work with ROS?

ROS works with all major MCP-compatible AI clients including Claude Desktop, Claude Code, Cursor, VS Code (GitHub Copilot), Windsurf, and Cline.

Is ROS free to use?

Yes, ROS is open source and available under the Apache-2.0 license. You can use it freely in both personal and commercial projects.

Browse More Cloud Services MCP Servers

Explore all cloud services servers available in the MCPgee directory. Each server includes setup guides for Claude, Cursor, and VS Code.

Quick Config Preview

{ "mcpServers": { "ros-mcp-server": { "command": "pip", "args": ["install", "ros-mcp"] } } }

Add this to your claude_desktop_config.json or .cursor/mcp.json

Read the full setup guide →

Ready to use ROS?

Browse our complete directory of 33,000+ MCP servers, read setup guides for your editor, and start building with the Model Context Protocol.

33,000+ ServersFree & Open SourceStep-by-Step Guides