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"
}