Show HN: Robot MCP Server – Connect Any Language Model and ROS Robots Using MCP (github.com)

26 points by r-johnv ↗ HN
We’ve open-sourced the Robot MCP Server, a tool that lets large language models (LLMs) talk directly to robots running ROS1 or ROS2.

What it does - Connects any LLM to existing ROS robots via the Model Context Protocol (MCP) - Natural language → ROS topics, services, and actions (And the ability to read any of them back) - Works without changing robot source code

Why it matters - Makes robots accessible from natural language interfaces - Opens the door to rapid prototyping of AI-robot applications - We are trying to create a common interface for safe AI ↔ robot communication

This is too big to develop alone — we’d love feedback, contributors, and partners from both the robotics and AI communities.

14 comments

[ 3.5 ms ] story [ 38.0 ms ] thread
This looks like very exciting work! I'm curious - how much pre-context did you need to provide Claude to operate the industrial robot? That looks like a very complex environment.
LLMs sometimes hallucinate while stating one thing and outputting disconnected commands/code on the back end in many superficial/general models (Claude included) - does the MCP try to correct/account for that? Or is user oversight necessary to ensure that actions match the LLM output? Is the only way to stop aberrant operation by hitting a physical emergency stop or can the LLM interface be used to for that?
Really impressive work! I love that you can set this up without touching any existing robot code—just start rosbridge and the MCP server, and the LLM can both control and observe the ROS system. It’s like having a conversational ros2cli. The KUKA arm demo is particularly striking—the LLM can call gripper services in real time, all from natural language. One thing I’m curious about—could this setup handle coordinating multiple robots simultaneously, or is it still limited to a single robot per session?”
Hey guys, nice work! Finally someone is taking the bull by the horns.

What excites me most is the potential for MCP to help with diagnostics and deployment for non-developers. A lot of lab techs or operators don’t want to dive into ros2 topic hz or parse logs — they just want to ask simple questions like “why isn’t the arm responding?” or “is this topic publishing?”.

A natural language layer over ROS could make debugging and deployment way easier for non-technical users — almost like having a conversational ros2 doctor or ros2 launch.

Exactly! With MCP, we’ve started to imagine a workflow where instead of digging through logs, you just ask “why isn’t the robot responding?” and get guided through the diagnostics. No need to memorize every ROS command.

This isn’t just a bridge between LLMs and robots, it can also be a bridge between non-developer operators and the ROS ecosystem.

I believe this project will play a significant role in helping to control robots using natural language!
Thanks for the comment! We see the future of human–robot collaboration as being closely tied to how LLMs can translate verbal instructions into higher-level, longer-horizon commands. The goal here isn’t to “code faster,” but to make things like diagnostics and behavior tree design more intuitive and accessible — both for developers and for operators who don’t want to dive deep into ROS internals.
This is a very intriguing application of physical AI. It is astounding to see demos of how simple, human instructions can produce complex machine actions. What can we do to improve the safety of protecting assets or people in the case of misuse? I see some code contributions regarding permission controls, but are there other steps we can take to ensure this technology "understands" when the physical motion being requested is not appropriate because it might endanger people or expensive hardware that is difficult to replace?
Fascinating work!

Does this also entail industrial (sector-agnostic) applications where mitigating actions, based on vision or other sensor data based leading indicators, can proactively be taken using LLM-directed mitigation protocols? Does it allow for non-technical users to perhaps drive debugging or other similar mitigation actions?

Really fascinating stuff - I've tried it out and it works like a charm. Really gets one to think if natural language would be the language to program and control robots in the future (just with higher level of abstraction)
(comment deleted)