# Peekaboo MCP server

> Capture the macOS screen, inspect app UI and automate clicks and typing from your AI assistant.

- Listing: https://mcp.tc/i/peekaboo
- Connect: this is a local (stdio) server; install it on your machine (see Install). The listing link is a page, not an MCP endpoint.
- Type: local (stdio)
- Auth: no API key needed
- Category: [Utilities](https://mcp.tc/c/utilities)
- Vendor: Peter Steinberger (OpenClaw)
- Repository: <https://github.com/openclaw/Peekaboo>
- Package: npm `@steipete/peekaboo`

## About

Peekaboo is a macOS CLI and menu-bar app for screen capture, accessibility inspection and native UI automation. Through MCP it exposes the same tools to a client: take screenshots of the screen or a single app, read a structured map of UI elements with element IDs, then click, type, press keys, scroll and drag. It also covers apps, windows, menus, the Dock and dialogs.

It runs locally over stdio, started with npx. It needs macOS 15 or later and Node.js 22 or later. No sign-in is needed for the MCP tools, though the built-in agent command needs a configured model provider. macOS Screen Recording and Accessibility permissions must be granted.

## What it can do

- Capture screenshots of the whole screen or a specific app
- Inspect a running app's UI as structured elements with IDs
- Click, type, press keys, scroll and drag in native apps
- List and target specific windows by window ID
- Control apps, menus, the Dock and dialogs
- Check which macOS permissions are granted

## Example prompts

- "Take a screenshot of my screen and describe what is open"
- "Inspect the Finder window and list its clickable elements"
- "Open Safari, click the address bar and type github.com"
- "List all Safari windows and their IDs"

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

```bash
claude mcp add --transport stdio peekaboo -- npx -y @steipete/peekaboo mcp
```

2. Start Claude Code and type `/mcp`. **peekaboo** should show as connected.

Add `--scope user` to make it available in every project.

### Claude Desktop

1. Open **Settings → Developer → Edit Config**. It opens `claude_desktop_config.json`. Add:

`claude_desktop_config.json`:

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

2. Save the file and restart Claude Desktop.

Needs Node.js on your computer. The file lives in `~/Library/Application Support/Claude/` on macOS and `%APPDATA%\Claude\` on Windows.

### Cursor

[Add to Cursor](<https://cursor.com/install-mcp?name=peekaboo&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBzdGVpcGV0ZS9wZWVrYWJvbyIsIm1jcCJdfQ%3D%3D>) (opens Cursor)

Or add it by hand to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this project):

`mcp.json`:

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

Needs Node.js on your computer.

### VS Code

[Install in VS Code](<https://vscode.dev/redirect/mcp/install?name=peekaboo&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40steipete%2Fpeekaboo%22%2C%22mcp%22%5D%7D>) (opens VS Code)

Or from a terminal:

```bash
code --add-mcp '{"name":"peekaboo","type":"stdio","command":"npx","args":["-y","@steipete/peekaboo","mcp"]}'
```

Or commit it to the repo in `.vscode/mcp.json`:

`.vscode/mcp.json`:

```json
{
  "servers": {
    "peekaboo": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@steipete/peekaboo",
        "mcp"
      ]
    }
  }
}
```

Needs Node.js on your computer.

### Devin Desktop

1. Add it to `~/.config/devin/mcp_config.json` (macOS and Linux) or `%APPDATA%\devin\mcp_config.json` (Windows):

`mcp_config.json`:

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

2. Refresh the MCP server list in Cascade.

Devin Desktop is the new name for Windsurf.

### Codex

```bash
codex mcp add peekaboo -- npx -y @steipete/peekaboo mcp
```

Or edit `~/.codex/config.toml` directly:

`config.toml`:

```toml
[mcp_servers.peekaboo]
command = "npx"
args = ["-y", "@steipete/peekaboo", "mcp"]
```

Needs Node.js on your computer.

### Gemini CLI

```bash
gemini mcp add peekaboo npx -- -y @steipete/peekaboo mcp
```

This adds it to the current project. Add `-s user` to use it everywhere.

### Any client

Most clients that start local servers accept this shape:

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

Zed puts servers under `context_servers` in its settings, with the same `command`, `args` and `env` fields.

Needs Node.js on your computer.

## Details

- Server version: 4.6.0
- Last checked: 2026-10-03
- Listed: 2026-10-03
- Updated: 2026-10-03

---
Source: https://mcp.tc/i/peekaboo (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
