Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
annotateA

Draw marks on an existing image: numbered steps, boxes, arrows, labels, highlights, spotlight, text and solid redaction. Use it once you have an image and exact rects (from capture_web, capture_window targets, locate, or grid + zoom); for a web page in one call use shoot instead. Draft by default (temp folder): check the preview, then call again with draft=false to save to the output folder. spec: {"input": path, "scale": 1|2.., "crop": "auto"|[x1,y1,x2,y2], "name": "...", "marks": [{"type": "step"|"box"|"arrow"|"highlight"|"spotlight"|"redact"|"text"|..., "rect": {x,y,w,h} or [x1,y1,x2,y2], "label": "...", "n": 1, "color": "look|bad|good|info"}]}. Every coordinate in one unit; scale converts it to image px. Full reference: resource ainotate://spec. Writes PNG files only; never changes the input image. Returns paths, image size, warnings, legend (step numbers + labels), redactions and a preview.

previewA

Debug render of an annotate spec: draws the marks plus cyan target rects and magenta label boxes so you can see why a label moved or a mark misses its element. Use it when the annotate preview looks wrong; it is not a deliverable. Writes only a temp file, saves nothing to the output folder. Returns the temp path, warnings and the preview.

capture_webA

Screenshot a web page in a headless browser (Playwright) and measure named elements, so you can annotate with exact rects. Use it for web UIs; for desktop apps use capture_window, for what is on screen right now capture_screen. Pass url to load a page, or cdp_url + page_url_contains to attach to a browser that is already running and logged in (the tab is captured as is). Loads the page over the network; actions (click, fill) run in that page and can change state on the site, so only pass actions the user asked for. Presets: laptop 1280x800@2, wide 1600x1000@2, phone 390x844@3. Needs ainotate[web] and a Playwright browser (doctor checks). Returns the PNG path (temp folder), rects in CSS px, scale (use it as the spec scale), missing targets with the reason, a spec stub and a preview with the rects outlined.

shootA

One call from URL to annotated image: capture_web + annotate, with marks that point at elements by "target" instead of "rect". Use it for web pages when you know the visible text, role or selector of every element; use capture_web + annotate when you need to inspect rects first. spec = render spec without input/scale, plus url (or cdp_url + page_url_contains), preset, actions and marks with "target": {...} (same forms as capture_web). Emails, tokens, card numbers and password fields are redacted with solid blocks automatically. Loads the page over the network; actions run in the page. Draft by default (temp folder): check the preview, then call again with draft=false to save to the output folder. Returns paths, warnings, legend, redactions, the capture's resolved rects and a preview.

locateA

