Skip to main content
mcpSource-backedReview first Safety Privacy

Peekaboo MCP Server

macOS automation MCP server and CLI from OpenClaw that gives AI agents screen capture, window/app discovery, UI element inspection, clicks, typing, scrolling, hotkeys, menu actions, dialog control, and optional AI visual analysis through local or hosted model providers.

HarnessClaude CodeCodexCursorClaude Desktop
Review first review before installing

Open the source and read safety notes before installing.

Safety notes

  • Peekaboo can see the screen, capture windows, inspect UI elements, click controls, type text, paste content, use hotkeys, scroll, drag, drive menus, manage windows, and run natural-language automation.
  • Start with read-only commands such as `see`, `image`, `list`, `window list`, or `tools` before enabling input automation.
  • Require human approval before sending messages, changing accounts, submitting forms, purchasing, deleting data, moving files, or acting in production apps.
  • Use dedicated test accounts, test apps, and explicit allowlists when exposing Peekaboo to an agent that can operate logged-in macOS applications.
  • HTTP and SSE MCP transports are documented as stubbed in the MCP command docs; stdio is the default supported integration path.

Privacy notes

  • Screen captures, window titles, app names, UI labels, form fields, menus, dialogs, file paths, clipboard contents, and generated snapshots may be exposed to the MCP client and model provider.
  • Logged-in apps can show personal data, customer data, credentials, recovery codes, private messages, source code, internal dashboards, or confidential documents.
  • Optional AI analysis may send screenshots or extracted UI context to configured model providers unless the user selects a local provider path.
  • Snapshots, retained frames, metadata, and optional video output can persist on disk; prune caches and outputs when working with sensitive screens.

Prerequisites

  • macOS 15.0 or newer for the supported automation APIs.
  • Node.js 22 or newer when using the npm MCP wrapper.
  • Screen Recording permission for the terminal, editor, daemon, or Bridge host that runs Peekaboo.
  • Accessibility permission for reliable element interaction, window focus, menu control, and action-based clicks.
  • Event Synthesizing permission when using background keyboard input, coordinate clicks, paste, or synthetic click fallback.

Schema details

Install type
cli
Troubleshooting
No
Source repository stats
Scope
Source repo
Collection metadata
Estimated setup
15 minutes
Difficulty
advanced
Tool listing metadata
Full copyable content
{
  "mcpServers": {
    "peekaboo": {
      "command": "npx",
      "args": ["-y", "@steipete/peekaboo"]
    }
  }
}

About this resource

Content

Peekaboo is a macOS automation CLI and MCP server for agents that need to see and operate desktop applications. It can capture screens or windows, inspect UI elements, click by label or element ID, type text, send hotkeys, manage windows and Spaces, interact with menus and dialogs, and run optional visual analysis through configured model providers.

The npm package exposes the MCP wrapper as @steipete/peekaboo, while the Homebrew path installs the native macOS app and CLI.

Source Review

Verified on 2026-06-18. The README documents the MCP server for Codex, Claude Code, and Cursor, plus the npx -y @steipete/peekaboo startup path. The MCP command docs identify stdio as the default supported transport and note that HTTP/SSE transports are stubbed.

Features

  • macOS screen, window, and menu-bar capture with optional Retina scaling.
  • UI inspection through see, snapshots, element IDs, and labels.
  • Click, type, press, hotkey, paste, scroll, swipe, drag, move, menu, menubar, dock, app, window, space, and dialog automation.
  • Direct accessibility actions such as set-value and perform-action.
  • Natural-language automation through the agent command.
  • MCP server and CLI backed by the same tool catalog.
  • Optional model-provider integration through configured AI providers.
  • Permission tools for Screen Recording, Accessibility, and Event Synthesizing.

Installation

Run as an MCP server through npm:

{
  "mcpServers": {
    "peekaboo": {
      "command": "npx",
      "args": ["-y", "@steipete/peekaboo"]
    }
  }
}

For the full native CLI/app path:

brew install steipete/tap/peekaboo

Then verify permissions:

peekaboo permissions status

Use Cases

  • Let a coding agent inspect a macOS app window while debugging UI state.
  • Capture screenshots and UI element maps for local app QA.
  • Automate repeatable desktop workflows in a dedicated test account.
  • Run browser or app interactions when a browser-only MCP is not enough.
  • Use local or hosted visual models to answer questions about a captured screen.

Safety and Privacy

Peekaboo operates at the desktop boundary, so it should be treated as sensitive automation. Start read-only, grant the narrowest practical macOS permissions, and use explicit human approval before any agent action that changes data, sends communication, submits a form, or manipulates a logged-in app.

When optional AI analysis is enabled, confirm whether screenshots or extracted UI context are sent to a hosted model provider. Use local models or isolated test environments for confidential screens.

Duplicate Check

