ROS MCP Server

An MCP server that connects an agent to a ROS robot through rosbridge: reading sensors and control without changing the robot's code

MCP server

High risk

We rate an entry high when the tool writes to external systems, handles money, production databases or secrets, or runs arbitrary commands. The CLI installs it only with your consent.

Why this level

  • Controls a real robot: publishes to topics, calls services and actions, sets parameters
  • A wrong command can cause unwanted movement of mechanisms
All reasons and checks

robotmcp/ros-mcp-server

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/ros-mcp-server

Detects the agents on your machine, checks the risk and pins the version.

Other ways to install

This entry is high risk, so there is no one-click install. Review the code and add the config by hand.

Run in a terminal

claude mcp add --transport stdio ros-mcp-server -- uvx ros-mcp==3.1.2

Or add to the file .mcp.json, in the project

{
  "mcpServers": {
    "ros-mcp-server": {
      "command": "uvx",
      "args": [
        "ros-mcp==3.1.2"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Add to the file ~/.cursor/mcp.json, for all projects

{
  "mcpServers": {
    "ros-mcp-server": {
      "command": "uvx",
      "args": [
        "ros-mcp==3.1.2"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key. For a single project, put the same block into .cursor/mcp.json.

Run in a terminal

code --add-mcp '{"name":"ros-mcp-server","type":"stdio","command":"uvx","args":["ros-mcp==3.1.2"]}'

Or add to the file .vscode/mcp.json, in the project

{
  "servers": {
    "ros-mcp-server": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "ros-mcp==3.1.2"
      ]
    }
  }
}

If the file already exists, add the server inside the servers key.

Run in a terminal

codex mcp add ros-mcp-server -- uvx ros-mcp==3.1.2

Or add to the file ~/.codex/config.toml, for all projects

[mcp_servers.ros-mcp-server]
command = "uvx"
args = ["ros-mcp==3.1.2"]

If the file already exists, append the block to the end.

Run in a terminal

gemini mcp add -s user ros-mcp-server uvx ros-mcp==3.1.2

Or add to the file ~/.gemini/settings.json, for all projects

{
  "mcpServers": {
    "ros-mcp-server": {
      "command": "uvx",
      "args": [
        "ros-mcp==3.1.2"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Add to the file ~/.config/devin/mcp_config.json, for all projects

{
  "mcpServers": {
    "ros-mcp-server": {
      "command": "uvx",
      "args": [
        "ros-mcp==3.1.2"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key. Legacy Cascade keeps the MCP config in ~/.codeium/windsurf/mcp_config.json.

Formerly Windsurf.

Add to the file cline_mcp_settings.json, for all projects

{
  "mcpServers": {
    "ros-mcp-server": {
      "command": "uvx",
      "args": [
        "ros-mcp==3.1.2"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key. Open the settings file in Cline: MCP Servers tab, Configure MCP Servers.

Add to the file .roo/mcp.json, in the project

{
  "mcpServers": {
    "ros-mcp-server": {
      "command": "uvx",
      "args": [
        "ros-mcp==3.1.2"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

A fork of Roo Code, same .roo folders.

Add to the file opencode.json, in the project

{
  "mcp": {
    "ros-mcp-server": {
      "type": "local",
      "command": [
        "uvx",
        "ros-mcp==3.1.2"
      ]
    }
  }
}

If the file already exists, add the server inside the mcp key.

Add to the file ~/.config/zed/settings.json, for all projects

{
  "context_servers": {
    "ros-mcp-server": {
      "command": "uvx",
      "args": [
        "ros-mcp==3.1.2"
      ]
    }
  }
}

If the file already exists, add the server inside the context_servers key.

Add to the file .codeassistant/mcp.json, in the project

{
  "mcpServers": {
    "ros-mcp-server": {
      "command": "uvx",
      "args": [
        "ros-mcp==3.1.2"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

You will need: uv

Checked against the repository on Sep 25, 2026, commit 476591a.

Text for your agent

Install uv, then in Claude Code run claude mcp add ros-mcp -- uvx ros-mcp --transport=stdio. On the robot machine install rosbridge, for example sudo apt install ros-<distro>-rosbridge-server, and launch it with ros2 launch rosbridge_server rosbridge_websocket_launch.xml.

Other ways from the author
claude mcp add ros-mcp -- uvx ros-mcp --transport=stdio

Requires uv, which provides uvx. Rosbridge with rosapi is set up separately on the robot machine.

This is third-party code. Review the repository files before installing.

What it does

The server gives the agent two-way access to a robot running ROS through a rosbridge node, without changing the robot's source code. The agent can publish and subscribe to topics, call services and actions, set parameters, read sensor data and monitor robot state in real time. It helps the model discover the available topics, services, actions and their types, including custom ones, so it can address them with the right syntax and no manual setup. It works with ROS 2, such as Jazzy and Humble, and ROS 1 distributions; the link runs over WebSocket, so the agent and the robot can sit on different machines in one network.

Who it is for. For robotics engineers and ROS developers who want to control a robot and inspect its state through an agent.

Good fit when

  • You want to control a ROS robot with natural-language commands
  • You want to read topics, sensors and robot state together with the agent
  • You need to call services or actions and set parameters without hand-written syntax
  • You want to diagnose a robot or debug behavior in simulation

Not a fit when

  • The robot machine has no ROS and cannot run rosbridge
  • The task is unrelated to ROS and robots

Example request

Connect to the robot on localhost through ros-mcp and show which topics and services are available

Limitations

The robot machine must have ROS installed and rosbridge running together with rosapi, or the introspection tools fail. Rosbridge is started through its launch file, not ros2 run, otherwise rosapi does not come up. Installing the server needs Python 3.10 or newer and pip 23.0 or newer. Controlling a real robot needs care: the agent can move mechanisms and change parameters. ROS 1 is declared end of life.

How to disable. Run claude mcp remove ros-mcp or delete the ros-mcp entry from the client's MCP configuration. If installed via pip, uninstall the ros-mcp package.

MCP

Transport
stdio, http
Authentication
not required

Security check

  • Controls a real robot: publishes to topics, calls services and actions, sets parameters
  • A wrong command can cause unwanted movement of mechanisms

README in short

The README describes a server that connects large language models to robots through MCP and ROS without changing the robot's code. It claims two-way communication: publishing and subscribing to topics, calling services and actions, working with parameters, and reading sensors and state. The server helps the model discover topics, services and their types, including custom ones, and works with ROS 2 and ROS 1. It shows examples with an industrial robot, the Wilson mobile robot and a Unitree Go2 quadruped in NVIDIA Isaac Sim. Setup goes through uvx or pip, with rosbridge and rosapi on the robot. Apache 2.0 licensed.

FAQ

Do I need to change the robot's code?

No. You just run a rosbridge node in the existing ROS setup, and the server connects to it over WebSocket.

Does it work with ROS 1?

Yes, the server supports ROS 2 and ROS 1 distributions, though ROS 1 is declared end of life.

Editors’ pick

An MCP server with n8n node and template knowledge: the agent picks nodes, validates configs and, with API access, creates workflows in your n8n

MCP serverHigh riskNo VPN needed23KRepository stars
Official

Zapier's official MCP plugin: the agent gets actions across thousands of apps through your Zapier account

PluginHigh risk421Repository stars

A curated list of Claude skills and plugins, plus Composio's own automation skills for 78 SaaS apps

SkillHigh risk75.8KRepository stars

A plugin and CLI catalog for agents: generates command-line interfaces for GUI apps like GIMP and Blender and installs ready ones via CLI-Hub

PluginHigh riskNo VPN needed50.9KRepository stars
Foxx AIROS MCP Server

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.