// the find
robotmcp/ros-mcp-server
Connect AI models like Claude & GPT with robots using MCP and ROS.
An MCP server that bridges LLMs to ROS/ROS2 robots via rosbridge WebSocket, letting models publish topics, call services, trigger actions, and read sensor data without modifying robot source code. Aimed at robotics developers who want to add natural-language control or LLM-assisted diagnostics to existing ROS stacks.
The rosbridge approach is clever — it avoids requiring any changes to robot code and works across ROS 1 and ROS 2 distros uniformly. The LLM-driven type discovery (letting the model figure out custom message types on its own) is genuinely useful and sidesteps the usual configuration headache. Test coverage is unusually solid for this space: integration tests run against real ROS distros in Docker (Melodic, Noetic, Humble, Jazzy), not just mocks. The example set is practical — turtlesim for quick sanity checks, real hardware (Unitree Go2, LIMO) and sim (Isaac Sim) for serious use.
All robot communication flows through a rosbridge WebSocket, which adds latency and a reliability dependency that matters when you're issuing movement commands to real hardware — there's no fallback if the bridge drops mid-action. No authentication or access control on the MCP tools, so any connected LLM client can publish to any topic including cmd_vel; fine for a lab, a liability on shared or production robots. The robot_specifications YAML system for pre-loading context is underspecified — the only examples are the Unitree Go2 and a local_rosbridge template, so users with other robots are largely on their own. Action support appears partial: it's listed as a contribution target in the README, meaning long-running robot behaviors (navigation goals, manipulation sequences) may not work reliably yet.