Find visible text on an image by OCR and return its rect, for images where you have no DOM or accessibility data (desktop captures, the user's screenshots). Rects are [x1,y1,x2,y2] in image px (spec scale 1), best match first; several equally good matches = ambiguous: ask the user, or pass nth (0-based, reading order) or within [x1,y1,x2,y2]. all=true also lists weaker matches. Runs on this machine (macOS Vision, Windows OCR or Tesseract); reads the image, writes nothing. If the text is not found, use grid + zoom. Returns matches with score and a preview outlining them.

capture_screenA

Screenshot the whole screen or one region, as the user sees it right now. Use it for something that spans several windows or is not in any one window; prefer capture_window for one app (no overlap from other windows) and capture_web for web pages (exact element rects). macOS needs the Screen Recording permission for the app that runs this server (Claude Desktop, the terminal...); without it the capture comes back blank and the error says how to fix it. Linux needs mss (X11) or grim (Wayland). Writes a PNG to the temp folder. Returns its path and size, and a preview; then locate elements with locate or grid + zoom and annotate with scale 1.

list_windowsA

List the visible windows: [{id, app, title, bounds}], to get the id for capture_window. filter = case-insensitive substring of the app name or title. Reads window metadata only (on macOS the titles need the Screen Recording permission). Returns count, windows and a suggestion.

capture_windowA

Screenshot one window by id (from list_windows); never moves, resizes or focuses it. On macOS other windows covering it do not show; on Windows and Linux they may, since the fallback grabs the window's screen area. Use it for desktop apps; capture_screen for several windows, capture_web for web pages. macOS only: targets {name: {"element": label, "role"?, "nth"?, "exact"?}} measures buttons and fields through Accessibility (needs that permission) and returns their rects plus the scale for the annotate spec. Needs Screen Recording on macOS. Writes a PNG to the temp folder. Returns its path, size, window_id, rects and scale when targets were given, and a preview.

clipboard_imageA

Save the image that is on the clipboard (e.g. a screenshot the user just copied) as a PNG in the temp folder, so you can annotate it. Use it when the user says they copied a screenshot; for a file they sent, pass its path to annotate or locate directly. Reads the clipboard, does not change it. Linux needs wl-paste or xclip. Returns the PNG path, size and a preview.

gridA

Overlay a labelled coordinate grid every step px on an image, to find roughly where an element is when locate cannot read it (icons, images, no text). Then call zoom on that area for the exact rect. Writes the grid image to the temp folder; the input is not changed. The preview IS the grid, labels in source image px. Returns the grid path and the source image size.

zoomA

Enlarged crop of [x1,y1,x2,y2] with a fine grid labelled in SOURCE image px, so you can read an exact rect straight off the preview (spec scale 1). Use it after grid, or to check a rect from locate. Keep regions under ~500 px wide or the labels get too dense. Writes the crop to the temp folder; the input is not changed. Returns the zoom path, region, size, notes and the preview.

make_guideA

Build a step-by-step guide from annotated images: Markdown, HTML and/or PDF, one image and text per step, every image at its own size. Use it after annotate when the user wants a how-to or documentation; for a single image just deliver the annotate output. Draft by default (temp folder): check the preview, then call again with draft=false to save to the output folder. PDF uses Playwright when available, else a Pillow page per step. Writes files only. Returns the file path per format, the PDF backend, warnings and a preview of the first step.

compareA

Before/after plate: two images side by side or stacked, each with a label (default "Before", "After"; pass labels in the audience's language). Use it to show a UI change or a fix. Draft by default (temp folder): check the preview, then call again with draft=false to save to the output folder. Writes one PNG; the inputs are not changed. Returns the path, size and a preview.

animateA

Animation from image paths, one frame per image: APNG (full color, default) or GIF (plays everywhere: Slack, mail, Jira). Use it to show a short sequence of states; for steps the user should read, make_guide is clearer. Draft by default (temp folder): check the preview, then call again with draft=false to save to the output folder. The preview shows the first frame. Writes one file; the inputs are not changed. Returns the path, frame count, format, size and a preview.

copy_to_clipboardA

Put an image on the system clipboard so the user can paste it into Slack, Jira or mail. It REPLACES whatever the clipboard holds, so tell the user, and use it only when they want to paste; otherwise give them the file path. Works on macOS, Windows and Linux (wl-copy or xclip). Returns the path that was copied.

doctorA

Check what AInotate can do on this machine: Pillow, font, output folder, Playwright and its browser, a CDP browser, screen capture permission, window listing, OCR engines, clipboard and mcp. Use it first when a tool fails with a missing dependency or permission, or before a long task on a new machine. Read-only: changes nothing. Returns ok, os, every check with its status and the exact fix for each failed one.

Prompts

Interactive templates invoked by user choice

NameDescription
annotate-guideStep-by-step visual guide with AInotate
bug-ticketBug report or ticket with an annotated screenshot

Resources

Contextual data attached and managed by the client

NameDescription
spec-referenceAInotate spec reference: marks, units, options, crop, colors, patterns

TDQS

A4.3/5.0

Scored across 16 tools

Disambiguation5/5

Each tool targets a distinct resource or stage: capture_web/capture_window/capture_screen differ by source, shoot is explicitly a shortcut combining capture_web+annotate, and preview is clearly framed as a non-deliverable debug render. The locate vs grid+zoom split (text vs non-text) and the annotate/make_guide/compare/animate outputs are all spelled out, so misselection is unlikely.

Naming Consistency3/5

Names mix bare verbs (annotate, preview, shoot, locate, compare, animate) with verb_noun compounds (capture_web, list_windows, make_guide, copy_to_clipboard) and bare nouns (grid, zoom, doctor). Every name is readable and snake_case is used throughout, but there is no single predictable pattern.

Tool Count4/5

16 tools is slightly on the heavy side but each earns its place, covering capture, coordinate-finding, annotation, composition, delivery and diagnostics without obvious redundancy. It fits the multi-stage screenshot-annotation workflow well.

Completeness4/5

The surface covers the full lifecycle: acquire (web/window/screen/clipboard), locate coordinates (OCR/grid/zoom), annotate, compose (guide/compare/animate), deliver (clipboard/file) and self-diagnose (doctor). Minor gaps like a general crop/convert or image-info utility exist, but agents can work around them via annotate's crop.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive