Prompts
MCP prompts are ready-made instructions that your client offers as templates (in Claude Desktop and VS Code they appear as slash commands or in the prompt picker). You fill in a few arguments; the prompt tells the agent which tools to call and how to report. See the MCP specification for how clients show them.
Built-in prompts
Section titled “Built-in prompts”These four are always available:
| Prompt | What it does | Arguments (required in bold) |
|---|---|---|
base.ros2-topic-echo-and-analyze |
Subscribes to a topic for a while and reports message rate, count and statistics of numeric fields. Picks the topic itself if there is only one. | topic_name, duration_sec, analysis_type (statistics, rate, message_count or all) |
base.ros2-topic-relay |
Subscribes to one topic and republishes on another, optionally rate-limited or filtered. | source_topic, destination_topic, message_type, transform (identity, rate_limit, filter), target_rate_hz, duration_sec |
base.ros2-node-health-check |
Checks that the topics and services you expect exist, and optionally that topics publish fast enough. | expected_topics, expected_services, check_rates, rate_check_duration_sec, min_expected_rate_hz |
base.ros2-topic-diff-monitor |
Compares the messages on two topics field by field, for example raw against filtered sensor data. | topic1_name, topic2_name, duration_sec, diff_fields, tolerance_percent, sync_by_timestamp |
base.ros2-topic-relay publishes, so it needs the publish tools. It fails in read-only mode.
The prompt pack: Nav2 and MAVROS
Section titled “The prompt pack: Nav2 and MAVROS”The open-source ros2_mcp_prompts pack (MPL-2.0) is included in the Docker image. Turn it on with -e MCP_CUSTOM_PROMPTS=true:
{ "mcpServers": { "ros2": { "command": "docker", "args": ["run", "-i", "--rm", "-e", "MCP_CUSTOM_PROMPTS=true", "wisevision/ros2_mcp:jazzy"] } }}It adds:
| Prompt | What it does |
|---|---|
nav2.nav2-navigate-to-pose |
Sends a Nav2 NavigateToPose goal from x, y and yaw in the map frame, follows the feedback and cancels on timeout. |
mavros2.drone-simple-takeoff |
Takes a MAVROS2 / ArduPilot drone off to a target altitude, and optionally lands it again. |
mavros2.drone-mavros2-mission |
Builds a full MAVLink mission (takeoff, waypoint, return to launch, land) from a target position and switches to AUTO. |
All three send action goals or call services, so they move the robot. They do not work in read-only mode.
Your own prompts
Section titled “Your own prompts”Put your prompts in a Python module in a local folder, mount it, and point the server at it:
docker run -i --rm \ -e MCP_CUSTOM_PROMPTS=true \ -e MCP_PROMPTS_LOCAL=true \ -v /path/to/ros2_mcp_prompts:/app/ros2_mcp_prompts \ wisevision/ros2_mcp:jazzyThe module (default name extension_prompts, set with MCP_PROMPTS_MODULE) exposes its prompts through a register_prompts() function, an ALL_PROMPTS list or a get_prompts() function. Each prompt is a BasePromptHandler with a name, a description, its arguments and a message template. The step-by-step guide is CREATE_PROMPT.md.