Tool reference
Pinned to ROS2 MCP release 2610. This page is generated from the server’s tool registry: do not edit it by hand.
Generated from ROS2 MCP 2606-3-g47b4918 (package version 0.1.0, source 47b4918658f44f77a0e46da223aba5d9cca64ab6).
24 tools are registered.
| Tool | Mutates robot state | Summary |
|---|---|---|
ros2_action_request_result |
no | Wait for the RESULT of a ROS 2 action (GetResult) for a given goal_id. Before every use of this tool, the agent should ensure the target action exists (e.g., by calling ‘ros2_list_actions’). |
ros2_action_subscribe_feedback |
no | Subscribe to feedback messages of a ROS 2 action. Optionally filter by goal_id_hex. Collects feedback for a fixed duration or until a maximum number of messages is received. Each message contains goal_id, feedback payload, and receive timestamp. |
ros2_action_subscribe_status |
no | Subscribe to ‘/<action>/_action/status’ (action_msgs/msg/GoalStatusArray) and return a snapshot of status frames over a time window. Each frame contains goal_id, accept_stamp, status_code and status text. |
ros2_cancel_action_goal |
⚠ yes | Cancel a ROS 2 action goal via ‘/<action>/cancel_goal’ (action_msgs/srv/CancelGoal). You can cancel a specific goal by goal_id_hex or cancel all matching goals using cancel_all=True. Optionally limit cancellation to goals accepted before a given stamp (sec/nanosec). Before every use of this tool, the agent should ensure the target action exists (e.g., by calling ‘ros2_list_actions’). |
ros2_get_map_as_image |
no | Get one nav_msgs/msg/OccupancyGrid message from a topic and return it as a PNG image (base64-encoded). Unknown cells rendered as gray, free as white, occupied as black. |
ros2_get_message_fields |
no | Returns the fields of a given ROS2 message type. |
ros2_get_messages_stored_in_influx_data_base |
no | Calls the ROS2 ‘/get_messages’ service to retrieve past messages from a topic for data which is stored in InfluxDB. |
ros2_get_pointcloud_as_bev |
no | Get one sensor_msgs/msg/PointCloud2 message from a topic and return it as a PNG image (base64-encoded) rendered as a bird’s-eye view (XY projection). Supports coloring by intensity/height/rgb. |
ros2_interface_list |
no | Returns a list of available ROS 2 interfaces. |
ros2_list_actions |
no | List all available ROS 2 actions with their types and request fields. |
ros2_publish_multiple_topics |
⚠ yes | Publish messages to multiple ROS 2 topics simultaneously with optional frequency and duration. |
ros2_send_action_goal |
⚠ yes | Send a goal to a ROS 2 action by name and action type using provided goal fields. Before every use of this tool, the agent must call ‘ros2_list_actions’ and ‘ros2_interface_list’ to ensure the latest available actions and types are known. Optionally wait for the result with a timeout. |
ros2_service_call |
⚠ yes | Call a ROS 2 service by name and type using provided fields. |
ros2_service_list |
no | Returns a list of available ROS 2 services and their request fields. |
ros2_stream_next |
no | Fetch the latest item from a stream session. If after_seq is provided, returns available=false until seq increases. UI/App-only tool. |
ros2_stream_next_image |
no | Fetch the latest image from an image stream session and return it as ImageContent (useful when the client cannot render the Viewer App UI). UI/App-only tool. |
ros2_stream_start |
no | Start a keep-latest stream session for a ROS 2 topic (Image/CompressedImage/PointCloud2/Generic). Returns a session_id. UI/App-only tool. |
ros2_stream_stop |
no | Stop and clean up a stream session previously started with ros2_stream_start. UI/App-only tool. |
ros2_subscribe_multiple_topics |
no | Subscribe to multiple ROS 2 topics at once and return received messages. |
ros2_topic_list |
no | Returns a list of available ROS 2 topics and their types. |
ros2_topic_publish |
⚠ yes | Publish a message to a ROS 2 topic by name and message type using provided field values. |
ros2_topic_subscribe |
no | Subscribe to a ROS 2 topic by name collecting messages for a given time or count limit. |
ros2_viewer_app |
no | Open an interactive ROS 2 viewer app (Image + PointCloud2 + Plot) for MCP clients that support Apps/HTML resources. |
ros2_viewer_config |
no | Return the last ROS 2 Viewer App configuration (if any). UI/App-only tool. |
ros2_action_request_result
Section titled “ros2_action_request_result”Wait for the RESULT of a ROS 2 action (GetResult) for a given goal_id. Before every use of this tool, the agent should ensure the target action exists (e.g., by calling ‘ros2_list_actions’).
| Parameter | Type | Required | Notes |
|---|---|---|---|
action_name |
string | yes | Action name, e.g. ‘/fibonacci’ |
action_type |
string | yes | Full action type, e.g. ‘example_interfaces/action/Fibonacci’ or ‘pkg/ActionName’ |
goal_id_hex |
string | yes | 32-char UUID hex of the goal (no dashes). |
timeout_sec |
number | null | no | Seconds to wait for GetResult; null → wait indefinitely. · default: 60.0 |
wait_for_service_sec |
number | no | Seconds to wait for the GetResult service to appear. · default: 3.0 |
Input schema (JSON)
{ "additionalProperties": false, "properties": { "action_name": { "description": "Action name, e.g. '/fibonacci'", "type": "string" }, "action_type": { "description": "Full action type, e.g. 'example_interfaces/action/Fibonacci' or 'pkg/ActionName'", "type": "string" }, "goal_id_hex": { "description": "32-char UUID hex of the goal (no dashes).", "type": "string" }, "timeout_sec": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": 60.0, "description": "Seconds to wait for GetResult; null → wait indefinitely." }, "wait_for_service_sec": { "default": 3.0, "description": "Seconds to wait for the GetResult service to appear.", "type": "number" } }, "required": [ "action_name", "action_type", "goal_id_hex" ], "type": "object"}ros2_action_subscribe_feedback
Section titled “ros2_action_subscribe_feedback”Subscribe to feedback messages of a ROS 2 action. Optionally filter by goal_id_hex. Collects feedback for a fixed duration or until a maximum number of messages is received. Each message contains goal_id, feedback payload, and receive timestamp.
| Parameter | Type | Required | Notes |
|---|---|---|---|
action_name |
string | yes | Action name, e.g. ‘/fibonacci’ |
action_type |
string | yes | Full action type, e.g. ‘example_interfaces/action/Fibonacci’ or ‘pkg/ActionName’ |
duration_sec |
number | no | How many seconds to keep spinning and collecting feedback. · default: 5.0 |
goal_id_hex |
string | null | no | Optional 32-char UUID hex of the goal (no dashes) to filter feedbacks. |
max_messages |
integer | no | Maximum number of feedback messages to collect. · default: 100 |
Input schema (JSON)
{ "additionalProperties": false, "properties": { "action_name": { "description": "Action name, e.g. '/fibonacci'", "type": "string" }, "action_type": { "description": "Full action type, e.g. 'example_interfaces/action/Fibonacci' or 'pkg/ActionName'", "type": "string" }, "duration_sec": { "default": 5.0, "description": "How many seconds to keep spinning and collecting feedback.", "type": "number" }, "goal_id_hex": { "description": "Optional 32-char UUID hex of the goal (no dashes) to filter feedbacks.", "type": [ "string", "null" ] }, "max_messages": { "default": 100, "description": "Maximum number of feedback messages to collect.", "type": "integer" } }, "required": [ "action_name", "action_type" ], "type": "object"}ros2_action_subscribe_status
Section titled “ros2_action_subscribe_status”Subscribe to ‘/<action>/_action/status’ (action_msgs/msg/GoalStatusArray) and return a snapshot of status frames over a time window. Each frame contains goal_id, accept_stamp, status_code and status text.
| Parameter | Type | Required | Notes |
|---|---|---|---|
action_name |
string | yes | Action name, e.g. ‘/fibonacci’ |
duration_sec |
number | no | How many seconds to collect status frames. · default: 5.0 |
max_messages |
integer | no | Max number of individual statuses to collect in total. · default: 100 |
Input schema (JSON)
{ "additionalProperties": false, "properties": { "action_name": { "description": "Action name, e.g. '/fibonacci'", "type": "string" }, "duration_sec": { "default": 5.0, "description": "How many seconds to collect status frames.", "type": "number" }, "max_messages": { "default": 100, "description": "Max number of individual statuses to collect in total.", "type": "integer" } }, "required": [ "action_name" ], "type": "object"}ros2_cancel_action_goal
Section titled “ros2_cancel_action_goal”⚠ mutates robot state
Cancel a ROS 2 action goal via ‘/<action>/cancel_goal’ (action_msgs/srv/CancelGoal). You can cancel a specific goal by goal_id_hex or cancel all matching goals using cancel_all=True. Optionally limit cancellation to goals accepted before a given stamp (sec/nanosec). Before every use of this tool, the agent should ensure the target action exists (e.g., by calling ‘ros2_list_actions’).
| Parameter | Type | Required | Notes |
|---|---|---|---|
action_name |
string | yes | Action name, e.g. ‘/fibonacci’ or ‘/navigate_to_pose’ |
cancel_all |
boolean | no | If true, send zero-UUID to cancel all matching goals. · default: false |
goal_id_hex |
string | no | 32-char UUID hex of the goal (no dashes). Omit when cancel_all=True. |
stamp_nanosec |
integer | no | Nanoseconds part for the acceptance time filter. · default: 0 |
stamp_sec |
integer | no | Cancel goals accepted BEFORE this sec (default 0 → usually all). · default: 0 |
wait_timeout_sec |
number | no | Timeout (seconds) to wait for the service and response. · default: 3.0 |
Input schema (JSON)
{ "additionalProperties": false, "properties": { "action_name": { "description": "Action name, e.g. '/fibonacci' or '/navigate_to_pose'", "type": "string" }, "cancel_all": { "default": false, "description": "If true, send zero-UUID to cancel all matching goals.", "type": "boolean" }, "goal_id_hex": { "description": "32-char UUID hex of the goal (no dashes). Omit when cancel_all=True.", "type": "string" }, "stamp_nanosec": { "default": 0, "description": "Nanoseconds part for the acceptance time filter.", "type": "integer" }, "stamp_sec": { "default": 0, "description": "Cancel goals accepted BEFORE this sec (default 0 → usually all).", "type": "integer" }, "wait_timeout_sec": { "default": 3.0, "description": "Timeout (seconds) to wait for the service and response.", "type": "number" } }, "required": [ "action_name" ], "type": "object"}ros2_get_map_as_image
Section titled “ros2_get_map_as_image”Get one nav_msgs/msg/OccupancyGrid message from a topic and return it as a PNG image (base64-encoded). Unknown cells rendered as gray, free as white, occupied as black.
| Parameter | Type | Required | Notes |
|---|---|---|---|
topic_name |
string | yes | The name of the ROS 2 topic publishing nav_msgs/msg/OccupancyGrid (e.g., /map). |
Input schema (JSON)
{ "properties": { "topic_name": { "description": "The name of the ROS 2 topic publishing nav_msgs/msg/OccupancyGrid (e.g., /map).", "type": "string" } }, "required": [ "topic_name" ], "type": "object"}ros2_get_message_fields
Section titled “ros2_get_message_fields”Returns the fields of a given ROS2 message type.
| Parameter | Type | Required | Notes |
|---|---|---|---|
message_type |
string | yes | Full ROS2 message type, e.g., std_msgs/msg/String |
Input schema (JSON)
{ "properties": { "message_type": { "description": "Full ROS2 message type, e.g., std_msgs/msg/String", "type": "string" } }, "required": [ "message_type" ], "type": "object"}ros2_get_messages_stored_in_influx_data_base
Section titled “ros2_get_messages_stored_in_influx_data_base”Calls the ROS2 ‘/get_messages’ service to retrieve past messages from a topic for data which is stored in InfluxDB. Check if the /get_messages service is available before calling.
| Parameter | Type | Required | Notes |
|---|---|---|---|
message_type |
string | yes | Full ROS2 message type used for decoding |
number_of_messages |
integer | no | Number of messages to fetch. · default: 0 |
time_end |
string | no | ISO8601 timestamp string to filter messages before a point in time. |
time_start |
string | no | ISO8601 timestamp string to filter messages after a point in time. |
topic_name |
string | yes | Name of the topic to retrieve messages from. |
Input schema (JSON)
{ "properties": { "message_type": { "description": "Full ROS2 message type used for decoding", "type": "string" }, "number_of_messages": { "default": 0, "description": "Number of messages to fetch.", "type": "integer" }, "time_end": { "description": "ISO8601 timestamp string to filter messages before a point in time.", "type": "string" }, "time_start": { "description": "ISO8601 timestamp string to filter messages after a point in time.", "type": "string" }, "topic_name": { "description": "Name of the topic to retrieve messages from.", "type": "string" } }, "required": [ "topic_name", "message_type" ], "type": "object"}ros2_get_pointcloud_as_bev
Section titled “ros2_get_pointcloud_as_bev”Get one sensor_msgs/msg/PointCloud2 message from a topic and return it as a PNG image (base64-encoded) rendered as a bird’s-eye view (XY projection). Supports coloring by intensity/height/rgb.
| Parameter | Type | Required | Notes |
|---|---|---|---|
color_mode |
string | no | Coloring mode: ‘intensity’ | ‘height’ | ‘rgb’. · one of: "intensity", "height", "rgb" · default: "intensity" |
colormap |
string | no | Colormap for intensity/height: ‘jet’ | ‘gray’. · one of: "jet", "gray" · default: "jet" |
max_pixels |
integer | no | Max image size per axis (to cap huge clouds). · default: 2048 |
resolution |
number | no | Meters per pixel for the BEV image. · default: 0.05 |
timeout |
number | no | Seconds to wait for a message. · default: 5.0 |
topic_name |
string | yes | ROS 2 topic with PointCloud2 (e.g., /points). |
zmax |
number | no | Max Z to include (meters). |
zmin |
number | no | Min Z to include (meters). |
Input schema (JSON)
{ "properties": { "color_mode": { "default": "intensity", "description": "Coloring mode: 'intensity' | 'height' | 'rgb'.", "enum": [ "intensity", "height", "rgb" ], "type": "string" }, "colormap": { "default": "jet", "description": "Colormap for intensity/height: 'jet' | 'gray'.", "enum": [ "jet", "gray" ], "type": "string" }, "max_pixels": { "default": 2048, "description": "Max image size per axis (to cap huge clouds).", "type": "integer" }, "resolution": { "default": 0.05, "description": "Meters per pixel for the BEV image.", "type": "number" }, "timeout": { "default": 5.0, "description": "Seconds to wait for a message.", "type": "number" }, "topic_name": { "description": "ROS 2 topic with PointCloud2 (e.g., /points).", "type": "string" }, "zmax": { "description": "Max Z to include (meters).", "type": "number" }, "zmin": { "description": "Min Z to include (meters).", "type": "number" } }, "required": [ "topic_name" ], "type": "object"}ros2_interface_list
Section titled “ros2_interface_list”Returns a list of available ROS 2 interfaces.
No parameters.
Input schema (JSON)
{ "properties": {}, "type": "object"}ros2_list_actions
Section titled “ros2_list_actions”List all available ROS 2 actions with their types and request fields. This tool queries the current ROS graph to discover active action servers and returns a structured description for each action.
No parameters.
Input schema (JSON)
{ "additionalProperties": false, "properties": {}, "type": "object"}ros2_publish_multiple_topics
Section titled “ros2_publish_multiple_topics”⚠ mutates robot state
Publish messages to multiple ROS 2 topics simultaneously with optional frequency and duration.
| Parameter | Type | Required | Notes |
|---|---|---|---|
topics |
array<object> | yes | List of topics to publish to. |
Input schema (JSON)
{ "properties": { "topics": { "description": "List of topics to publish to.", "items": { "properties": { "data": { "description": "Message content as dictionary", "type": "object" }, "duration": { "default": 5.0, "description": "Duration in seconds to publish (optional)", "type": "number" }, "frequency": { "default": 1.0, "description": "Publishing frequency in Hz (optional)", "type": "number" }, "message_type": { "type": "string" }, "topic_name": { "type": "string" } }, "required": [ "topic_name", "message_type", "data" ], "type": "object" }, "type": "array" } }, "required": [ "topics" ], "type": "object"}ros2_send_action_goal
Section titled “ros2_send_action_goal”⚠ mutates robot state
Send a goal to a ROS 2 action by name and action type using provided goal fields. Before every use of this tool, the agent must call ‘ros2_list_actions’ and ‘ros2_interface_list’ to ensure the latest available actions and types are known. Optionally wait for the result with a timeout.
| Parameter | Type | Required | Notes |
|---|---|---|---|
action_name |
string | yes | Action name, e.g. ‘/fibonacci’ or ‘/navigate_to_pose’ |
action_type |
string | yes | Full action type, e.g. ‘example_interfaces/action/Fibonacci’ or ‘pkg/ActionName’ |
goal_fields |
object | yes | Dictionary with goal message fields (1st section of .action file) |
timeout_sec |
number | no | Timeout (seconds) for waiting on the result when wait_for_result=true · default: 60.0 |
wait_for_result |
boolean | no | If true, wait for GetResult and include final status/result · default: false |
Input schema (JSON)
{ "additionalProperties": false, "properties": { "action_name": { "description": "Action name, e.g. '/fibonacci' or '/navigate_to_pose'", "type": "string" }, "action_type": { "description": "Full action type, e.g. 'example_interfaces/action/Fibonacci' or 'pkg/ActionName'", "type": "string" }, "goal_fields": { "description": "Dictionary with goal message fields (1st section of .action file)", "type": "object" }, "timeout_sec": { "default": 60.0, "description": "Timeout (seconds) for waiting on the result when wait_for_result=true", "type": "number" }, "wait_for_result": { "default": false, "description": "If true, wait for GetResult and include final status/result", "type": "boolean" } }, "required": [ "action_name", "action_type", "goal_fields" ], "type": "object"}ros2_service_call
Section titled “ros2_service_call”⚠ mutates robot state
Call a ROS 2 service by name and type using provided fields. Will ask the user to confirm if some fields are missing unless ‘force_call’ is set to True. Before every use of this tool, the agent must call ‘ros2 service list’ and ‘ros2 interface list’ to ensure the latest interface information is available.
| Parameter | Type | Required | Notes |
|---|---|---|---|
fields |
object | yes | Dictionary of fields to send in the service request. |
force_call |
boolean | no | Whether to call the service even if some fields are missing · default: false |
service_name |
string | yes | Name of the service to call |
service_type |
string | yes | Full ROS 2 service type, before pass, check service type using tool ros2_service_list |
Input schema (JSON)
{ "properties": { "fields": { "description": "Dictionary of fields to send in the service request.", "type": "object" }, "force_call": { "default": false, "description": "Whether to call the service even if some fields are missing", "type": "boolean" }, "service_name": { "description": "Name of the service to call", "type": "string" }, "service_type": { "description": "Full ROS 2 service type, before pass, check service type using tool ros2_service_list", "type": "string" } }, "required": [ "service_name", "service_type", "fields" ], "type": "object"}ros2_service_list
Section titled “ros2_service_list”Returns a list of available ROS 2 services and their request fields.
No parameters.
Input schema (JSON)
{ "properties": {}, "type": "object"}ros2_stream_next
Section titled “ros2_stream_next”Fetch the latest item from a stream session. If after_seq is provided, returns available=false until seq increases. UI/App-only tool.
| Parameter | Type | Required | Notes |
|---|---|---|---|
after_seq |
integer | no | |
session_id |
string | yes |
Input schema (JSON)
{ "additionalProperties": false, "properties": { "after_seq": { "type": "integer" }, "session_id": { "type": "string" } }, "required": [ "session_id" ], "type": "object"}ros2_stream_next_image
Section titled “ros2_stream_next_image”Fetch the latest image from an image stream session and return it as ImageContent (useful when the client cannot render the Viewer App UI). UI/App-only tool.
| Parameter | Type | Required | Notes |
|---|---|---|---|
after_seq |
integer | no | |
session_id |
string | yes |
Input schema (JSON)
{ "additionalProperties": false, "properties": { "after_seq": { "type": "integer" }, "session_id": { "type": "string" } }, "required": [ "session_id" ], "type": "object"}ros2_stream_start
Section titled “ros2_stream_start”Start a keep-latest stream session for a ROS 2 topic (Image/CompressedImage/PointCloud2/Generic). Returns a session_id. UI/App-only tool.
| Parameter | Type | Required | Notes |
|---|---|---|---|
jpeg_quality |
integer | no | default: 80 |
kind |
string | yes | one of: "image", "pointcloud", "message" |
max_height |
integer | no | default: 540 |
max_points |
integer | no | Max points to return; <=0 means no limit. · default: 0 |
max_width |
integer | no | default: 960 |
qos_preset |
string | no | QoS preset for the stream subscription. Use sensor_data for most camera topics. · one of: "auto", "sensor_data", "system_default" · default: "auto" |
target_fps |
number | no | Soft cap for processing frames (keep-latest, drops when over). · default: 20.0 |
topic_name |
string | yes |
Input schema (JSON)
{ "additionalProperties": false, "properties": { "jpeg_quality": { "default": 80, "type": "integer" }, "kind": { "enum": [ "image", "pointcloud", "message" ], "type": "string" }, "max_height": { "default": 540, "type": "integer" }, "max_points": { "default": 0, "description": "Max points to return; <=0 means no limit.", "type": "integer" }, "max_width": { "default": 960, "type": "integer" }, "qos_preset": { "default": "auto", "description": "QoS preset for the stream subscription. Use sensor_data for most camera topics.", "enum": [ "auto", "sensor_data", "system_default" ], "type": "string" }, "target_fps": { "default": 20.0, "description": "Soft cap for processing frames (keep-latest, drops when over).", "type": "number" }, "topic_name": { "type": "string" } }, "required": [ "topic_name", "kind" ], "type": "object"}ros2_stream_stop
Section titled “ros2_stream_stop”Stop and clean up a stream session previously started with ros2_stream_start. UI/App-only tool.
| Parameter | Type | Required | Notes |
|---|---|---|---|
session_id |
string | yes |
Input schema (JSON)
{ "additionalProperties": false, "properties": { "session_id": { "type": "string" } }, "required": [ "session_id" ], "type": "object"}ros2_subscribe_multiple_topics
Section titled “ros2_subscribe_multiple_topics”Subscribe to multiple ROS 2 topics at once and return received messages.
| Parameter | Type | Required | Notes |
|---|---|---|---|
topics |
array<object> | yes | List of topics to subscribe to. |
Input schema (JSON)
{ "properties": { "topics": { "description": "List of topics to subscribe to.", "items": { "properties": { "duration": { "default": 0.0, "description": "How many seconds to listen (optional).", "type": "number" }, "message_limit": { "default": 0, "description": "Number of messages to collect (optional).", "type": "integer" }, "name": { "type": "string" } }, "required": [ "name" ], "type": "object" }, "type": "array" } }, "required": [ "topics" ], "type": "object"}ros2_topic_list
Section titled “ros2_topic_list”Returns a list of available ROS 2 topics and their types.
No parameters.
Input schema (JSON)
{ "properties": {}, "type": "object"}ros2_topic_publish
Section titled “ros2_topic_publish”⚠ mutates robot state
Publish a message to a ROS 2 topic by name and message type using provided field values. Supports single publish (default) or continuous publishing at a specified frequency for a duration. Before every use of this tool, the agent must call ‘ros2_topic_list’ and ‘ros2_interface_list’ to ensure the latest available topics and message types are known.
| Parameter | Type | Required | Notes |
|---|---|---|---|
data |
object | yes | Dictionary containing the message fields and values |
duration |
number | no | Optional: Duration in seconds for continuous publishing. Must be used with frequency parameter. |
frequency |
number | no | Optional: Publish frequency in Hz (messages per second). If provided with duration, publishes repeatedly. |
message_type |
string | yes | Full ROS 2 message type, e.g., ‘std_msgs/msg/String’ |
topic_name |
string | yes | Name of the topic to publish to |
Input schema (JSON)
{ "properties": { "data": { "description": "Dictionary containing the message fields and values", "type": "object" }, "duration": { "description": "Optional: Duration in seconds for continuous publishing. Must be used with frequency parameter.", "type": "number" }, "frequency": { "description": "Optional: Publish frequency in Hz (messages per second). If provided with duration, publishes repeatedly.", "type": "number" }, "message_type": { "description": "Full ROS 2 message type, e.g., 'std_msgs/msg/String'", "type": "string" }, "topic_name": { "description": "Name of the topic to publish to", "type": "string" } }, "required": [ "topic_name", "message_type", "data" ], "type": "object"}ros2_topic_subscribe
Section titled “ros2_topic_subscribe”Subscribe to a ROS 2 topic by name collecting messages for a given time or count limit. Before every use of this tool, the agent must call ‘ros2_topic_list’ to ensure it has the latest available topics
| Parameter | Type | Required | Notes |
|---|---|---|---|
duration |
number | no | If provided, collects messages for this many seconds. |
message_limit |
integer | no | If provided, stops after receiving this number of messages. |
topic_name |
string | yes | Name of the topic to subscribe to |
Input schema (JSON)
{ "properties": { "duration": { "description": "If provided, collects messages for this many seconds.", "type": "number" }, "message_limit": { "description": "If provided, stops after receiving this number of messages.", "type": "integer" }, "topic_name": { "description": "Name of the topic to subscribe to", "type": "string" } }, "required": [ "topic_name" ], "type": "object"}ros2_viewer_app
Section titled “ros2_viewer_app”Open an interactive ROS 2 viewer app (Image + PointCloud2 + Plot) for MCP clients that support Apps/HTML resources.
| Parameter | Type | Required | Notes |
|---|---|---|---|
auto_start |
boolean | no | default: true |
plot_fields |
array<string> | no | Optional list of plot field paths to preselect in Plot mode. |
preferred_kind |
string | no | one of: "image", "pointcloud", "plot", "auto" |
topic_name |
string | no |
Input schema (JSON)
{ "properties": { "auto_start": { "default": true, "type": "boolean" }, "plot_fields": { "description": "Optional list of plot field paths to preselect in Plot mode.", "items": { "type": "string" }, "type": "array" }, "preferred_kind": { "enum": [ "image", "pointcloud", "plot", "auto" ], "type": "string" }, "topic_name": { "type": "string" } }, "type": "object"}ros2_viewer_config
Section titled “ros2_viewer_config”Return the last ROS 2 Viewer App configuration (if any). UI/App-only tool.
No parameters.
Input schema (JSON)
{ "additionalProperties": false, "properties": {}, "type": "object"}