Best Screenshot MCP Servers for Claude Code (2026)

The best screenshot MCP servers for Claude Code split cleanly by surface: Playwright MCP for anything in a browser, Peekaboo for native macOS windows, XcodeBuildMCP or ios-simulator-mcp for iOS simulators, Screenpipe for a searchable history of everything you looked at, and snap-happy when you want the smallest possible "just take a picture" server. If you want the agent to see the specific control you are pointing at rather than whatever it chose to photograph, that is a different job, and PinVari is the tool built for it.
Most roundups stop at "here are nine servers that take screenshots." The useful cut is directional: almost all of these are agent-to-screen tools, where the model decides what to look at. Exactly one is you-to-agent. Those two directions solve different problems, and plenty of people end up wanting one of each.
Everything below was checked against each project's own README or documentation in August 2026. Where a capability is not documented, the table says so rather than guessing.
Which screenshot MCP servers are worth comparing?
Here is the whole field in one table. Read the columns as questions about your workflow, not as a scoreboard.
| Tool | Screenshots | Agent takes its own shot | You point at an element | Voice input | Named element + confidence | Full window text | Multi-display | Beyond the browser | Price |
|---|---|---|---|---|---|---|---|---|---|
| Playwright MCP | Yes (page + element) | Yes | No | No | Page a11y snapshot, no confidence | Page text | N/A (browser tabs) | No | Free, open source |
| Peekaboo | Yes (screen, window, app) | Yes | No | No | AX UI map with element IDs | Via UI map | Not documented | Yes, any Mac app | Free, MIT |
| macos-automator-mcp | No | No | No | No | Whatever your script reads | Via AppleScript/JXA | Script-dependent | Yes, any Mac app | Free, MIT |
| ios-simulator-mcp | Yes (+ video) | Yes | No | No | ui_describe_point on the simulator | Simulator a11y tree | N/A | Simulator only | Free, MIT |
| XcodeBuildMCP | Yes (beta UI automation) | Yes | No | No | describe_ui with frames | Simulator view hierarchy | N/A | Simulator + device builds | Free, MIT |
| Screenpipe | Continuous capture | Queries history | No | Audio transcription | AX tree, OCR fallback | Yes, historical | Yes | Yes, whole desktop | From $25/mo |
| snap-happy | Yes (screen or window) | Yes | No | No | No | No | Full screen | Yes, any window | Free, open source |
| PinVari | Yes (region + per-mark) | Yes, on request | Yes | Yes | Role, label, frame, confidence, provenance | Up to 40,000 chars | Yes | Yes, any Mac app | $39 one-time |
The column that actually separates these tools is not "screenshots." Every row does that. It is who decides what gets captured, and whether the agent receives a named element or a rectangle of pixels it has to interpret.
If you are new to how any of this plugs in, what an MCP server is covers the protocol, and connecting MCP servers to Claude Code covers the claude mcp add mechanics that every tool below assumes.
Is Playwright MCP the best screenshot MCP server for browsers?
microsoft/playwright-mcp is the one to install first if your bugs live on a web page. It runs the real Playwright stack, so the agent gets a browser it can drive, not just a camera pointed at one.
Two capture tools matter. browser_take_screenshot returns PNG, JPEG or WebP, full page or scoped to a single element. browser_snapshot returns an accessibility snapshot of the page instead of pixels, which is usually the better thing to hand a model: it is text, it is structured, and it costs a fraction of the image tokens.
Around those sit navigation, clicking, typing, form fill, file upload, cookie and localStorage access, network request inspection and mocking, console message retrieval, and tab management. Install is npx @playwright/mcp@latest with Node 18+, and it can also run standalone over HTTP with --port, which is how you use a headed browser on a machine without a display.
The limit is the obvious one. Playwright MCP sees inside a browser it controls, and nothing else. Your Electron app, your IDE, your native menu bar, the Figma desktop client, a Simulator window - all invisible. It also drives a browser instance the agent launched, so it is not looking at the tab you personally have open with your session cookies and your half-filled form.
What is the best screenshot MCP server for native macOS apps?
steipete/peekaboo describes itself as Mac automation that sees the screen and does the clicks, and that is a fair summary. It ships as a CLI plus a menu-bar app, and exposes the same observation and action toolset over MCP to Claude Code, Codex, Cursor and other clients.
What sets it apart from a plain screenshot server is the UI map. Peekaboo inspects running applications through the macOS accessibility APIs and produces a structured map of elements with IDs, which the agent then acts on - click element 7, type into element 3 - instead of guessing pixel coordinates from an image. That is the same insight that makes browser_snapshot better than a screenshot, applied to native apps.
Install is brew install steipete/tap/peekaboo, it is MIT licensed and free, and it requires macOS 15 or newer. The agent layer that takes natural-language instructions needs a model provider configured, though the plain observation and automation commands work without one. Multi-display behaviour is not documented in the README, and there is no OCR step - it reads semantic UI elements, so a <canvas> or a custom-drawn surface with no accessibility data gives it little to work with.
Peekaboo and Playwright are not rivals. Install both. Let Playwright own the web app and Peekaboo own everything else on the Mac, and your agent stops trying to solve native-window problems with a browser tool.
Does macos-automator-mcp take screenshots?
steipete/macos-automator-mcp shows up in every "macOS MCP" search, so it is worth stating plainly: it does not take screenshots. It is a Model Context Protocol server that lets clients discover and run AppleScript or JavaScript for Automation.
It exposes two tools. get_scripting_tips searches a bundled knowledge base of hundreds of AppleScript and JXA recipes, and execute_script runs an inline script, a script file, or one of those knowledge-base entries. It runs via npx -y --package @steipete/macos-automator-mcp macos-automator-mcp, needs Node 24+, and is MIT licensed.
I am including it because it is genuinely useful next to a screenshot server, not as one. If you want the agent to read a value out of a native app, toggle a system setting, or nudge an app into the state you want before something else photographs it, this is the right tool. Ask it to see your screen and you will get a script that half-works.
Which MCP server screenshots the iOS Simulator?
joshuayoes/ios-simulator-mcp gives an agent 16 tools against a booted simulator. Capture is screenshot (PNG, TIFF, BMP, GIF, JPEG) and record_video (H.264 or HEVC), with stop_recording to close it out.
The inspection tools are the reason to install it. ui_describe_all returns accessibility information for the entire screen, ui_describe_point returns the accessibility element at given coordinates, and ui_find_element searches the tree by text or type. Pair those with ui_tap, ui_type and ui_swipe and the agent can drive a flow and verify it. It needs Node 20+, macOS, Xcode, simulators and Facebook's IDB tool, and it is MIT licensed.
cameroncooke/XcodeBuildMCP comes at the same surface from the build side. It is an MCP server and CLI for working on iOS and macOS projects - build, test, manage schemes, run on simulator or device (device work needs code signing set up in Xcode). Its UI automation layer, still marked beta, adds screenshot for visual verification and describe_ui, which returns the view hierarchy with precise x/y/width/height frames plus accessibility IDs and labels. The docs are blunt that you should tap by label or ID from describe_ui rather than reading coordinates off a screenshot. Install with brew tap getsentry/xcodebuildmcp && brew install xcodebuildmcp or npm install -g xcodebuildmcp@latest; macOS 14.5+, Xcode 16.x+, MIT.
Pick by what you are doing. If the agent needs to compile, test and deploy, XcodeBuildMCP is the wider tool. If it only needs to poke a running simulator, ios-simulator-mcp is the leaner one. Neither can see your Mac's own windows.
Is Screenpipe a screenshot MCP server or something else?
mediar-ai/screenpipe is the outlier and the most interesting one. It continuously captures your screen and audio and builds a searchable, AI-queryable memory of your computer activity, then runs as an MCP server so assistants can query that history from Claude Desktop, Cursor, VS Code and compatible clients.
The engineering is smarter than "record everything." Capture is event-driven: it listens for app switches, clicks and scrolls, then grabs a screenshot paired with the OS accessibility tree, falling back to OCR (Apple Vision on macOS, native OCR on Windows, Tesseract on Linux) when structured text is unavailable. Audio comes from system and microphone with Whisper locally or Deepgram in the cloud, including speaker diarization. It runs locally by default and covers Apple Silicon, Intel, Windows 10/11, and Linux from source.
The trade-offs are real. It is source-available under a commercial licence - personal non-commercial use is permitted, commercial use requires a licence - and pricing starts at $25/month standard, $50/seat/month Pro, $150/seat/month Enterprise. And it answers a different question. Screenpipe is excellent at "what was that error I saw an hour ago"; it is not the tool for "fix this button, right now."
What is the simplest screenshot MCP server to install?
@mariozechner/snap-happy, part of the badlogic/lemmy monorepo, is the smallest thing on this list and sometimes exactly right. Three tools: TakeScreenshot() captures a new one, GetLastScreenshot() returns the most recent capture as base64 PNG, and ListWindows() lists visible windows with IDs, titles and app names.
Window-specific capture and ListWindows are macOS-only; Linux and Windows get full-screen capture. Install with npm install -g @mariozechner/snap-happy, or wire it straight into Claude Code with claude mcp add snap-happy npx @mariozechner/snap-happy.
There is no accessibility data, no text extraction, no element resolution. It hands the model a picture. For "look at what just rendered and tell me if it is broken," that is enough, and the install takes ten seconds. For anything where the agent must act on a specific control, you are back to pixel guessing - the failure mode I unpack in can Claude Code see my screen.
Which MCP server lets you point at the element yourself?
Every tool above answers the question "agent, go look at something." PinVari answers the opposite one: you point at a thing and tell the agent about it.
You hold ⌥⌘A, circle or point at any on-screen element, and speak. It screenshots the region, transcribes on-device, and resolves the exact named accessibility element you circled - role, label, frame - with a confidence score and circled vs dwelled provenance so the agent knows whether you deliberately drew around the element or the pointer merely passed over it. Voice is aligned per word across multiple marks, so "move this above that" binds each deictic word to the control the pointer was on when you said it.
Alongside the element it reads the focused window's full text up to 40,000 characters including scrollback, falls back to whole-screen on-device OCR where the accessibility tree is blind, and handles multiple displays. The agent can also request a capture mid-task - the notch island lights up and waits for you. MCP tools are pinvari_next_instruction, pinvari_get_capture, pinvari_list_captures, pinvari_request_capture, pinvari_mark_done and pinvari_health.
claude mcp add --scope user pinvari -- "$HOME/.pinvari/mcp/pinvari-mcp"
It runs on Apple Silicon and Intel, transcribes on-device, and is a one-time $39 rather than a subscription. It is also the narrowest tool here by design: it does not drive your browser, build your Xcode project, or remember what you looked at yesterday.
Be suspicious of any comparison where the author's own product wins every column. This one does not, and should not. Delete the PinVari row and the table still tells you which server to install for browsers, simulators, native windows and screen history.
Which screenshot MCP server should you actually install?
Match the tool to the direction of the request, not to the feature list.
- Your bugs are on a web page - Playwright MCP. Nothing else gives the agent a browser it can also drive.
- Your bugs are in native Mac apps, Electron windows or your IDE - Peekaboo, for the AX UI map rather than raw pixels.
- You are building an iOS app - XcodeBuildMCP if you want build and test too, ios-simulator-mcp if you only need to poke a running sim.
- You keep asking "what was that thing I saw earlier" - Screenpipe, budget permitting.
- You want the absolute minimum - snap-happy.
- You keep having to describe which control you mean in words - a point-and-speak tool, because that is the exact failure a screenshot cannot fix.
The honest recommendation for most people building UI is two servers, not one. Something agent-initiated for the surface you work on, plus a human-initiated path for the moments when the agent is confidently editing the wrong component and you need to say no, this one. They cost you nothing in conflict; MCP servers coexist happily, as the MCP server list shows.
If you install exactly one thing today and you work in a browser, install Playwright MCP. If you install exactly one thing and you work in native macOS apps, install Peekaboo. Everything else on this list is a second server, not a replacement for the first.
FAQ
Can Claude Code take screenshots?
Not by itself. The CLI never calls the screen-capture APIs, so it has no view of your display and macOS never asks it for Screen Recording permission. It gains the ability the moment you add a screenshot MCP server such as Playwright MCP, Peekaboo or snap-happy.
What MCP server lets Claude Code see my screen?
For a browser, Playwright MCP via browser_take_screenshot and browser_snapshot. For the whole Mac desktop, Peekaboo or snap-happy. For a searchable record of what was on screen earlier, Screenpipe. For the specific element you are pointing at, a point-and-speak capture tool.
Do screenshot MCP servers work with Codex and Cursor?
Yes. MCP is client-agnostic, so any server here works with Codex, Cursor, Zed, VS Code and Claude Desktop as well as Claude Code. Only the config syntax differs - the tools the server exposes are identical across clients.
Is a screenshot enough for an AI agent to fix a UI bug?
Often not. An image tells the model what the screen looks like, not which element you meant, so it picks the plausible-looking one and sometimes picks wrong. Servers that also return accessibility data - browser_snapshot, Peekaboo's UI map, describe_ui, a resolved named element - remove that guess.
Which screenshot MCP server is free?
Playwright MCP, Peekaboo, macos-automator-mcp, ios-simulator-mcp, XcodeBuildMCP and snap-happy are all free and open source (mostly MIT). Screenpipe is source-available with paid commercial plans from $25/month, and PinVari is a one-time $39 licence.
Do these servers upload my screen to a cloud service?
It depends on the tool and the model behind your agent. The open-source servers capture locally, but any screenshot they return still travels to whichever model powers your session. Tools that resolve text and elements on-device send a small structured payload instead of a full image, which is both cheaper and less exposed.
Hand your agent the exact element
PinVari resolves what you point at into a named, executable instruction — on-device, no keys, your own agent. One click inside PinVari connects Claude Code, Cursor, VS Code or Codex — or paste one CLI line from pinvari.com/connect.
PinVari → Connect → your agent (one click)Get PinVari — $39 →


