ROS MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ROS_DOMAIN_ID | No | ROS domain ID for communication between MCP server and local machine. Default is 0 if not set. | 0 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_topicsA | Displays a list of currently accessible ROS2 topics. |
| check_topic_statusA | Checks whether a specific ROS2 topic is actively publishing messages. |
| find_ros2_packageA | Searches for available ROS 2 packages that match a given keyword. |
| run_ros2_executableB | Runs a ROS 2 executable from a specified package. |
| list_ros2_nodesA | Lists currently running ROS 2 nodes. |
| get_ros2_node_infoC | Shows detailed information about a specific ROS 2 node. |
| publish_ros2_topicA | Publishes a message to a specific ROS 2 topic for a given duration (in seconds). |
| check_ros2_topic_hzB | Displays the publishing frequency (Hz) of a given ROS 2 topic. |
| list_ros2_servicesA | Lists available ROS 2 services. |
| call_ros2_serviceA | |
| list_ros2_actionsA | Lists available ROS 2 actions. |
| send_ros2_action_goalB | Sends a goal to a ROS 2 action. |
| run_ros2_doctorA | Runs ros2 doctor to check ROS 2 environment setup and issues. |
| show_ros2_interfaceB | Shows the interface (definition) for a given ROS 2 message or service type. |
| launch_rqt_graphA | Launch rqt_graph GUI tool via WebSocket server. |
| launch_rvizB | Launch RViz2 GUI tool via WebSocket server. |
| launch_turtlesimA | Launch turtlesim GUI application via WebSocket server. |
| launch_gazeboA | Launch Gazebo simulation environment via WebSocket server. |
| launch_turtlebot3_worldB | Launch TurtleBot3 world in Gazebo via WebSocket server. |
| launch_turtlebot3_empty_worldB | Launch TurtleBot3 in empty world in Gazebo via WebSocket server. |
| get_topic_infoB | Get detailed information about a specific ROS2 topic. |
| debug_ros2_environmentB | Debug ROS 2 environment variables and setup. |
| echo_ros2_topicB | Echo messages from a ROS2 topic for a specified number of messages. |
| clean_all_ros2_nodesA | Kills all currently running ROS 2 and Gazebo related processes to clean the environment. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 24 tools
Each tool targets a distinct ROS 2 operation (e.g., call service, echo topic, launch simulation, list nodes). Despite some similar verbs like 'check' and 'get', the descriptions clearly differentiate the tools, leaving no ambiguity.
Tool names consistently use verb_noun pattern, but there is minor inconsistency in whether 'ros2' is included in the noun (e.g., 'list_topics' vs 'list_ros2_services'). This slight deviation from perfect uniformity justifies a 4.
With 24 tools, the set is comprehensive but slightly above the typical 3-15 range for well-scoped servers. However, each tool serves a clear purpose in the ROS 2 ecosystem, so it is not excessive.
The tool set covers major ROS 2 interactions: listing, publishing, service calls, actions, node info, and launching simulations. Minor gaps like a specific stop-node tool are absent, but agents can work around using 'clean_all_ros2_nodes' or other means.