---
title: MCP server
description: Connect Claude Desktop, Claude Code, Cursor, or VS Code to your RAAD clipboard history.
order: 2
---

# MCP server

RAAD ships an [MCP](https://modelcontextprotocol.io) server so an AI client can search, read, and
(if you allow it) organize your clipboard history. It's read-only and off by default.

## Turn it on

1. Open RAAD → Settings → Platform Surfaces.
2. Toggle **"Allow MCP clients"**. This is the read scope — search, recent clips, pinboards,
   session context.
3. Optionally, toggle **"Allow saving and organizing clips"** (write) and/or **"Allow changing
   what ⌘V pastes"** (clipboard). Both are off by default and independent of read access and of
   each other — see the [security policy](/security-policy) for why `set_clipboard` gets its own
   toggle.
4. Click **Configure** next to your client (Claude Desktop, Claude Code, Cursor, VS Code) in the
   same settings pane. RAAD writes only its own `raad` entry into that client's config — any other
   MCP server you've already set up stays untouched.

If your client isn't listed, or the one-click configure can't parse its config file, add this to
the client's MCP config by hand:

```json
{
  "mcpServers": {
    "raad": {
      "command": "/Applications/RAAD.app/Contents/Helpers/raad-mcp"
    }
  }
}
```

VS Code's native MCP support uses a different shape — a `servers` key, with `"type": "stdio"`
alongside `command`:

```json
{
  "servers": {
    "raad": {
      "type": "stdio",
      "command": "/Applications/RAAD.app/Contents/Helpers/raad-mcp"
    }
  }
}
```

The helper is launched by the client over stdio, on demand — never by RAAD itself, and it needs
RAAD running for anything beyond the four tools that read the database file directly (see the
[tool reference](/docs/mcp/tools) for which those are).

## What it can see

- **Sensitive clips are never returned** — a clip whose type is concealed, or that was copied
  from an excluded app, is invisible to every MCP tool no matter what's asked.
- **Deleted clips are never returned.**
- **Sealed pinboards are invisible entirely** — not shown with a redacted name, not distinguishable
  from a pinboard that doesn't exist. Asking for one by id gets the identical error either way.
- **Every write is logged** to a local, on-device audit table (Settings → Platform Surfaces →
  Recent MCP Activity) — and that table itself is unreachable from any MCP tool, so an agent can
  act on your data but can't read its own audit trail back.

Full detail, including what a compromised machine can see regardless of any of this, is in the
[security policy](/security-policy).

## Protocol details

- Negotiates `protocolVersion` with the client — echoes back whatever version the client asked
  for if RAAD's server supports it, otherwise falls back to the newest version it knows.
- Every tool result includes both a text content block and `structuredContent` matching its
  `outputSchema`, so a client that reads structured output doesn't need to parse JSON out of a
  string.
- Advertises `tools.listChanged` and emits the notification when the granted consent scopes
  change while a client session is open — flip a toggle in Settings and a connected client finds
  out without needing to reconnect.
