name: rviz-screenshot-loop description: Capture RViz/GUI screenshots via MCP to close the loop while debugging ROS. Use when you need visual verification in RViz or other windows.
RViz Screenshot Loop
If the task is not RViz-specific, use gui-screenshot-loop instead.
When To Use
- You need to see RViz or other GUI state while debugging ROS.
- You want to verify fixed frame, display status, or visual artifacts after running ROS commands.
Prereqs
- X11 session.
- MCP server
screenshotis configured in~/.codex/config.tomland points to~/.codex/mcp-servers/screenshot/server.py.
Quick Discovery
- List monitors:
xrandr --listmonitors - List windows:
wmctrl -l - Find RViz windows:
xdotool search --name '.*RViz.*'
Tool Calls (MCP)
Use the MCP tool screenshot.screenshot:
- Full screen:
{"mode":"full"}
- Monitor by index:
{"mode":"monitor","monitor":1}
- Monitor by name:
{"mode":"monitor","monitor_name":"DP-2"}
- Window by title (if multiple matches, provide index):
{"mode":"window","window_title":"RViz","window_index":0}
- Window by id (most reliable):
{"mode":"window","window_id":"0x064001f6"}
- Region:
{"mode":"region","x":2600,"y":50,"width":1800,"height":1000}
Optional:
max_width=0to keep full resolution.
Workflow
- Run your ROS or sim command.
- Capture RViz with
mode="window"(preferwindow_id). - Read the RViz text/status (Global Status, TF, fixed frame, PointCloud status).
- If the user asked for sim bringup, use
sim-startupskill first, then capture RViz. - If debugging TF or topics, use
ros2-debuggingskill first, then capture RViz to confirm.
Failure Handling
- If window title matches multiple IDs, pick the correct one from
wmctrl -land usewindow_id.