Skip to main content
Glama
kintopp

rijksmuseum-mcp+

by kintopp

Navigate Viewer

navigate_viewer

Zoom or pan an open Rijksmuseum viewer to a specific detail of an artwork using coordinates or a relative crop.

Instructions

Zooms/pans an already-open viewer to a region — steer the user's view to a detail. Requires a viewUUID from a prior get_artwork_image call (the viewer must be open). Not for opening the viewer — use get_artwork_image. Not for visual analysis — use inspect_artwork_image.

In most cases you do NOT need this tool: inspect_artwork_image already auto-zooms the open viewer to whatever region it inspects. Call navigate_viewer only to move the user's view WITHOUT fetching image bytes for your own analysis.

By default, region coordinates are in full-image space (percentages or pixels of the original image), not relative to the current viewport. The same pct:x,y,w,h used in inspect_artwork_image will target the identical area in the viewer. Exception: when a command includes relativeTo, region is interpreted in that inspected crop's local coordinate space.

Region formats:

  • 'pct:x,y,w,h' — percentage of full image.

  • 'crop_pixels:x,y,w,h' — pixel coordinates of the full image. Use nativeWidth/nativeHeight returned by inspect_artwork_image to bound values. When used with relativeTo + relativeToSize, crop_pixels is instead interpreted as pixels within that inspected crop.

  • 'x,y,w,h' — equivalent to crop_pixels: (legacy IIIF form, kept for compatibility).

  • 'full' | 'square' — whole image shortcuts.

Out-of-bounds regions are rejected with an overlay_region_out_of_bounds warning — correct the coordinates and retry. Keep batches under 10 commands per call. The viewer session (viewUUID) remains active for 30 minutes of idle inactivity — any polling or navigation resets the clock.

Coordinate shortcut: to zoom to a region of a prior inspect_artwork_image crop, use 'relativeTo' with the crop's region string and specify 'region' as coordinates within the crop's local space; the server projects to full-image space deterministically. Use pct:x,y,w,h for crop-local percentages, or crop_pixels:x,y,w,h plus relativeToSize:{width: cropPixelWidth, height: cropPixelHeight} from inspect_artwork_image for crop-local rendered pixels.

Response field deliveryState reports whether the iframe drained the commands immediately (delivered_recently), the iframe exists but hasn't polled recently and the commands are queued (queued_waiting_for_viewer — typical when scrolled out of view), or no iframe has connected yet (no_live_viewer_seen). In the queued case, the command is preserved server-side and will apply automatically when the viewer resumes polling — do not narrate this as a delivery failure to the user.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
commandsYesZoom/pan commands to execute in the viewer, in order
viewUUIDYesViewer UUID from a prior get_artwork_image call

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNo
queuedYes
viewUUIDYes
imageWidthNo
imageHeightNo
lastPolledAtNoISO timestamp of the iframe's last poll. Absent if the iframe has never polled this session.
objectNumberNoObject number of the artwork in this viewer session — gives a structuredContent reader the identity needed for a follow-up call without parsing prose.
deliveryStateNoServer's view of command delivery: delivered, queued for an existing-but-offscreen viewer, or no viewer ever connected.
regionRecoveryNoOut-of-bounds recovery hint. Present only on an `overlay_region_out_of_bounds` error — mirrors the recovery payload the text channel renders, so a structuredContent reader can self-correct without parsing prose.
pendingCommandCountNoCommands sitting in the queue that the iframe has not yet drained.
recentlyPolledByViewerNoTrue if the iframe polled within the last 5s.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes far beyond annotations: explains region formats, out-of-bounds warning, batch size limit (10), session timeout (30 min), deliveryState field. Details coordinate projection with relativeTo. Annotations only indicate mutating but not destructive, and description adds comprehensive behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with front-loaded purpose and guidelines, but relatively lengthy due to detailed coordinate explanations. Every sentence earns its place, though could be slightly condensed without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all necessary aspects: when to use, coordinate formats, error handling, limits (batch, session), response interpretation. Given the complexity of coordinate projection, the description is thorough and leaves no gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, yet description adds significant meaning: explains coordinate systems in detail, interrelation between region and relativeTo, and usage examples. Every parameter's purpose and constraints are elaborated beyond schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool zooms/pans an already-open viewer, with specific verb and resource. Distinguishes from siblings by explicitly saying what it is not for (opening: use get_artwork_image; visual analysis: use inspect_artwork_image).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (only to move view without fetching image bytes) and when not (most cases not needed because inspect_artwork_image auto-zooms). Provides alternative tool names and detailed guidance on coordinate systems and relativeTo usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kintopp/rijksmuseum-mcp-plus'

If you have feedback or need assistance with the MCP directory API, please join our Discord server