pypi ros-mcpstdioApache-2.0updated 8d ago
ROS-MCP-Server connects large language models (such as Claude, GPT, and Gemini) to robots, enabling bidirectional communication with no changes to existing robot source code.
What can you do with ros mcp server?
ROS MCP Server 🧠⇄🤖
ROS-MCP-Server connects large language models (such as Claude, GPT, and Gemini) to robots, enabling bidirectional communication with no changes to existing robot source code.
Why ROS-MCP?
- No robot source code changes → just add the
rosbridgenode to your existing ROS setup. - True two-way communication → LLMs can both control robots and observe everything happening on the Robot.
- Full context → publish & subscribe to topics, call services & actions, set parameters, read sensor data, and monitor robot state in real time.
- Deep ROS understanding → guides the LLM to discover available topics, services, actions, and their types (including custom ones) — enabling it to use them with the right syntax without manual configuration.
- Works with any MCP client → built on the open MCP standard, supporting Claude Code, Codex CLI, Gemini CLI, Claude Desktop, ChatGPT, Cursor, and more.
- Works across ROS versions → compatible across ROS 2 (Jazzy, Humble, and others) and ROS 1 distros.
🎥 Examples in Action
🏭 Example - AI Agent diagnosis of Industrial Robot End Effector (Video)
- The MCP server connects Claude to a production industrial robot, with only the technician manuals as reference.
- Claude discovers the robot's custom topic and service types and their syntax on its own.
- From a single prompt to test the gripper, it reads the manuals, runs its own tests, finds an anomaly, and reports the root cause.
🤖 Example - Controlling "Wilson" with natural language (video)
From a single prompt — "Grab a Coke from the fridge & go to the living room." — Google Gemini uses the MCP server to navigate and manipulate autonomously. Built on ROS 2 with Nav2 (SLAM) for mapping and navigation, and MoveIt to command the manipulator.
🐕 Example - Controlling Unitree Go2 in NVIDIA Isaac Sim (video)
The MCP server connects Claude to a simulated Unitree Go2 quadruped in NVIDIA Isaac Sim, interpreting natural language commands to navigate and control the robot.
🛠 Getting Started
Follow the installation guide to get started.
ROS-MCP works with Claude Code, Codex CLI, Gemini CLI, Claude Desktop, ChatGPT, Cursor, or any MCP-compatible client.
📚 More Examples & Tutorials
Browse our examples to see the server in action.
We welcome community PRs with new examples and integrations!
🤝 Contributing
We love contributions of all kinds:
- Bug fixes and documentation updates
- New features (e.g., Action support, permissions)
- Additional examples and tutorials
Check out the contributing guidelines and see issues tagged good first issue to get started.
📜 License
This project is licensed under the Apache License 2.0.
Install
Add ros mcp server to your client. Pick the one you use.
claude mcp add ros-mcp -- uvx ros-mcpcodex mcp add ros-mcp -- uvx ros-mcpamp mcp add ros-mcp -- uvx ros-mcp{
"mcpServers": {
"ros-mcp": {
"command": "uvx",
"args": [
"ros-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"ros-mcp": {
"command": "uvx",
"args": [
"ros-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"ros-mcp","command":"uvx","args":["ros-mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"ros-mcp": {
"command": "uvx",
"args": [
"ros-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"ros-mcp": {
"command": "uvx",
"args": [
"ros-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"ros-mcp": {
"command": "uvx",
"args": [
"ros-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"ros-mcp": {
"type": "local",
"command": "uvx",
"args": [
"ros-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"ros-mcp": {
"command": {
"path": "uvx",
"args": [
"ros-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
uvx ros-mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
Score
39 / 100
Incomplete
- Documentation19/25
- Maintenance25/25
- Trust16/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 0 days ago
- Has a release history
- Repository is not archived
- Licensed Apache-2.0
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 3.1.0Latest | Jun 18, 2026 |
| 3.0.1 | Jan 29, 2026 |
| 2.2.1 | Nov 6, 2025 |
| 2.2.0 | Nov 6, 2025 |
| 2.1.8 | Oct 27, 2025 |
| 2.1.6 | Oct 9, 2025 |
| 2.1.5 | Oct 9, 2025 |