> ## Documentation Index
> Fetch the complete documentation index at: https://docs.reflecto.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP server (AI agents)

> Let Claude, Cursor, and other LLM agents send notifications to your devices.

The Reflecto MCP server exposes the [Send API](/api-reference) as a tool that any
MCP-capable LLM agent can call. Ask the agent to notify you, and it reaches your phone
and desktop — even when you're away from the chat.

Works today with **Claude Desktop, Claude Code, Cursor, Windsurf, and VS Code** (local stdio).

## 1. Get a token

Create a sender token (`rfk_live_…`) in the Reflecto app under **API Tokens**. Make a
dedicated token labeled for the agent (e.g. "Claude") so it shows as the source on your
device and can be revoked independently. See [Authentication](/guides/authentication).

## 2. Add the server

### Claude Desktop

`claude_desktop_config.json`:

```json theme={null}
{
  "mcpServers": {
    "reflecto": {
      "command": "npx",
      "args": ["-y", "@reflecto/mcp"],
      "env": { "REFLECTO_TOKEN": "rfk_live_…" }
    }
  }
}
```

### Claude Code

```bash theme={null}
claude mcp add reflecto --env REFLECTO_TOKEN=rfk_live_… -- npx -y @reflecto/mcp
```

### Cursor

`.cursor/mcp.json`:

```json theme={null}
{
  "mcpServers": {
    "reflecto": {
      "command": "npx",
      "args": ["-y", "@reflecto/mcp"],
      "env": { "REFLECTO_TOKEN": "rfk_live_…" }
    }
  }
}
```

### Windsurf

`~/.codeium/windsurf/mcp_config.json` — same `mcpServers` shape as Cursor above.

### VS Code

`.vscode/mcp.json` — note the top-level key is `servers`, not `mcpServers`:

```json theme={null}
{
  "servers": {
    "reflecto": {
      "command": "npx",
      "args": ["-y", "@reflecto/mcp"],
      "env": { "REFLECTO_TOKEN": "rfk_live_…" }
    }
  }
}
```

## 3. Try it

> **You:** Notify my phone when you're done refactoring this module.

The agent calls `send_notification` and you get a push on every paired device.

## The `send_notification` tool

| Field              | Required | Notes                                                                                |
| ------------------ | -------- | ------------------------------------------------------------------------------------ |
| `message`          | yes      | Body (≤1500 bytes).                                                                  |
| `title`            | no       | Headline (≤100 bytes).                                                               |
| `priority`         | no       | `min`/`low`/`default`/`high`/`urgent`; `default`+ wakes the device.                  |
| `device`           | no       | `all` (default), `phone`/`mobile`, `desktop`, or comma-separated labels.             |
| `url`, `url_title` | no       | Tappable link and its label. Android only in v1; the desktop extension ignores them. |
| `actions`          | no       | Up to 3 `{label,url}` buttons.                                                       |
| `tags`             | no       | Up to 5 labels.                                                                      |
| `ttl`              | no       | Seconds queued if undelivered (≤72h); floats are floored by the server.              |

## The `list_devices` tool (remote connectors)

Remote connectors (ChatGPT, Claude.ai web) granted the `devices:read` scope can call
`list_devices` — a read-only tool returning each paired device's name, type, and online
status. It never returns message or notification content. The agent uses it to target a
`send_notification` precisely ("send to my phone") or to report which devices are reachable.

Local-stdio agents are send-only in v1 and don't expose this tool.

## Environment variables

| Var                | Required | Default                    |
| ------------------ | -------- | -------------------------- |
| `REFLECTO_TOKEN`   | yes      | —                          |
| `REFLECTO_API_URL` | no       | `https://api.reflecto.dev` |

## Notes

* This is a thin client over the public [Send API](/api-reference) — same auth, same limits,
  same [rate limits](/guides/rate-limits) and [errors](/guides/errors).
* Remote connectors (ChatGPT, Claude.ai web) are live and support `send_notification` (all connectors) and `list_devices` (connectors granted `devices:read`).