Checked current content/mcp/, content/tools/, content/skills/, open pull requests, and repository-wide content for openclaw/Peekaboo, Peekaboo MCP, @steipete/peekaboo, macOS automation MCP, screenshot MCP server, and OpenClaw Peekaboo. Existing browser and desktop automation entries cover BrowserMCP, Chrome MCP, Playwright MCP, Windows MCP, and bb-browser, but no dedicated Peekaboo MCP entry, exact source URL duplicate, target file, or open duplicate PR was found.

Source citations

Add this badge to your README

Show that Peekaboo MCP Server is listed on HeyClaude. Paste this Markdown into your README — it renders the badge and links back to this page.

Listed on HeyClaude
[![Listed on HeyClaude](https://heyclau.de/badge/mcp/peekaboo-mcp-server.svg)](https://heyclau.de/entry/mcp/peekaboo-mcp-server)

How it compares

Peekaboo MCP Server side by side with 3 alternatives on trust, install, platform support, and disclosed safety notes — all from reviewed registry metadata.

FieldPeekaboo MCP Server

macOS automation MCP server and CLI from OpenClaw that gives AI agents screen capture, window/app discovery, UI element inspection, clicks, typing, scrolling, hotkeys, menu actions, dialog control, and optional AI visual analysis through local or hosted model providers.

Open dossier
Better Icons MCP Server

MCP server and Agent Skill from better-auth for searching, recommending, retrieving, batching, and syncing Iconify-powered SVG icons from 200,000+ icons across 150+ collections.

Open dossier
Expo MCP Server for Claude

Official Expo-hosted remote MCP server for connecting Claude and other MCP clients to Expo documentation, Expo SDK guidance, EAS builds, EAS workflows, TestFlight crash and feedback data, React Native DevTools, and simulator automation for Expo projects.

Open dossier
jCodeMunch MCP Server

Token-efficient MCP server for source-code exploration that indexes codebases with tree-sitter, then lets agents retrieve symbols, file outlines, dependency context, blast radius, dead code, PR risk, and targeted source snippets instead of reading whole files.

Open dossier
Trust
Install riskReview firstReview firstReview firstReview first
Notes Safety Privacy Safety Privacy Safety Privacy Safety Privacy
Categorymcpmcpmcpmcp
Sourcesource-backedsource-backedsource-backedsource-backed
AuthorOpenClawbetter-authExpoJ. Gravelle
Added2026-06-182026-06-182026-06-042026-06-18
Platforms
Claude CodeCodexCursorClaude Desktop
Claude CodeClaude Desktop
Claude CodeClaude Desktop
Claude CodeClaude Desktop
Source repo
Safety notesPeekaboo can see the screen, capture windows, inspect UI elements, click controls, type text, paste content, use hotkeys, scroll, drag, drive menus, manage windows, and run natural-language automation. Start with read-only commands such as `see`, `image`, `list`, `window list`, or `tools` before enabling input automation. Require human approval before sending messages, changing accounts, submitting forms, purchasing, deleting data, moving files, or acting in production apps. Use dedicated test accounts, test apps, and explicit allowlists when exposing Peekaboo to an agent that can operate logged-in macOS applications. HTTP and SSE MCP transports are documented as stubbed in the MCP command docs; stdio is the default supported integration path.Better Icons can write icons into a project file through `sync_icon`; review the target path, component name, framework, and diff before committing generated code. Icon output can include raw SVG, JSX/component usage, URLs, or generated project code. Review SVG attributes and generated code before use in production UI. Learned preferences and recent icons can influence future recommendations; clear preferences when switching projects or style systems. Batch retrieval can add many icons quickly. Keep requested sets bounded and avoid mixing unrelated icon styles in a shared design system.Expo MCP Server is an official remote MCP server hosted at `https://mcp.expo.dev/mcp`. It is not a HeyClaude-hosted package. The remote server uses OAuth-backed authentication. Do not paste Expo access tokens, usernames, passwords, or OAuth callback material into prompts, screenshots, public MCP configs, shell history, issue comments, or committed files. Build and workflow tools can trigger, cancel, inspect, validate, and submit EAS operations when the authenticated account has permission. Treat those as production-impacting actions for real apps. `build_submit` can submit finished builds to app stores when the project is configured for that path. Require explicit human confirmation before any store submission, release-channel change, or production distribution step. The dependency helper uses Expo's recommended install path for compatible package versions. Review generated dependency changes before committing or running the app. Local capabilities require installing `expo-mcp`, logging into Expo CLI, and starting the dev server with `EXPO_UNSTABLE_MCP_SERVER=1`. Review this environment before enabling local automation in shared machines, CI, or sensitive app projects. Simulator automation tools can tap screens, inspect views, take screenshots, collect logs, and open React Native DevTools. Keep them scoped to test apps, local simulators, or approved debugging sessions. Expo documents current local limitations, including one development server connection at a time, iOS local capability support limited to simulators, and iOS local capability support on macOS hosts.jCodeMunch can index source trees and return exact source snippets, symbol metadata, dependency context, git-derived risk signals, and repository structure to the MCP client. Use repository allowlists and trusted-folder controls before giving an agent access to private, customer, regulated, or production codebases. File watching, auto-reindexing, login-service registration, and MCP-client hooks are optional behaviors; review them before enabling persistent background behavior. The upstream license permits non-commercial use for free but requires a paid license for commercial use. Treat generated code summaries and repository analysis as advisory context, not approval to edit, delete, publish, or refactor without review.
Privacy notesScreen captures, window titles, app names, UI labels, form fields, menus, dialogs, file paths, clipboard contents, and generated snapshots may be exposed to the MCP client and model provider. Logged-in apps can show personal data, customer data, credentials, recovery codes, private messages, source code, internal dashboards, or confidential documents. Optional AI analysis may send screenshots or extracted UI context to configured model providers unless the user selects a local provider path. Snapshots, retained frames, metadata, and optional video output can persist on disk; prune caches and outputs when working with sensitive screens.Icon search queries, selected icon IDs, preferred collections, recent icons, target icon file paths, framework names, and generated SVG/component code may be visible to the MCP client and model provider. `sync_icon` can expose local project structure and icon-file conventions to the agent. Avoid sending private product names, unreleased feature labels, customer-specific UI terms, or proprietary design-system names in icon search prompts when that context is sensitive.Tool results can expose Expo account data, project identifiers, app names, build history, workflow runs, workflow logs, build logs, artifacts, TestFlight crash reports, TestFlight feedback, simulator screenshots, device logs, route maps, and source-derived app structure. Expo states that data sent to Expo MCP Server is not used to train AI models and that the server does not run an AI model itself, but connected MCP clients and model providers may have separate retention and training policies. Local capabilities can proxy data from the development machine through Expo MCP Server before returning it to the connected MCP client, including screenshots and simulator-derived state. Build logs, workflow logs, crash data, and app feedback may contain customer data, user identifiers, stack traces, API endpoints, environment names, release metadata, screenshots, or secrets accidentally printed by the app. Expo access tokens, generated credentials, app-store metadata, signing setup, and project secrets should stay in secret managers or approved MCP client credential stores, not prompts or repository files. Use demo apps, synthetic accounts, simulator data, and non-production EAS projects for screenshots, examples, validation, and AI-assisted troubleshooting.Local indexes can contain file paths, symbol names, signatures, summaries, byte offsets, source snippets, dependency relationships, and git-derived metadata. Optional hosted summarizers or embedding providers may receive source-derived text when configured; prefer local or disabled summarizers for confidential repositories. The upstream README discloses anonymous aggregate token-savings telemetry with an opt-out setting; review and disable it where policy requires. Agent hooks and config-audit features may inspect MCP client settings and agent instruction files; review outputs before sharing them outside the project.
Prerequisites
  • macOS 15.0 or newer for the supported automation APIs.
  • Node.js 22 or newer when using the npm MCP wrapper.
  • Screen Recording permission for the terminal, editor, daemon, or Bridge host that runs Peekaboo.
  • Accessibility permission for reliable element interaction, window focus, menu control, and action-based clicks.
  • Node.js 18 or newer for the `better-icons` npm package.
  • An MCP client such as Claude Code, Cursor, OpenCode, Windsurf, VS Code Copilot, Google Antigravity, or another stdio-capable MCP host.
  • Network access to Iconify icon data and package registry downloads.
  • For project sync, an approved target icons file and framework choice such as React, Vue, Svelte, Solid, or raw SVG.
  • Expo account that can authenticate to the projects, builds, workflows, and EAS resources the assistant should access.
  • Expo project on the latest supported Expo SDK, or a plan to upgrade before relying on current MCP capabilities.
  • MCP-capable client with remote Streamable HTTP support, such as Claude Code, Codex, Cursor, VS Code, or another compatible client.
  • OAuth or Expo access-token authentication path approved for the project and organization.
  • Python 3.10 or newer available to the MCP client runtime.
  • `uvx` or a Python package installation path for launching `jcodemunch-mcp`.
  • Local repository access or GitHub access for the codebases you want to index.
  • Review of the upstream dual-use license before using the tool in a company, client, SaaS, consulting, or other commercial workflow.
Install
npx -y @steipete/peekaboo
claude mcp add better-icons -- npx -y better-icons
claude mcp add --transport http expo https://mcp.expo.dev/mcp
uvx jcodemunch-mcp
Config
{
  "mcpServers": {
    "peekaboo": {
      "command": "npx",
      "args": ["-y", "@steipete/peekaboo"]
    }
  }
}
{
  "mcpServers": {
    "better-icons": {
      "command": "npx",
      "args": ["-y", "better-icons"]
    }
  }
}
{
  "mcpServers": {
    "expo": {
      "url": "https://mcp.expo.dev/mcp",
      "type": "http"
    }
  }
}
{
  "mcpServers": {
    "jcodemunch": {
      "command": "uvx",
      "args": ["jcodemunch-mcp"]
    }
  }
}
Citations
ClaimUnclaimedUnclaimedUnclaimedUnclaimed

Signals

Loading live community signals…

More like this, weekly

A short, calm digest of reviewed Claude resources. Unsubscribe any time.