ROS
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.
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
Maintainer
Works with
Installation
PIP
pip install ros-mcpManual Installation
pip install ros-mcpConfiguration
Configuration Details
claude_desktop_config.json
Performance
Response Metrics
Resource Usage
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)
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 | shInstall 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-serverLaunch 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.xmlAdd 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=stdioOr 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-mcpAdd 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.
ROS Alternatives — Similar Cloud Services Servers
Looking for alternatives to ROS? Here are other popular cloud services servers you can use with Claude, Cursor, and VS Code.
Open WebUI
★ 138.2kUser-friendly AI Interface (Supports Ollama, OpenAI API, ...)
Anything LLM
★ 60.4kThe all-in-one AI productivity accelerator. On device and privacy first with no annoying setup or configuration.
LocalAI
★ 46.4kLocalAI is the open-source AI engine. Run any model - LLMs, vision, voice, image, video - on any hardware. No GPU required.
Nacos
★ 33.0kan easy-to-use dynamic service discovery, configuration and service management platform for building AI cloud native applications.
Xiaozhi ESP32
★ 26.7k本项目为xiaozhi-esp32提供后端服务,帮助您快速搭建ESP32设备控制服务器。Backend service for xiaozhi-esp32, helps you quickly build an ESP32 device control server.
Gateway
★ 11.8kA blazing fast AI Gateway with integrated guardrails. Route to 1,600+ LLMs, 50+ AI Guardrails with 1 fast & friendly API.
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.
Set Up ROS in Your Editor
Choose your AI client for step-by-step setup instructions.
Quick Config Preview
Add this to your claude_desktop_config.json or .cursor/mcp.json
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.