Skip to main content
Glama
README.md
# arc-mcp

MCP (Model Context Protocol) server for Arc browser. Manage spaces and tabs programmatically.

## Features

- **List spaces** - Get all Arc browser spaces
- **Create space** - Create new spaces with custom names and icons
- **Delete space** - Remove spaces
- **Focus space** - Switch to a specific space (AppleScript)
- **List tabs** - Get tabs from all spaces or a specific space
- **Add tab** - Add tabs to spaces
- **Delete tab** - Remove tabs
- **Open URL** - Open URLs in Arc immediately (AppleScript)

## Requirements

- macOS (Arc browser is macOS-only)
- Arc browser installed
- **Arc Sync must be disabled** for space/tab modifications to persist

## Installation

```bash
bun install
```

## Usage

### With Claude Code

Add to your Claude Code MCP settings:

```json
{
  "mcpServers": {
    "arc": {
      "command": "npx",
      "args": ["tsx", "/path/to/arc-mcp/src/index.ts"]
    }
  }
}
```

### Running directly

```bash
bun start
# or
npx tsx src/index.ts
```

## Tools

### `list_spaces`

List all Arc browser spaces.

### `create_space`

Create a new space.

| Parameter | Type   | Required | Description                                    |
| --------- | ------ | -------- | ---------------------------------------------- |
| name      | string | Yes      | Name of the new space                          |
| icon      | string | No       | Emoji or SF Symbol name (default: "star")      |

### `delete_space`

Delete a space.

| Parameter | Type   | Required | Description                    |
| --------- | ------ | -------- | ------------------------------ |
| space     | string | Yes      | Name or ID of space to delete  |

### `focus_space`

Switch to a space (uses AppleScript).

| Parameter | Type   | Required | Description                   |
| --------- | ------ | -------- | ----------------------------- |
| space     | string | Yes      | Name or ID of space to focus  |

### `list_tabs`

List tabs, optionally filtered by space.

| Parameter | Type   | Required | Description                         |
| --------- | ------ | -------- | ----------------------------------- |
| space     | string | No       | Name or ID of space to filter by    |

### `add_tab`

Add a tab to a space. Requires Arc restart.

| Parameter | Type    | Required | Description                        |
| --------- | ------- | -------- | ---------------------------------- |
| space     | string  | Yes      | Name or ID of space                |
| url       | string  | Yes      | URL for the tab                    |
| title     | string  | No       | Tab title (defaults to URL)        |
| pinned    | boolean | No       | Add as pinned tab (default: false) |

### `delete_tab`

Delete a tab by ID. Requires Arc restart.

| Parameter | Type   | Required | Description         |
| --------- | ------ | -------- | ------------------- |
| tabId     | string | Yes      | ID of tab to delete |

### `open_url`

Open a URL immediately in Arc (uses AppleScript).

| Parameter | Type   | Required | Description                    |
| --------- | ------ | -------- | ------------------------------ |
| url       | string | Yes      | URL to open                    |
| space     | string | No       | Space to open the URL in       |

## Important Notes

1. **Arc Sync**: For space/tab modifications to persist, disable Arc Sync in Arc settings. Otherwise, the sync will overwrite local changes.

2. **Restart Required**: Most modifications (create/delete space, add/delete tab) require restarting Arc to take effect.

3. **Backup**: The server automatically creates backups before modifying Arc's sidebar data.

## How It Works

Arc stores its sidebar data in `~/Library/Application Support/Arc/StorableSidebar.json`. This MCP server reads and modifies that file directly for space and tab management.

For immediate actions (focus space, open URL), it uses AppleScript to control Arc.

## License

MIT

TDQS

A3.9/5.0

Scored across 9 tools

Disambiguation4/5

Most tools have distinct purposes, but 'create_space' and 'create_workspace' could be confused as both create spaces, though the latter includes tabs. Descriptions clarify that 'create_workspace' is for setting up a focused context, which helps differentiate it.

Naming Consistency5/5

All tools follow a consistent verb_noun naming pattern (e.g., add_tab, create_space, list_spaces). The naming is uniform and predictable, making it easy to understand each tool's function at a glance.

Tool Count5/5

With 9 tools, the server is well-scoped for managing Arc browser spaces and tabs. Each tool serves a clear purpose, covering core operations like creation, deletion, listing, and navigation without being overwhelming.

Completeness4/5

The toolset provides good coverage for space and tab management, including CRUD operations for spaces and tabs, and navigation tools. A minor gap is the lack of update operations for spaces or tabs, but agents can work around this by deleting and recreating as needed.

Maintenance

ActivityInactive
ResponsivenessNo issues