
Peekaboo MCP Server: Setup for Claude, Cursor and Other Apps on Mac
Lets Claude, Cursor and other assistants see your Mac screen, read app windows, and click, type and manage windows for you.
Peekaboo is a macOS tool and menu-bar app that also runs as an MCP server on your own Mac. It takes screenshots, reads the buttons and text of any app, and can click, type, scroll and manage windows. It only works on macOS 15 or later, and you must give it Screen Recording and Accessibility permission in System Settings.
By default it runs in a background-only mode that refuses to take over your mouse or bring windows to the front. A human can lift that with a start flag. Because it can see everything on screen and act in any app, point it at one app at a time and keep sensitive windows closed.
Good for
- Mac users who want an assistant to operate apps that have no API
- Developers who test native macOS apps and need screenshots and UI maps
- Anyone who wants an assistant to read what is on screen and answer from it
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install Peekaboo MCP
Claude Code
- 1
Copy this prompt.
Add the Peekaboo MCP server to Claude Code. Run this command: claude mcp add peekaboo -- npx -y @steipete/peekaboo mcp Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires macOS 15 or later, Node.js 22 or later.
Read-only mode: There is no read-only mode. To limit it to looking only, set PEEKABOO_ALLOW_TOOLS to image,see,inspect_ui,permissions in the server's env settings.
This is the npx route in docs/MCP.md: the command ends with the mcp subcommand, which starts the server. It only runs on a Mac with macOS 15 or later and Node.js 22 or later. After the first start, open System Settings > Privacy & Security and give your terminal or app Screen Recording and Accessibility access, then restart it. Run the permissions tool to check. By default the server is background-only and refuses anything that would take over your mouse or bring windows to the front. Starting it with --allow-foreground lifts that limit. No account is needed for most tools. The agent and analyze tools need an AI provider key.
Built from the package data we hold. Not yet tested by us.
Tools
Take a screenshot
Takes a screenshot of a display, the front window, one app's window or the menu bar. It saves a file or returns the picture to the assistant. It does not map the screen's buttons.
Try: “Take a screenshot of my Safari window.”
Files ·
imageRecord frames from screen or video
Captures live frames from a screen, window or region, or reads a video file, and returns the kept PNG frames, a contact sheet and a metadata file.
Try: “Capture 10 seconds of the Xcode window and show me what changed.”
Files ·
captureAsk an AI model about an image file
Sends an image file from your disk (up to 10 MiB) to the AI provider you configured and returns its answer to your question about it.
Try: “What text is visible in /tmp/chart.png?”
Files ·
analyzeControl an existing Chrome page
Controls and reads Chrome pages over its debugging connection. In the default background-only mode most page actions are refused, and they need the server started with --allow-foreground.
Try: “Connect to my Chrome and list the open tabs.”
Write ·
browserCheck macOS permissions
Reports whether Screen Recording and Accessibility permissions are granted, and whether synthetic input is limited.
Try: “Do I have the permissions Peekaboo needs?”
Read ·
permissionsWait for a set time
Pauses for a number of milliseconds, for example to let an animation finish.
Try: “Wait 2 seconds, then look at the screen again.”
Read ·
sleepScreenshot plus a map of the controls
Captures a window or screen and builds a list of its buttons, fields and text with IDs that the click and type tools can use. It can add OCR text found by Apple Vision on your Mac.
Try: “Look at the Finder window and list its buttons.”
Files ·
seeRead the UI text without a screenshot
Reads the visible text, labels, buttons and field states of an app from its accessibility tree. No screenshot is taken.
Try: “Read the text fields in the Settings window.”
Read ·
inspect_uiWait until a window shows what you expect
Polls an app window every 100 ms, up to 10 seconds, until conditions you set are met, such as a field holding a given value. It never clicks or types.
Try: “Wait until the Name field in TextEdit says Ready.”
Read ·
verify_stateClick a button, link or point
Clicks an element from a recent see result, a text query, or coordinates. By default it clicks in the background without moving your mouse.
Try: “Click the Save button in TextEdit.”
Write ·
clickType text into an app
Types text into a field of a window you observed first. It can clear the field before typing. By default it sends the keystrokes in the background.
Try: “Type 'hello' into the Name field.”
Write ·
typeSet a field's value directly
Sets the value of a form field through accessibility, without sending keystrokes. The field must allow it.
Try: “Set the Volume slider to 50.”
Write ·
set_valueSelect text or place the cursor
Selects a piece of literal text, or puts the cursor before or after it, in a field. It does not type or use the clipboard.
Try: “Select the word 'draft' in the note body.”
Write ·
select_textRun a named accessibility action
Runs an accessibility action such as AXPress or AXIncrement on an element. In background-only mode actions that would bring windows forward are refused.
Try: “Press the Increment control on the stepper.”
Write ·
actionScroll a window or element
Scrolls an element or an exact window point in the background, without taking your pointer.
Try: “Scroll the page down in the Safari window.”
Write ·
scrollPress keys or shortcuts
Presses a key or a chord such as Cmd+C, to a window you observed first.
Try: “Press Return in the Safari address bar.”
Write ·
pressDrag one thing onto another
Drags between two elements or points inside one window, along a straight path of limited length.
Try: “Drag the file icon into the Trash folder in the sidebar.”
Write ·
dragMove the mouse pointer
Moves your real mouse cursor to a spot or element. It always uses your shared cursor, so it needs foreground mode.
Try: “Move the pointer to the Dock.”
Write ·
moveList, launch or quit apps
Lists running apps and can quit or hide them. In the default background-only mode, launching only checks that an app is already running.
Try: “Quit Slack.”
Write ·
appList and move windows
Lists windows and can close, minimize, restore, maximize, move or resize them. Bringing a window to the front needs foreground mode.
Try: “Close the second Safari window.”
Write ·
windowList or click menu items
Lists an app's menu items and clicks one by path, such as File > Save.
Try: “Click File > Save in TextEdit.”
Write ·
menuRead the clipboard
Reads the macOS clipboard or saves it to a named slot. In the default mode it cannot change the clipboard. Setting, clearing and restoring it need foreground mode.
Try: “What is on my clipboard right now?”
Files ·
clipboardPaste text into an app
Pastes text into one exact window you observed first. With a separate --allow-temporary-clipboard flag it can briefly use the clipboard and restore it.
Try: “Paste this paragraph into the Notes window.”
Write ·
pasteLet Peekaboo plan a multi-step task
Runs a natural-language task using the AI provider you configured. It plans and performs steps with Peekaboo's own tools. When started through MCP it stays background-only.
Try: “Open Safari, go to github.com and search for Peekaboo.”
Write ·
agentLook at the Dock
Lists the items in the Dock. Launching, menus, hiding and showing the Dock need foreground mode.
Try: “What apps are in my Dock?”
Read ·
dockRead and answer system dialogs
Lists dialogs and clicks buttons, types into fields or dismisses them, for an app you name.
Try: “Click OK on the TextEdit dialog.”
Write ·
dialogList Spaces or move a window
Lists your macOS Spaces and can move a window to another Space. Switching Spaces needs foreground mode.
Try: “Move the Safari window to Space 3.”
Write ·
space
Read from the source code
Permissions
high risk · 5 things to watch
High risk
The assistant can see your whole screen and click, type and close windows in any app you allow. Grant permission only when you are present, and use the tool allow-list to limit it to looking if you do not need it to act.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It can see and act in any app on your Mac
With Screen Recording and Accessibility permission it can read any window and click or type into it. Close windows with private data, and limit tools with PEEKABOO_ALLOW_TOOLS if you only need screenshots. github.com
It can close windows and quit apps
The window and app tools can close windows and quit apps, which can lose unsaved work. Save your work before you hand over control. github.com
Screenshots may go to an AI provider
The analyze tool sends an image file to the provider you configured. The agent tool works with that provider too. Leave the provider unset if you do not want that. github.com
The clipboard can be read
The clipboard tool reads what you last copied, which may include passwords. Remove it with PEEKABOO_DISABLE_TOOLS if you do not need it. github.com
Foreground mode lifts the safety limits
Starting the server with --allow-foreground lets it take your mouse, change the clipboard and switch Spaces. Leave it off unless you are watching. github.com
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Turning on read-only | No read-only mode is documented. Set PEEKABOO_ALLOW_TOOLS to a comma list such as image,see,inspect_ui,permissions to expose only observation tools. |
|---|---|
| Talks to | The AI provider you configure, only when you use the agent or analyze tools |
| Sign-in and keys | Provider keys and settings are stored under ~/.peekaboo, or can be set in the server's env block. The tools themselves need no account. |
| Scopes |
|
Questions
Does Peekaboo work on Windows or Linux?
No. The released CLI and app need macOS 15 or later. The README links separate community rewrites for Windows and Linux, which are different projects.
What permissions does it need?
Screen Recording for screenshots, and Accessibility for reading and controlling app windows. Grant both in System Settings under Privacy & Security, then restart the app that launches it. The permissions tool checks them.
Will it take over my mouse?
Not by default. The server is background-only and refuses actions that move your real cursor or bring windows forward. A person has to start it with the allow-foreground flag to lift that.
Does it need an API key?
Not for the screenshot, click, type and window tools. The agent and analyze tools need a key for an AI provider such as OpenAI, Anthropic or xAI, or a local Ollama server.
Can I limit it to looking only?
Yes, with a tool allow-list. Set PEEKABOO_ALLOW_TOOLS to a comma list like image,see,inspect_ui,permissions in the server's env settings. There is no separate read-only switch.
Is it free?
Yes. It is open source under the MIT license. Any AI provider you add for the agent or analyze tools bills you separately.
How do I add it to Claude or Cursor?
Use the install box above. The command ends with the mcp subcommand. After you add it, grant the macOS permissions and restart the app.
Information
updated Nov 2, 2026
- Publisher
- Community
- Package
@steipete/peekaboo- Registry
- npm
- Transport
- stdio
- Auth
- None
- Version
- 4.9.7
- License
- MIT
- Last commit
- Oct 27, 2026
- Open issues
- 7
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 4Hide
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com