MCP Servers for Robotics and ROS: AI Agent Integration Guide
The Model Context Protocol (MCP) is, quietly, the most important interop standard for AI-driven robotics in years. It lets an LLM (Claude, GPT, Gemini, anything that speaks MCP) reach a ROS topic, a service call, an action goal, or a robot driver — bidirectionally — without anyone writing a custom REST shim. This is a guide to the real servers, the real safety story, and where MCP fits in the robotics stack today.
Why MCP matters for robotics, specifically
Robotics has a long history of "talk to my robot" protocols: ROS topics and services, ROS 2's DDS-backed graph, vendor SDKs from Universal Robots, FANUC, KUKA, ABB, Boston Dynamics. None of them were designed for an LLM caller. Each comes with idiosyncratic message schemas, hand-rolled clients, and zero standardized way to advertise "these are the verbs you can use against this robot."
MCP fills that gap. A robotics MCP server publishes a tool list — publish_cmd_vel, subscribe_scan, get_tf_tree, call_navigate_to_pose, list_running_nodes. A client model picks the right tool given a natural-language goal ("rotate 90 degrees left and stop when you see the door"), formats the message, calls the server. The server speaks ROS underneath. That's it.
ROS 1 vs ROS 2 — and what the servers actually cover
ROS 2 is the official future (DDS-based, realtime-capable, security-aware), but a huge fleet of production robots and research platforms still run ROS 1 Noetic. The good news: the leading robotics MCP server — robotmcp/ros-mcp-server — supports both. It works across ROS 2 Jazzy, Humble, and others, and against ROS 1 distros. Bidirectional communication, no edits to the robot's source code. At 1.2k+ stars, it's the de-facto choice for "I want an LLM on the joystick layer."
For deep ROS 2 introspection — node management, topic / service operations, parameter management — ranch-hand-robotics/rde-mcp-ros-2 exposes 30+ tools, essentially the ROS 2 CLI surface lifted into MCP shape. Different fit: this one is for engineers debugging a fleet from an AI co-pilot, not for the agent driving the robot live.
Other implementations worth knowing: LCAS/ros2_mcp (research-lab, comprehensive), Yutarop/ros-mcp (topics + services + actions), and wise-vision/ros2_mcp (advanced ROS 2 bridge). The space is moving — expect consolidation but don't be surprised by overlap today.
Safety: the part that's not the LLM's job
An LLM publishing cmd_vel messages to a 60kg mobile robot is exactly as dangerous as it sounds if there's no safety layer between the agent and the actuators. MCP doesn't solve this; it makes it more visible. Real deployments treat MCP-from-LLM as one source of motion commands, gated by:
- A safety supervisor node that enforces velocity / acceleration limits, workspace bounds, and emergency-stop priority. The LLM never bypasses it.
- Read-only MCP tools by default. Actuation tools (publishing to motion topics, calling navigation actions) require explicit human confirmation in the agent loop, the same way a Claude-Desktop tool can require approval per call.
- Simulation-first workflows. Gazebo / Isaac Sim lets you iterate on agent prompts and tool chains against a digital twin before touching live hardware. Every robotics MCP server here is simulator-compatible because they speak the same ROS graph.
- An audit trail. If the agent did something on the robot, you want a tamper-evident record of what tool was called, with what arguments, when, on which robot — whether stored in a log, a database, or anchored on-chain.
What's not yet covered
- Vendor SDKs. Universal Robots URScript, ABB RAPID, KUKA KRL, Fanuc R-30iB — no community MCP wrappers we could find. The path of least resistance is a ROS driver in front, then one of the ROS MCP servers above.
- Mobile-robot fleet managers. VDA 5050 (the AGV interop standard) doesn't have an MCP server yet. A fleet manager (OpenRMF, MiR Fleet, Otto Fleet Manager) wrapper would be high-leverage for warehouse / logistics operators.
- Drones. PX4 / ArduPilot via MAVLink is a natural MCP candidate; nothing production-ready in the directory yet.
- Manipulator motion planning. MoveIt 2 exposes a rich set of services; a focused MCP wrapper would let an agent plan and execute trajectories conversationally.
Picking one to start with
If you have a ROS robot today and want an LLM at the joystick: robotmcp/ros-mcp-server. The install is a one-line uvx or claude mcp add; once it's up, a single "ask Claude to drive the robot in a square" works as the first smoke test. From there, add a safety supervisor and switch to read-only tools in production until you're confident.