snipaya-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SNIPAYA_MCP_URL | No | Server URL from Snipaya. Defaults to http://127.0.0.1:<saved port>/mcp, otherwise http://127.0.0.1:47321/mcp. Only 127.0.0.1 and localhost are accepted. | |
| SNIPAYA_MCP_TOKEN | No | Access token from Snipaya Settings > AI Assistants. Overrides the token Snipaya saved. | |
| SNIPAYA_MCP_NO_LAUNCH | No | Set to 1 to never open Snipaya. The bridge then fails with 'Cannot reach Snipaya' while Snipaya is closed. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| snipaya_get_canvasA | Describe the open tabs and the active canvas: images (id, position, size, original pixel size), annotations (id, kind, geometry, style, text, anchors), selection and crop. Call this first. |
| snipaya_renderA | Return a PNG of the canvas (or only the given element ids) so you can see what the user sees. Downscaled to maxSize on the longest side. |
| snipaya_add_imageA | Add a screenshot or image to the canvas from an absolute file path or a data URL. Related images (before and after, steps of a flow) go on one canvas with placement "add". Use "new-tab" only to start a new, unrelated image, never one tab per related image. |
| snipaya_add_arrowB | Draw a straight arrow (head at "to") or, with head false, a line. curved true draws a gentle curved arrow. Ends landing on an image are anchored to it. |
| snipaya_add_shapeA | Add a rectangle frame, ellipse, highlighter box, blur (pixelate) or noise (opaque random colors from the area, the safest way to hide sensitive data) over a region. For blur and noise, pixelSize sets the block size; larger is coarser. |
| snipaya_add_textA | Add a text label with its top-left corner at "at". Supports \n for new lines. |
| snipaya_add_stepA | Add an auto-numbered step badge (1, 2, 3...) centered at "at", for step-by-step guides. size is the badge diameter; make it larger on big screenshots. |
| snipaya_add_emojiB | Place an emoji sticker centered at "at". |
| snipaya_add_freehandB | Draw a freehand pen line, highlighter stroke or curved arrow through the given points. The path is smoothed like a hand-drawn stroke. |
| snipaya_add_magnifierA | Add a round magnifying lens at "lens" that shows a zoomed view of the area around "source". radius defaults to about 8% of the short side of the image under the source. |
| snipaya_add_calloutB | Add a speech-bubble callout with text in "rect" and a tail pointing at "tail" (defaults to below the box). The box grows to fit the text. |
| snipaya_add_spotlightA | Dim everything except "rect" (form rect or ellipse) to draw attention to it. dim (0 to 1) changes the user’s spotlight darkness setting for all spotlights. |
| snipaya_add_measureA | Draw a measuring line from "from" to "to" labeled with its length in image pixels. Returns the label. |
| snipaya_pick_colorA | Read the color of the image pixel at "at" and return it as a #rrggbb hex. Changes nothing. |
| snipaya_read_textA | Recognize text (on-device OCR) in the images and return the lines in reading order with their rects. Limit it with rect and/or imageId. Rects use the relativeTo space when set. |
| snipaya_redactA | Find emails, phone numbers, IBANs, card numbers, tokens, IP addresses, passwords and faces (on-device) and cover them in one undo step, in the user’s Redaction style (noise by default). style overrides it: noise fills the area with opaque random colors from it, blur pixelates with blocks sized to the text, solid covers it with a plain box. pixelSize sets the noise block size or a coarser minimum for blur. Defaults to every image and category. Returns the ids and counts. |
| snipaya_update_itemsA | Change existing elements by id: move (x, y), resize (width, height), rotate (degrees), change text, or restyle. For steps, width or style.fontSize resizes the badge. All updates are one undo step. |
| snipaya_delete_itemsA | Delete elements (images or annotations) by id. One undo step. |
| snipaya_selectA | Select elements by id so the user sees which ones you mean. An empty list clears the selection. |
| snipaya_arrangeB | Lay out all images of the tab in a row, column or grid with an optional gap. |
| snipaya_set_cropA | Crop exports to a rectangle, or pass null to remove the crop. |
| snipaya_undoA | Undo the last change on the tab (yours or the user’s). |
| snipaya_redoA | Redo the last undone change on the tab. |
| snipaya_tabsA | Open a new empty tab, switch to a tab, or close a tab (closing never discards unsaved work without asking the user). |
| snipaya_exportA | Export the canvas (or given ids) as PNG or JPG. With path, writes the file (absolute path, matching extension, refuses to overwrite unless overwrite is true); without path, returns the image. |
| snipaya_list_destinationsA | List the export destinations the user set up (share menu, open with an app, quick save folder, uploaders, Jira, Confluence) with their ids for snipaya_export_to. |
| snipaya_export_toA | Render the canvas (or given ids) as PNG and send it to a destination from snipaya_list_destinations. Uploads to network destinations always ask the user to confirm first. Returns the link or file path. |
| snipaya_save_projectA | Save the tab as a .snipaya project. Without path, saves to the tab’s existing file; a tab that was never saved needs an absolute path. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| explain_bug | Mark up a screenshot with steps, an arrow and a callout so the bug is obvious. |
| redact_before_sharing | Hide emails, phone numbers, tokens, passwords, faces and other private details. |
| finish_screenshot | Crop to what matters and frame the image on a background with padding. |
| copy_text | Read the text in a screenshot on device and return it as plain text. |
| make_walkthrough | Lay out several screenshots in order and number the steps into one guide image. |
| compare_before_after | Put two screenshots side by side in one tab, label them and mark what changed. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 28 tools
Most tools have clearly distinct purposes: annotation creation, selection, arrangement, export, and canvas inspection are separated well. A few boundaries are adjacent rather than ambiguous, such as render vs export/export_to, add_shape blur/noise vs redact, and delete_items vs undo. The descriptions generally resolve these, so an agent can choose correctly.
All tools use the snipaya_ prefix with snake_case, which is highly consistent. However, naming is not a strict verb_noun pattern throughout: many annotation tools use add_, but there are also verb-only names like redact, render, select, arrange, undo, redo, export, and the noun-like tabs. Still, the convention is predictable and readable.
The 28-tool surface is heavy, but the domain is feature-rich image annotation and covers many distinct annotation primitives. Each tool has a plausible place, yet the set could likely be consolidated with a more generic annotation tool rather than exposing every annotation type separately. The count is borderline for an MCP server but not chaotic.
The server covers the annotation lifecycle well: inspect canvas, add diverse annotation types, read/select/update/delete elements, undo/redo, manage tabs, and export/save. Minor gaps remain, notably no obvious open/load project tool despite save_project, and no destination-management tool beyond listing existing destinations. These are workable gaps rather than dead ends for core annotation workflows.