NATIVE MACOS MCP SERVER · CLAUDE DESKTOP & CODEX VERIFIED

New · Direct AI control via local MCP — verified in Claude Desktop & Codex →

Let Claude Desktop and Codex capture, annotate, preview, and export—inside a real Mac editor.

Snapperon exposes every reviewed local app control through 18 structured Model Context Protocol (MCP) commands. Automate screenshots, PDF page markup, numbered walkthroughs, and permanent redaction locally on Apple silicon—while keeping every annotation editable by hand.

Send the download link to your Mac.

Free · No account needed · macOS 14+ · Apple Silicon

The real Snapperon Mac editor with three editable numbered counters, a curved green arrow and circle on a revenue chart, plus native arrow controls.
Actual Snapperon editor · Pro styles shown
18
MCP commands
All 9
Annotation tools · 7 framing controls
57% smaller
Editing schema · on-demand discovery
24,146
Verified option cases

What Snapperon MCP does—and why AI workflows need a native editor

Snapperon is a native Swift and AppKit screenshot editor for Mac. Its local Model Context Protocol (MCP) server lets Claude Desktop and Codex Desktop control the installed app through 18 commands. All 9 annotation tools, every reviewed style option and the presentation controls are available, with rendered previews and one-step Undo for each committed edit batch.

The original screenshot stays available without image-generation changes. Annotations stay editable in the native editor so a person can move, resize or restyle them afterward. PNG export is lossless; JPEG is a compressed output option. Snapperon requires macOS 14 (Sonoma) or later on Apple silicon (M1 or newer). This is local desktop app control, not a hosted cloud API.

Tested in real desktop agent workflows

Claude Desktop: discover tools when needed

Tested with on-demand tool discovery, all 9 annotation tools, grounded semantic callouts without corrective coaching, native local file import and exact Undo/Redo. Clear tool descriptions and a 57% smaller editing schema let Claude find the editing command dynamically, without asking it to “load all tools.”

Codex Desktop: inspect, coordinate and commit

A configured Codex Desktop connection completed visual inspection and coordinated markup: read an embedded six-digit image code, prepare a matched rectangle and auto-fitted text label, inspect the preview, commit as one Undo step and present the finished visual. Independent native readback verified both editable annotations and exact Undo/Redo.

Reviewed verification corpus: 24,146 option cases · 275 core tests · 38 native suites, with Debug and Release builds. These counts describe the reviewed cases, not every possible numeric combination or AI request. Client results cover the workflows described here.

Connect through Snapperon’s native settings

  1. Open Snapperon Settings → Assistant Connections and choose Enable AI assistants. Read the native access explanation.
  2. Choose Copy Codex Setup or Copy Claude Desktop Setup. Snapperon generates the helper path for this exact installed copy.
  3. Merge the copied entry into your client’s configuration, preserving other servers. Codex uses config.toml; Claude Desktop uses the mcpServers object in claude_desktop_config.json. Reconnect local MCP servers in the client.
  4. Approve macOS Screen Recording when capturing. Use Choose Export Folder… for file saves. For connection help, choose Troubleshooting → Save Connection Diagnostics….

No additional Node or Python runtime is needed on your Mac. The signed helper stays inside its associated app. After moving the app, use the setup buttons again if the client still points at the previous location.

Existing restricted connections keep their permissions. Choose Enable Full Control to adopt full app access explicitly. Turning Enable AI assistants off revokes assistant access.

Work from ordinary requests

“Number these three peaks.”

Inspect the source image, identify the three peaks, stage native counters with edit_document or mark_regions, inspect the rendered preview, then commit_edit once.

“Highlight this heading.”

Inspect the heading, stage a native highlight with its color and opacity, check the preview and commit. Text-snapping or explicit regions can guide placement.

“Remove the middle marker.”

Inspect the current annotations, select the intended annotation ID and stage its removal with edit_document. Preview and commit while preserving the other markers.

“Inspect this dialog, box the verification code, and copy it to the clipboard.”

Capture the authorized dialog or open its local image. Inspect the code, stage a matching rectangle and text label, preview, commit as one Undo action and export to the authorized clipboard.

From first draft to finished visual

Developer docs, changelogs & knowledge bases

Capture live windows, add numbered counters and labels, verify a rendered preview and export crisp PNGs for step-by-step documentation.

UI QA, PR screenshots & design review

Let a coding assistant inspect an authorized window and place grounded callouts. Review the result and fine-tune the native layers yourself.

Local PII redaction

Apply Solid redaction, or Labeled and Pattern treatments on Pro, to screenshots and PDF pages. Inspect the flattened output. An assistant that reads the original source may see sensitive pixels; choose its access accordingly.

Charts, research figures & floor plans

Number chart peaks, highlight a heading or mark up a PDF page with arrows and notes. Preserve the original source and keep each annotation adjustable.

Agent draft → human polish

Have an assistant prepare and preview the first pass. Adjust any layer in the Mac editor, then finish with Copy + Close, drag-and-drop or PNG/JPEG export.

Complete MCP tool and option reference: all reviewed local controls

All nine annotation tools and their reviewed native options are exposed through MCP. The reference below contains 109 top-level tool settings and 18 top-level composition fields. Nested object subfields (shadow.*, banner_colors.*, shadow_lighting.* and watermark_style.*) are expanded as additional table rows. The reviewed verification corpus covers 24,146 option cases; it is not every possible numeric combination.

Use get_capabilities for the installed app’s current defaults and per-value Free/Pro availability. These are settings inside edit_document, not additional MCP commands.

Creation, coordinates & selective editing

op
Operation: add, update, remove, remove_target, duplicate, front, back, reset, move, remove_group, composition or reset_all. Each operation accepts its own fields.
tool
For add: arrow, text, rectangle, circle, counter, spotlight, redact, highlight or freehand.
start / end
Two-dimensional positions, normalized to the source by default. Use coordinate_space: composition_pixels only when the inspected composition supplies that coordinate space.
points
Freehand path with 2–4,096 [x,y] points. Use points without start/end, or the supported start/end gesture.
regions / whole_line
Highlight regions: 1–1,024 normalized [x,y,width,height] rectangles, without start/end. whole_line selects the anchored line.
text / title / text_box_height
Text content and optional title. An explicit text_box_height is 1–10,000 native points or null. New labels can grow vertically to fit wrapped text.
number
Counter value: integer 1–9,999.
id / group_id / delta
Target a returned annotation ID, remove a group by its ID, or move a selected annotation by [dx,dy]. front/back change its order.
settings
Use the exact tool-specific setting IDs below. A composition operation uses the framing settings instead.

Stage changes against the inspected document version, inspect the rendered preview, then commit. Preparation alone does not apply the edit.

Arrows

19 top-level settings

Direct the eye with straight or curved paths, hand-drawn, cartoon and marker presets, single or double arrowheads, borders, shadows and glow.

Arrows: 19 top-level settings, plus expanded nested subfields; parameter names, enums and ranges
ParameterType, values & limits
arrow_bordercolor · supports tool defaults
arrow_border_widthnumber · 0–48 · supports tool defaults
arrow_curvaturenumber · 0–0.6 · supports tool defaults
arrow_glowbool · supports tool defaults
arrow_glow_amountnumber · 0–1 · supports tool defaults
arrow_glow_coloroptional_color · null supported · supports tool defaults
arrow_lengthnumber · 1–1000000 · per-annotation setting
arrow_pathArrowPathStyle · standard, curved, angled, dashed · supports tool defaults
arrow_presetArrowPreset · basic, hand_drawn, cartoon, marker · supports tool defaults
arrow_rotationnumber · -90–90 · per-annotation setting
arrow_shadowbool · supports tool defaults
arrow_straightennumber · 0–1 · supports tool defaults
arrow_strokebool · supports tool defaults
colorcolor · supports tool defaults
fade_tailbool · supports tool defaults
flip_curvebool · supports tool defaults
headArrowHeadStyle · filled, open, double_ended, double_open, none · supports tool defaults
shadowshadow · null supported · supports tool defaults
shadow.blurnumber · 0–48
shadow.distancenumber · 0–24
shadow.elevationenum · none, subtle, floating, sticker, custom
shadow.extentnumber · 1–3
shadow.intensitynumber · 0–15
shadow.opacitynumber · 0–0.4
shadow.tintcolor
widthnumber · 3–72 · supports tool defaults

Text & Banners

21 top-level settings

Place a plain label or a designed banner. Set typography, text/backdrop colors, alignment, rotation, icons, gradients and shadows. New labels preserve wrapping width and expand vertically to fit their content; inspect placement in the preview.

