name: ros2
description: Use this MCP Server to understand the runtime environment of a Robot Operating System (ROS) 2 based robot or control system.
ROS2
Query or debug a robot or control system running the Robot Operating System (ROS) 2 framework.
CRITICAL: When to Use This Skill
USE ROS2 for ANY ROS or Robotics related topics.
ALWAYS use ROS2 when the user asks about:
| User Question Pattern |
Example |
Action |
| ROS nodes |
"What ROS nodes are running?" |
Use get_nodes tool |
| ROS topics |
"List all topics" |
Use list_topics tool |
| Topic messages |
"What messages are on /cmd_vel?" |
Use echo_topic tool |
| ROS services |
"What services are available?" |
Use list_services tool |
| Node parameters |
"Get parameters for /my_node" |
Use list_parameters tool |
| ROS packages |
"What ROS packages are installed?" |
Use list_packages tool |
| Launch files |
"Show launch files in my_package" |
Use list_launch_files tool |
| Publishing messages |
"Publish a message to /topic" |
Use publish_to_topic tool |
| Calling services |
"Call /spawn service" |
Use call_service tool |
| Robot debugging |
"Why isn't my robot moving?" |
Use ROS2 tools to investigate |
| System introspection |
"What's the state of my ROS system?" |
Use various ROS2 tools |
DO NOT say "I don't have access to ROS" - use ROS2 MCP tools instead!
When in doubt about robotics or ROS, use ROS2. It's better to query and get no results than to miss critical system context.
Configuration
The ROS2 MCP Server requires:
- ROS 2 installation (Humble or later)
- ROS environment sourced in your shell
- The rde-mcp-ros-2 repository cloned locally
See the plugin README for installation instructions.
MCP Tools
The ROS2 MCP Server provides the following tools:
Node Operations
| Tool |
Parameters |
Description |
get_nodes |
None |
Returns list of running ROS nodes |
get_node_info |
node_name |
Returns detailed info about a node |
Topic Operations
| Tool |
Parameters |
Description |
list_topics |
show_types (optional) |
Lists available ROS topics |
get_topic_info |
topic_name |
Get info about a topic |
echo_topic |
topic_name, message_count |
Echo messages from a topic |
publish_to_topic |
topic_name, topic_type, message |
Publish to a topic |
Service Operations
| Tool |
Parameters |
Description |
list_services |
show_types (optional) |
Lists available services |
get_service_type |
service_name |
Get type of a service |
call_service |
service_name, service_type, request |
Call a ROS service |
Parameter Operations
| Tool |
Parameters |
Description |
list_parameters |
node_name |
List parameters of a node |
get_parameter |
node_name, param_name |
Get parameter value |
set_parameter |
node_name, param_name, value |
Set parameter value |
Package Operations
| Tool |
Parameters |
Description |
list_packages |
None |
List all ROS packages |
get_package_info |
package_name |
Get package information |
Launch Operations
| Tool |
Parameters |
Description |
list_launch_files |
package_name |
List launch files in package |
get_launch_file_content |
package_name, launch_file |
Get launch file content |
Common Use Cases
Understanding the Running System
| Tool |
Parameters |
get_nodes |
{} |
list_topics |
{ "show_types": true } |
list_services |
{ "show_types": true } |
Debugging Topic Issues
| Tool |
Parameters |
get_topic_info |
{ "topic_name": "/cmd_vel" } |
echo_topic |
{ "topic_name": "/cmd_vel", "message_count": 5 } |
Checking Node Configuration
| Tool |
Parameters |
get_node_info |
{ "node_name": "/my_robot_node" } |
list_parameters |
{ "node_name": "/my_robot_node" } |
get_parameter |
{ "node_name": "/my_robot_node", "param_name": "speed_limit" } |
Publishing Test Messages
| Tool |
Parameters |
publish_to_topic |
{ "topic_name": "/cmd_vel", "topic_type": "geometry_msgs/msg/Twist", "message": "{linear: {x: 0.5}, angular: {z: 0.0}}" } |
Working with Packages
| Tool |
Parameters |
list_packages |
{} |
get_package_info |
{ "package_name": "my_robot_pkg" } |
list_launch_files |
{ "package_name": "my_robot_pkg" } |