Use this MCP Server to understand the runtime environment of a Robot Operating System (ROS) 2 based robot or control system.
Query or debug a robot or control system running the Robot Operating System (ROS) 2 framework.
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.
The ROS2 MCP Server requires:
See the plugin README for installation instructions.
The ROS2 MCP Server provides the following tools:
| Tool | Parameters | Description |
|---|---|---|
get_nodes | None | Returns list of running ROS nodes |
get_node_info | node_name | Returns detailed info about a node |
| 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 |
| 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 |
| 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 |
| Tool | Parameters | Description |
|---|---|---|
list_packages | None | List all ROS packages |
get_package_info | package_name | Get package information |
| 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 |
| Tool | Parameters |
|---|---|
get_nodes | {} |
list_topics | { "show_types": true } |
list_services | { "show_types": true } |
| Tool | Parameters |
|---|---|
get_topic_info | { "topic_name": "/cmd_vel" } |
echo_topic | { "topic_name": "/cmd_vel", "message_count": 5 } |
| 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" } |
| Tool | Parameters |
|---|---|
publish_to_topic | { "topic_name": "/cmd_vel", "topic_type": "geometry_msgs/msg/Twist", "message": "{linear: {x: 0.5}, angular: {z: 0.0}}" } |
| Tool | Parameters |
|---|---|
list_packages | {} |
get_package_info | { "package_name": "my_robot_pkg" } |
list_launch_files | { "package_name": "my_robot_pkg" } |