arc-mcp
# 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
Scored across 9 tools
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.
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.
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.
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.