Text & Banners: 21 top-level settings, plus expanded nested subfields; parameter names, enums and ranges
ParameterType, values & limits
bannerTextBannerStyle · none, solid, outline, filled, marker_note, lock_card, comic_burst, retro_letterpress, title_info, handwritten, gradient_border, gradient_fill, shadow, glow, pill, sticky, gradient_text, ribbon, caption, white, pink, blue, bracket, underline, corner_fold, tape, holographic, neon, glass · supports tool defaults
banner_border_coloroptional_color · null supported · supports tool defaults
banner_colorscolors · supports tool defaults
banner_colors.backgroundoptional_color · null supported
banner_colors.textoptional_color · null supported
banner_gradientTextBannerGradient · spectrum, aurora, sunset, ocean, blue_violet · supports tool defaults
banner_iconBannerIcon · null, info, sparkle, document, checkmark, lock, warning, error, question_mark, star, link, cursor, arrow_up, arrow_right, pin, eye, message, comment, mail, camera, image, calendar, clock, target, bell, heart, thumbs_up, thumbs_down, flag, gear, location, lightbulb, bookmark, tag, folder, download, upload, shield · supports tool defaults
banner_icon_coloroptional_color · null supported · supports tool defaults
banner_icon_visiblebool · supports tool defaults
banner_title_coloroptional_color · null supported · supports tool defaults
boldbool · supports tool defaults
colorcolor · supports tool defaults
fontfont · supports tool defaults
handwriting_weightoptional_bool · null supported · supports tool defaults
italicbool · supports tool defaults
shadowshadow · null supported · supports tool defaults
shadow.blurnumber · 0–48
shadow.distancenumber · 0–24
shadow.elevationenum · none, subtle, floating, sticker, custom
shadow.extentnumber · 1–3
shadow.intensitynumber · 0–15
shadow.opacitynumber · 0–0.4
shadow.tintcolor
sizenumber · 1–1000 · supports tool defaults
text_alignmentTextAlignment · left, center, right · supports tool defaults
text_backdropoptional_color · null supported · supports tool defaults
text_backdrop_roundingnumber · 0–1 · supports tool defaults
text_rotationnumber · -180–180 · supports tool defaults
text_scalenumber · 3–24 · supports tool defaults
underlinebool · supports tool defaults

Counters (Numbered Steps)

10 top-level settings

Place numbered badges for walkthroughs and bug reports. Control the number, scale, foreground, border, treatment, rotation and shadow.

Counters (Numbered Steps): 10 top-level settings, plus expanded nested subfields; parameter names, enums and ranges
ParameterType, values & limits
colorcolor · supports tool defaults
counter_bordercolor · supports tool defaults
counter_border_widthnumber · 0–48 · supports tool defaults
counter_rotationnumber · -180–180 · supports tool defaults
counter_scalenumber · 0.1–200 · supports tool defaults
counter_shadownumber · 0–2 · supports tool defaults
counter_treatmentCounterTreatment · filled_circle, outline_circle, filled_square, outline_square, pin · supports tool defaults
foregroundcolor · supports tool defaults
shadowshadow · null supported · supports tool defaults
shadow.blurnumber · 0–48
shadow.distancenumber · 0–24
shadow.elevationenum · none, subtle, floating, sticker, custom
shadow.extentnumber · 1–3
shadow.intensitynumber · 0–15
shadow.opacitynumber · 0–0.4
shadow.tintcolor
sizenumber · 1–1000 · supports tool defaults

Highlights

7 top-level settings

Emphasize a heading or detail with native highlight styles, color and intensity. Text snapping can follow a region or anchored whole line.

Highlights: 7 top-level settings, plus expanded nested subfields; parameter names, enums and ranges
ParameterType, values & limits
colorcolor · per-annotation setting
highlight_colorcolor · supports tool defaults
highlight_intensitynumber · 0–1 · supports tool defaults
highlight_snapbool · supports tool defaults
highlight_styleHighlightStyle · clean, handmade · supports tool defaults
rectangle_roundingnumber · 0–1 · supports tool defaults
shape_sizenumber · 1–1080 · per-annotation setting

Redaction

10 top-level settings

Cover sensitive pixels in flattened PNG/JPEG output while leaving the original file untouched. Solid is available in Free; Labeled and Pattern require Pro. Original pixels remain in the editable source, so choose assistant access carefully.

