Browser Use
OFFICIAL SERVERLocal MCP server that drives a Chrome or Chromium browser step by step, with an agent fallback
macOS screen capture, UI inspection and native click-and-type automation exposed over MCP
By openclaw Swift Local · stdio Browser automationAI and ML
80 popularity score ★ 5.4k ↓ 1.5k/wk
Opens the app, which asks before it adds the server.
claude mcp add peekaboo -- npx -y @steipete/peekaboo mcp{
"mcpServers": {
"peekaboo": {
"command": "npx",
"args": [
"-y",
"@steipete/peekaboo",
"mcp"
]
}
}
}{
"mcpServers": {
"peekaboo": {
"command": "npx",
"args": [
"-y",
"@steipete/peekaboo",
"mcp"
]
}
}
}{
"servers": {
"peekaboo": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@steipete/peekaboo",
"mcp"
]
}
}
}[mcp_servers.peekaboo]
command = "npx"
args = ["-y", "@steipete/peekaboo", "mcp"]gemini mcp add --scope user peekaboo npx -- -y @steipete/peekaboo mcp| Set together: providers | |
|---|---|
PEEKABOO_AI_PROVIDERS |
Optional: Comma-separated provider/model list for analyze and agent. |
OPENAI_API_KEY secret |
Optional: OpenAI key for GPT models. |
ANTHROPIC_API_KEY secret |
Optional: Anthropic key for Claude models. |
X_AI_API_KEY secret |
Optional: xAI key for Grok models; XAI_API_KEY and GROK_API_KEY are also read. |
GEMINI_API_KEY secret |
Optional: Gemini key; GOOGLE_API_KEY is also read. |
OPENROUTER_API_KEY secret |
Optional: OpenRouter key. |
PEEKABOO_OLLAMA_BASE_URL |
Optional: Native Ollama server base, without /v1; OLLAMA_BASE_URL is also read. |
PEEKABOO_ALLOW_TOOLS |
Optional: Allowlist of tools the server exposes. |
PEEKABOO_DISABLE_TOOLS |
Optional: Tools to hide, e.g. browser for a native-only catalog. |
PEEKABOO_INPUT_STRATEGY |
Optional: Input strategy: actionFirst, actionOnly, synthFirst or synthOnly; the synth ones hide set_value and action. |
PEEKABOO_DEFAULT_SAVE_PATH |
Optional: Folder where screenshots are saved. |
PEEKABOO_LOG_LEVEL |
Optional: debug, info, warn or error. |
Peekaboo is a Mac command-line tool and menu-bar app that takes screenshots, reads the accessibility tree of running apps and acts on what it finds. Running `peekaboo mcp` starts it as a stdio MCP server that offers the same toolset to clients such as Claude Code, Codex or Cursor.
The usual loop is to call `see` on a screen, app or exact window, get back a snapshot with element IDs, then pass those IDs to `click`, `type`, `press`, `scroll`, `set_value` or `action`. Other tools list and manage apps, windows, menus, the Dock, dialogs and Spaces, record bounded screen or window captures, read the clipboard and control a Chrome browser child. The tool catalog in the v4.9.6 source registers 27 tools; which of them a client sees depends on the authority mode, the input strategy and the PEEKABOO_ALLOW_TOOLS and PEEKABOO_DISABLE_TOOLS filters.
The `analyze` tool and the nested `agent` tool send images or tasks to a model provider you configure. The MCP docs name OpenAI, Anthropic, xAI and a local Ollama server; the configuration code also reads keys for Gemini, MiniMax, Moonshot/Kimi and OpenRouter. When PEEKABOO_AI_PROVIDERS is unset, the code falls back to openai/gpt-5.6,anthropic/claude-opus-5. Everything else runs on the Mac itself.
By default the MCP server is background-only: input goes to an exact resolved app or window without bringing it to the front. Foreground actions, browser connection and persistent clipboard writes are refused unless the person starting the server passes `--allow-foreground`. Rich paste needs `--allow-temporary-clipboard` instead.
| Runtime | Node.js 22+ |
|---|---|
| Runs on | macOS |
| Also |
|
The npm package needs Node.js 22 or later. Grant Screen Recording for capture and Accessibility for inspection and control; synthetic background keyboard input also uses the Event Synthesizing permission. Only analyze and the nested agent need a provider: set OPENAI_API_KEY, ANTHROPIC_API_KEY or X_AI_API_KEY, or run Ollama. Keys can also be stored with `peekaboo config` under ~/.peekaboo.
Runs on macOS only; Windows and Linux rewrites are separate community projects. Only the stdio transport works: the http and sse flags exist but those transports are not implemented. In the default background-only mode, focusing or switching apps, foreground key chords, browser page actions and clipboard set, clear or restore are hidden or refused. `analyze` accepts only .png, .jpg, .jpeg and .webp files. Temporary rich paste is capped at 10 MB. `set_value` and `action` are hidden when the input strategy is synthetic-only.
Suits people on a Mac who want an assistant to look at the screen and operate native apps through accessibility, not only a web page. It is local software with no account of its own; only analyze and agent reach a model vendor, and Ollama keeps those local too. Because it can click, type and paste into any app the user can reach, it fits a supervised desktop session better than an unattended one, and the background-only default keeps it from taking focus unless a person allows it. Anyone on Windows or Linux, or who needs a remote HTTP server, should look elsewhere.
6 only read, 21 change things.
image changescapture changesanalyzebrowser changespermissionssleepseeinspect_uiverify_stateclick changestype changesset_value changesselect_text changesaction changesscroll changespress changesdrag changesmove changesapp changeswindow changesmenu changesclipboard changespaste changesagent changesdock changesdialog changesspace changes