# baepsae

A local MCP server for controlling iOS Simulator and macOS apps through a TypeScript layer backed by a native Swift bridge.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 26
- Author: oozoofrog
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/oozoofrog/mcp-baepsae
- Updated: 2026-03-31
- HTML: https://affpapa.org/en/nevibecode/mcp/baepsae

## What it does

baepsae lets an agent inspect and operate iOS Simulator and macOS applications. Its tools cover UI analysis, taps, and right-click actions, while simulator work can also use `xcrun simctl`. Selector searches using an `id` or `label` target app content by default; `all: true` includes the Simulator’s own chrome.

The package combines a TypeScript MCP layer with the Swift native binary `baepsae-native`. It requires macOS 14+, Xcode or Xcode Command Line Tools, Node.js 18+, and Swift 6+. Linux and Windows are excluded because the native bridge depends on macOS frameworks.

UI inspection and input control need Accessibility access for the process that launches the server, such as `node`, a terminal, or the MCP client. Restarting that process may be necessary after changing the permission.

## Requirements
- Needs: Node.js (commands run via npx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add baepsae -- npx -y mcp-baepsae
```

### Codex

**Platform CLI**
```bash
codex mcp add baepsae -- npx -y mcp-baepsae
```

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "baepsae": {
            "command": "npx",
            "args": [
                "-y",
                "mcp-baepsae"
            ]
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "baepsae": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "mcp-baepsae"
            ]
        }
    }
}
```

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add baepsae npx -y mcp-baepsae
```

## When to use it
- inspect an app screen in iOS Simulator
- locate a control by `id` or `label`
- tap a macOS application element
- send simulator actions through `xcrun simctl`

## Example prompts
- Inspect the current iOS Simulator screen and list the controls you can find.
- Find the control with `id` `login-button` and activate it.
- Open the context menu for the selected element with a right-click.

## Similar
- [Scrapling MCP Server](https://affpapa.org/en/nevibecode/mcp/scrapling-mcp-server.md) — MCP server · ★ 89433
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [AIHawk](https://affpapa.org/en/nevibecode/mcp/aihawk.md) — MCP server · ★ 32221
- [Skyvern](https://affpapa.org/en/nevibecode/mcp/skyvern.md) — MCP server · ★ 23263
- [SeleniumBase MCP](https://affpapa.org/en/nevibecode/mcp/seleniumbase-mcp.md) — MCP server · ★ 13169
- [Inbox Zero](https://affpapa.org/en/nevibecode/mcp/inbox-zero.md) — MCP server · ★ 12791

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