Redaction: 10 top-level settings, plus expanded nested subfields; parameter names, enums and ranges
ParameterType, values & limits
rectangle_roundingnumber · 0–1 · supports tool defaults
redaction_colorRedactionColor · black, white, charcoal, red, yellow · supports tool defaults
redaction_custom_coloroptional_color · null supported · supports tool defaults
redaction_label_textstring · maximum 128 native characters · supports tool defaults
redaction_paddingnumber · 0–32 · supports tool defaults
redaction_pattern_sizenumber · 0–1 · supports tool defaults
redaction_shows_labelbool · supports tool defaults
redaction_text_sizenumber · 0.15–1.5 · supports tool defaults
redaction_treatmentRedactionTreatment · solid, labeled, pattern · supports tool defaults
shape_sizenumber · 1–1080 · supports tool defaults

Rectangles

12 top-level settings

Frame panels and controls with a border or fill, rounded corners, native border styles, glow, opacity and shadows.

Rectangles: 12 top-level settings, plus expanded nested subfields; parameter names, enums and ranges
ParameterType, values & limits
colorcolor · supports tool defaults
filledbool · supports tool defaults
rectangle_roundingnumber · 0–1 · supports tool defaults
shadowshadow · null supported · supports tool defaults
shadow.blurnumber · 0–48
shadow.distancenumber · 0–24
shadow.elevationenum · none, subtle, floating, sticker, custom
shadow.extentnumber · 1–3
shadow.intensitynumber · 0–15
shadow.opacitynumber · 0–0.4
shadow.tintcolor
shape_border_styleShapeBorderStyle · solid, dashed, dotted, hand_drawn · supports tool defaults
shape_fill_colorcolor · supports tool defaults
shape_glownumber · 0–1 · supports tool defaults
shape_kindShapeKind · rectangle, circle · per-annotation setting
shape_opacitynumber · 0–1 · supports tool defaults
shape_shadownumber · 0–1 · supports tool defaults
shape_sizenumber · 1–1080 · supports tool defaults
widthnumber · 0.5–96 · supports tool defaults

Circles / Ellipses

11 top-level settings

Circle a target with configurable outline, fill, border style, glow, opacity and shadows.

Circles / Ellipses: 11 top-level settings, plus expanded nested subfields; parameter names, enums and ranges
ParameterType, values & limits
colorcolor · supports tool defaults
filledbool · supports tool defaults
shadowshadow · null supported · supports tool defaults
shadow.blurnumber · 0–48
shadow.distancenumber · 0–24
shadow.elevationenum · none, subtle, floating, sticker, custom
shadow.extentnumber · 1–3
shadow.intensitynumber · 0–15
shadow.opacitynumber · 0–0.4
shadow.tintcolor
shape_border_styleShapeBorderStyle · solid, dashed, dotted, hand_drawn · supports tool defaults
shape_fill_colorcolor · supports tool defaults
shape_glownumber · 0–1 · supports tool defaults
shape_kindShapeKind · rectangle, circle · per-annotation setting
shape_opacitynumber · 0–1 · supports tool defaults
shape_shadownumber · 0–1 · supports tool defaults
shape_sizenumber · 1–1080 · supports tool defaults
widthnumber · 0.5–96 · supports tool defaults

Spotlights

9 top-level settings

Focus attention with a native spotlight: intensity, fill and glow intensity, zoom, shape size and fill color. spotlight_dim_background controls dimming of the presentation background.

Spotlights: 9 top-level settings, plus expanded nested subfields; parameter names, enums and ranges
ParameterType, values & limits
colorcolor · supports tool defaults
filledbool · supports tool defaults
shape_fill_colorcolor · supports tool defaults
shape_sizenumber · 1–1080 · supports tool defaults
spotlight_fill_intensitynumber · 0–1 · supports tool defaults
spotlight_glow_intensitynumber · 0–1 · supports tool defaults
spotlight_intensitynumber · 0.15–1 · supports tool defaults
spotlight_zoomnumber · 1–3 · supports tool defaults
widthnumber · 0.5–96 · supports tool defaults

Freehand

10 top-level settings

Draw freeform strokes with native ink styles and modes, smoothing, weight, opacity, inner/glow colors and shadows.

Freehand: 10 top-level settings, plus expanded nested subfields; parameter names, enums and ranges
ParameterType, values & limits
colorcolor · supports tool defaults
freehand_glownumber · 0–1 · supports tool defaults
freehand_glow_coloroptional_color · null supported · supports tool defaults
freehand_inner_coloroptional_color · null supported · supports tool defaults
freehand_modeFreehandMode · freehand, straight_line · supports tool defaults
freehand_opacitynumber · 0–1 · supports tool defaults
freehand_smoothingnumber · 0–1 · supports tool defaults
freehand_styleFreehandInkStyle · pen, marker, pencil, dashed, calligraphy, atomic_glow · supports tool defaults
shadowshadow · null supported · supports tool defaults
shadow.blurnumber · 0–48
shadow.distancenumber · 0–24
shadow.elevationenum · none, subtle, floating, sticker, custom
shadow.extentnumber · 1–3
shadow.intensitynumber · 0–15
shadow.opacitynumber · 0–0.4
shadow.tintcolor
widthnumber · 1–64 · supports tool defaults

Colors accept a catalog name, #RRGGBB, #RRGGBBAA or [r,g,b,a] components from 0 to 1. Catalog names: red, orange, yellow, green, magenta, blue, indigo, teal, charcoal, white. Font names must refer to an installed Mac font. Shadows and styles remain subject to the app’s tier rules.

Presentation, framing and canvas options

Seven control groups share 18 top-level composition fields. Nested subfields appear as additional rows. Use a composition operation in edit_document. Native rendering limits and Free/Pro checks still apply.

Crop & alignment

Trim and position the source with normalized crop and offset controls; widescreen levels and alignment are also exposed.

Crop & alignment: 4 top-level fields, plus expanded nested subfields; parameter names, enums and ranges
ParameterType, values & limits
cropnumber · 0–1 ratio
crop_offsetpoint · -1–1 normalized crop translation [x,y]
widescreen_levelnumber · 0–6 integer_level
widescreen_alignmentenum · left, center, right

Backgrounds & presentation

Choose a floating image or framed presentation and a catalog backdrop. Selecting a designed background can apply its matching border and restore padding; explicit fields in the batch take precedence.

Backgrounds & presentation: 2 top-level fields, plus expanded nested subfields; parameter names, enums and ranges
ParameterType, values & limits
presentation_modeenum · floating, framed
backgroundenum · prism, radiance, coral, midnight, mint, sky, snapperon, orbit, dune, holographic, none, nocturne, spectrum, gold, sunset, gilded, jade, opal, electric, alabaster, boreal, quicksilver, coastal

Padding

Set the canvas inset in native points.

Padding: 1 top-level fields, plus expanded nested subfields; parameter names, enums and ranges
ParameterType, values & limits
paddingnumber · 0–400 points

Borders

Enable the border, choose a native style and set an explicit width or restore its automatic width with null. Borders render in framed mode.

Borders: 3 top-level fields, plus expanded nested subfields; parameter names, enums and ranges
ParameterType, values & limits
border_enabledboolean
border_styleenum · gradient, vivid_glow, aurora, glass, soft_light, neon, premium_dark, prism, chrome, champagne, porcelain, double_line, gilded_flow, chromatic_edge, opal_glass, electric_wave, ice_blue, moonstone, champagne_luster, velvet_obsidian, solar_flare, crisp_jade, stratosphere, diffraction, liquid_platinum, smoked_quartz, white_frame
border_widthnullable_number · 0–72 points · null supported

Rounded corners

Set outer and inner corner radii; null restores the automatic inner radius.

Rounded corners: 2 top-level fields, plus expanded nested subfields; parameter names, enums and ranges
ParameterType, values & limits
outer_corner_radiusnumber · 0–200 points
inner_corner_radiusnullable_number · 0–200 points · null supported

Shadows & dimming

Control floating shadow and lighting. Decide whether a spotlight also dims the surrounding presentation background.

Shadows & dimming: 3 top-level fields, plus expanded nested subfields; parameter names, enums and ranges
ParameterType, values & limits
floating_shadownullable_number · 0–200 native_slider · null supported
shadow_lightingnullable_object · null supported
shadow_lighting.anglevalue · 0–180 degrees
shadow_lighting.elevationvalue · 0.25–2
spotlight_dim_backgroundboolean

Watermarks

Free output carries the Snapperon watermark. Pro can use custom text, single or tiled branding, or no watermark, with intensity, placement and typography controls.

