# Arc MCP Server

> MCP server exposing Arc's task queue, skills, and memory to external Claude instances Use when this capability is needed.

- Skill: `tomevault-io/arc-mcp-server` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/arc-mcp-server`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/arc-mcp-server/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/arc-mcp-server

---


# mcp-server

Exposes Arc's core surfaces via the Model Context Protocol (MCP). External Claude Code instances, Cursor, or any MCP client can interact with Arc's task queue, skill tree, memory, and dispatch state.

## Architecture

- **Runtime:** Bun + `@modelcontextprotocol/sdk`
- **Transports:** stdio (local, default) or HTTP (remote, `--transport http`)
- **Auth:** API key via `--auth-key` flag or `mcp-server/auth_key` credential (HTTP only)
- **Database:** Read/write to `db/arc.sqlite` via existing `src/db.ts` functions

## Exposed Surfaces

### Tools (read-write)

| Tool | Description |
|------|-------------|
| `list_tasks` | List tasks by status/priority (default: pending + active) |
| `create_task` | Queue a new task with subject, priority, skills |
| `get_task` | Fetch task details + result by ID |
| `close_task` | Mark task completed or failed with summary |
| `list_skills` | List installed skills with metadata |
| `get_status` | Agent status: pending/active counts, costs, last cycle |

### Resources (read-only)

| Resource | URI | Description |
|----------|-----|-------------|
| Memory | `arc://memory` | Current MEMORY.md contents |
| Cycle Log | `arc://cycles` | Last 20 dispatch cycles |

## CLI

```
arc skills run --name mcp-server -- start                          # stdio transport (default)
arc skills run --name mcp-server -- start --transport http         # HTTP on port 3100
arc skills run --name mcp-server -- start --port 3100 --auth-key KEY  # custom port + auth
```

## When to Load

Load when: building or maintaining the MCP server itself, debugging connection issues, or adding new tools to the exposed surface. Do NOT load when using Arc as a dispatch agent — this skill is for managing the MCP server, not for tasks executed by external MCP clients.

## Claude Code Integration

Add to `.claude/settings.json` (external client config, not Arc's own dispatch):

```json
{
  "mcpServers": {
    "arc": {
      "command": "bun",
      "args": ["skills/arc-mcp-server/server.ts"],
      "alwaysLoad": true
    }
  }
}
```

`alwaysLoad: true` is recommended for external clients — it ensures tools are immediately available without a ToolSearch round-trip. Do NOT add arc-mcp-server to Arc's own `.claude/settings.json`; Arc uses the `arc` CLI directly during dispatch and does not connect to its own MCP surface.

For remote HTTP:
```json
{
  "mcpServers": {
    "arc": {
      "url": "http://localhost:3100/mcp",
      "alwaysLoad": true
    }
  }
}
```

## Timeout Configuration

External Claude Code clients connecting via HTTP transport should set `MCP_TOOL_TIMEOUT` for long-running resource operations:

```bash
export MCP_TOOL_TIMEOUT=120000  # 120 seconds (default: 60s)
```

This is primarily relevant for large MEMORY.md reads or extended cycle log queries. Arc's native tools (list_tasks, create_task, get_status) typically complete in <5 seconds. See Claude Code v2.1.142+ release notes for details on MCP_TOOL_TIMEOUT behavior.

---
> Source: [arc0btc/arc-starter](https://github.com/arc0btc/arc-starter) — distributed by [TomeVault](https://tomevault.io).
<!-- tomevault:4.0:skill_md:2026-05-23 -->