Watermarks: 3 top-level fields, plus expanded nested subfields; parameter names, enums and ranges
ParameterType, values & limits
watermarkstring · maximum 1000 native characters
watermark_intensitynumber · 0–1 ratio
watermark_stylenullable_object · null supported
watermark_style.anglenumber · -90–90
watermark_style.appearanceenum · standard, subtle
watermark_style.color_modeenum · adaptive, light, dark
watermark_style.insetsnumber · 0–200
watermark_style.placementenum · top_left, top_center, top_right, center_left, center, center_right, bottom_left, bottom_center, bottom_right
watermark_style.scalenumber · 0.25–3
watermark_style.sizenumber · 8–72
watermark_style.spacingnumber · 24–400
watermark_style.typeenum · single, tiled
watermark_style.weightnumber · 0–2

Copy-paste prompts for Claude Desktop and Codex

Replace sample paths and targets with your own. Approve native dialogs, review the preview, and choose which source images your assistant may inspect. A prompt is a request; verify the result before sharing.

Step-by-step product tutorial

Open ~/Desktop/preferences.png in Snapperon, add numbered counters 1, 2, and 3 next to the notification switches, point a curved arrow at Save Changes, preview the render to confirm no labels cover UI text, and export a PNG.

Visual inspection + callout

Inspect this screenshot in Snapperon, read the six-digit code on screen, frame the code with a rectangle and a matching text banner, commit the batch, and show me the result.

Chart & peak analysis

Open ~/Downloads/q4-revenue.png, number these three peaks, highlight the chart heading, add a clean presentation backdrop with subtle shadow, and copy to clipboard.

Client redaction

Open page 1 of ~/Documents/invoice-sample.pdf in Snapperon, permanently redact the card number, expiry date, and security code using solid redaction, inspect the preview to verify every digit is covered, and save as PNG.

Privacy note: Asking a connected assistant to locate sensitive fields requires it to inspect the unredacted source page, which your AI client may send to its provider. For confidential data your AI provider should not see, apply Solid redaction manually in Snapperon and verify the flattened export.

Selective layer refinement

In the open Snapperon document, remove the middle marker, move the top callout banner slightly higher so it clears the toolbar, and preview the updated image.

UI QA spotlight

Capture my simulator window in Snapperon, spotlight the misaligned checkout button, add a short red arrow and note explaining the padding issue, and invoke Copy + Close.

What the 18 MCP commands cover

All reviewed local tools and options are mapped. Native permission, entitlement and version checks still apply.

Import & live window capture
Open local images and PDF pages through the native file dialog, access open documents, import supplied image/PDF bytes where the client supports it, or capture authorized windows and displays. Source lists refresh so newly opened windows appear immediately.
All 9 annotation tools
Arrows, text, rectangles, circles, counters, spotlight, redaction, highlighting and freehand. Each is a real native annotation layer.
Complete styling & option control
Discover and adjust fonts, colors, sizes, opacity, arrowheads, curves, shadows, effects and redaction treatments. All reviewed local options are mapped; the verification corpus covers 24,146 option cases. Free and Pro style rules still apply.
Image presentation
Crop, backgrounds/backdrops, padding, borders, rounded corners, shadows and watermark controls.
Selective editing
Select, move, resize, duplicate, reorder, restyle or remove individual annotations without disturbing the rest of the work.
Preview before commit
Stage edits, inspect the rendered output, revise the same staged batch and commit it as one native Undo action.
Documents, PDF pages & windows
Switch open documents and PDF pages, adjust zoom and window placement, and preserve open work.
Export & native handoff
Export PNG/JPEG, copy to an authorized clipboard, save to an approved folder, or invoke native Save As, Share, Preview and Copy + Close. Native dialogs may require your choices; opening one does not complete a save or share.
Preferences & diagnostics
Discover settings, update authorized preferences, open native help/settings and save connection diagnostics. Access grants, macOS approvals and account/payment decisions remain native human actions.

Local MCP control works without an account in Free and Pro. Standard plan rules still apply: Free includes up to 10 screenshots/day, core styles, Solid redaction and a Snapperon watermark on saved/shared images. Pro adds unlimited captures, the full style and redaction library, and a custom watermark or none.

What the 18 local MCP commands control from start to finish

Discover & acquire
get_capabilities, get_app_state, list_sources, acquire_image
Inspect & semantic callouts
inspect_document, mark_regions
Create, style & selective refinement
edit_document
Preview, commit & recover
commit_edit, cancel_operation, get_operation
Documents, PDF pages & windows
present_document, set_document_page, release_document
Export & native handoff
export_document, perform_native_action
Undo, Redo & preferences
get_document_history, navigate_history, update_preferences

Clients discover the current schemas from the installed app. Use capability discovery for valid settings rather than guessing option values.

All 18 Snapperon MCP command names and purposes
CommandPurpose
get_capabilitiesDiscover tools, styles, fonts, options, limits and access.
get_app_stateRead app state, entitlement, permissions and preference version.
list_sourcesRefresh authorized open documents, windows and displays.
acquire_imageAcquire a source or supported supplied PNG/JPEG/PDF bytes as an editable document.
inspect_documentRead document or staged state and inspect its source/composition image.
mark_regionsPrepare grounded semantic callouts around identified regions.
edit_documentPrepare all nine annotation tools, selective edits, styling and framing; revise a staged batch.
commit_editApply the staged batch as one native Undo action.
cancel_operationDiscard a stage or cancel an uncommitted operation.
get_operationRecover an operation result using its original idempotency key.
present_documentShow a native editor; control selection, zoom, viewport and window placement.
get_document_historyRead exact available Undo/Redo action IDs.
navigate_historyUndo or redo the exact available action, refusing intervening changes.
set_document_pageSwitch PDF pages while preserving each page’s edits.
export_documentRender PNG/JPEG, save to an approved folder, copy or run native Copy + Close.
update_preferencesChange authorized preferences using the current preference version.
perform_native_actionOpen native dialogs, settings, help and diagnostics; perform authorized app/window actions.
release_documentRelease unused assistant handles while preserving existing native editors and retry receipts.

Engineered for real agent quirks—and verified across 275 core tests

On-demand discovery

The editing input schema is 57% smaller than its earlier expanded form, using lossless local references. Clear descriptions help Claude Desktop find the editing command when needed. This measures that schema, not total conversation tokens.

Auto-expanding text labels

New text labels keep the requested wrapping width and grow vertically to fit the content. A compact AI-specified box does not silently hide its wrapped label; inspect the preview for placement.

Live source refresh

Window and display discovery refreshes for newly launched apps and dialogs without restarting the assistant session.

App moves & multiple copies

Routing follows the associated signed app installation after a move. Helpers from another copy are rejected. Intentional quit/resume and saved editable work retain their native behavior.

Recovery without duplicate edits

Operation receipts recover results after interrupted responses. Identical retries return the original result rather than repeating a committed edit. The reviewed verification corpus includes 275 core tests and 38 native suites, alongside Debug and Release builds.

Choose the approach that fits the work

Manual tools are a good fit for a quick one-off edit. Scripts can suit custom pipelines. Image generation suits new artwork. Snapperon connects AI control with an editable native screenshot workflow.

Snapperon local MCP compared with manual screenshot apps, scripts and image generation
Your outcomeSnapperon local MCPManual Mac screenshot appsCustom scriptsImage-gen models
Screenshot pixelsOriginal source retained; lossless PNG availableOriginal source generally retainedDepends on implementation and encodingMay change UI text and image details
Annotation designNative presets and every reviewed style optionVaries by appYou design and maintain itGenerated appearance; exact details can vary
MCP automation18 local commands, tested in Claude Desktop & Codex DesktopDepends on the app; no universal MCP interfaceRequires your own tools/integrationDepends on the model/client
Context efficiency57% smaller editing schema; on-demand discovery testedNo standard command schemaDepends on your integrationDepends on image/model context
Visual preview loopRendered staged preview before commitManual inspection in the editorMust be implementedGenerate and inspect another image
Human edits afterwardIndividual layers editable in SnapperonUsually editable in the current editorRaster output is typically flattenedOutput image is typically flattened
PrivacyLocal app; chosen AI client may share inspected imagesDepends on the app and sharing settingsDepends on execution and services usedDepends on the model provider

Compare Snapperon with CleanShot X, Xnapper and Deskeen →

Honest scope, permissions & current limits

  • Mac only: macOS 14 (Sonoma) or later, Apple silicon (M1 or newer). No Intel Macs, Windows or Linux.
  • Local desktop MCP: controls the installed native app. No hosted cloud API or headless remote server.
  • Still images and PDF pages: PNG/JPEG output. No PDF re-export, video recording, scrolling capture or general OCR/text-copy workflow.
  • Native consent: local assistants share enabled app access; grants are not separate per-client identities. Screen Recording and approved export folders still require your approval. Clipboard actions require authorized access.
  • Image sharing: Snapperon runs the MCP interface locally on your Mac and does not upload screenshots to Snapperon servers. If your assistant inspects a source image or rendered preview, your chosen AI client may send it to its provider under that client’s settings and policies. Source inspection can include original pixels beneath editable redactions. A flattened redacted export does not embed the original.
  • Claude Desktop inputs: In Claude Desktop testing, raw chat-attachment byte transfer failed on the client side. Use Snapperon’s native Open File dialog to select a local image or PDF, or capture an authorized Mac window or display. Do not rely on raw chat-attachment byte transfer.
  • Review the result: models choose targets and placement. Inspect the rendered preview before committing or sharing.

Local MCP: questions answered

How does Snapperon’s AI / MCP support work?

Snapperon includes a built-in local Model Context Protocol (MCP) server with 18 commands, tested in Claude Desktop and Codex Desktop. Assistants open local images or PDFs, capture authorized windows, add native callouts or redactions, preview the result, and export or copy. Other clients have not been verified here.

In Claude Desktop, use native Open File for local images/PDFs or capture Mac windows and displays. Raw chat-attachment byte transfer failed in client testing.

Can I edit or undo annotations after Claude or Codex places them?

Yes. MCP controls the real native Snapperon editor. Every arrow, label, counter and shape remains an editable layer. Move, resize or restyle it by hand. Press Undo once to revert an entire committed AI batch. PNG/JPEG output is flattened; the layers remain in the editor.

Does using MCP upload my screenshots to Snapperon servers?

Snapperon runs the MCP interface locally on your Mac and does not upload screenshots to Snapperon servers. If your assistant inspects a source image or rendered preview, your chosen AI client may send it to its provider under that client’s settings and policies.

Enable access in Assistant Connections. Local assistants share the access you enable; macOS Screen Recording, authorized windows/displays, approved export folders and clipboard permissions still apply. This is local Mac app control, not a hosted cloud API.

Why use Snapperon MCP instead of AI image generators or Python scripts?

Image generators can alter screenshot details and UI text. Scripts vary in quality and commonly produce flattened output. Snapperon keeps the original source, applies native styles and auto-fitting labels, and lets the assistant preview before committing. You can adjust layers by hand and finish with Copy + Close.

Is local MCP included in Free and Pro?

Local MCP control works without an account in Free and Pro. Standard plan rules still apply: Free includes up to 10 screenshots/day, core styles, Solid redaction and a Snapperon watermark on saved/shared images. Pro adds unlimited captures, the full style and redaction library, and a custom watermark or none.

Free is $0. Pro is $2/month, $19.99/year (about $1.67/month, saving about 17%) or $38.99 one-time. Installation starts a 3-day Pro trial with no account, credit card or automatic charge. Direct-download and Mac App Store licenses are separate.

How do I connect Claude Desktop or Codex Desktop?

Open Snapperon Settings → Assistant Connections and select Enable AI assistants. Use Copy Codex Setup or Copy Claude Desktop Setup for the exact installed app. Merge that entry into your client’s existing configuration, preserving other servers, then reconnect local MCP servers.

Codex’s copied entry belongs in config.toml; Claude Desktop’s belongs in mcpServers in claude_desktop_config.json. Choose Export Folder for file saves. Troubleshooting → Save Connection Diagnostics creates a report without image content or private arguments.

Can it run on Intel Macs, Windows, Linux or a hosted server?

No. Snapperon requires macOS 14 (Sonoma) or later and Apple silicon (M1 or newer). MCP controls the installed Mac app locally. It is not a hosted API or a headless Linux service.

Can I annotate PDFs, record video, capture scrolling pages or copy text with OCR?

You can open a PDF and annotate its pages, then copy or export PNG/JPEG images. PDF re-export, video recording, scrolling capture and a general OCR/text-copy workflow are not offered. Your AI client may inspect visible text in an image; that is separate from Snapperon offering OCR.

Instant by hand. Controllable by AI.

Try the same native editor with your mouse, your keyboard or your chosen desktop assistant.

Send the download link to your Mac.

Free · No account needed · macOS 14+ · Apple Silicon

Updated November 14, 2026. Claude Desktop and Codex Desktop are products of their respective owners. Tested workflows are described above; other MCP clients have not been verified here. Full product reference · MCP Markdown reference · Local MCP discovery metadata.