<!-- AI agents: this is the Markdown version of a Reception documentation page. Index: /llms.txt -->

# MCP server for your support inbox

Reception’s MCP server lets Claude, ChatGPT, Cursor, Codex or any other AI agent that speaks the Model Context Protocol (MCP) run your support inbox. The agent reads conversations, people and numbers, replies as you, and drafts AI knowledge and automations, with the same permissions you have in the dashboard. Creating apps, billing, members, integrations and switching automations on [stay in the dashboard](#dashboard-only).

## Connect {#connect}

Every client connects to one URL:

```text
https://reception.sh/mcp
```

The first time, your browser opens Reception. Sign in, pick the workspace if you belong to several, and choose what the client may do: **Read conversations, people and numbers** is always on; **Reply and make changes** is on by default and can be turned off. Select **Allow**. The connection stays until you [disconnect it](#disconnect); a connection that is unused for 90 days ends by itself.

Clients that only take a header, and your own scripts, use an [API key](#api-keys) instead.

### Claude.ai {#claude-ai}

Add the connector on claude.ai or in Claude Desktop.

1. Open **Customize → Connectors**.
2. Select **+ Add**, then **Add custom connector**.
3. Enter the name `Reception` and the URL `https://reception.sh/mcp`, then select **Continue**.
4. Keep the authentication settings Claude detects and select **Continue**. Under **Authentication**, choose **Sign in now**, keep the suggested **OAuth client**, and select **Add**.
5. Sign in and allow access in the Reception window. If no window opens, select **Connect** next to Reception.

On Team and Enterprise plans, an owner adds the connector once under **Organization settings → Connectors** (**Add**, then **Custom → Web**). Everyone then selects **Connect** under **Customize → Connectors** and signs in with their own Reception account. Turn Reception on in a chat from **+ → Connectors**.

### Claude Code {#claude-code}

```bash
claude mcp add --transport http reception https://reception.sh/mcp
```

Then run `/mcp` in Claude Code, select reception and sign in in the browser. Add `--scope user` to the command to use Reception in every project, not only the current one.

### Cursor {#cursor}

Add Reception to `~/.cursor/mcp.json` for every project, or to `.cursor/mcp.json` in one project:

```json
{
  "mcpServers": {
    "reception": {
      "url": "https://reception.sh/mcp"
    }
  }
}
```

Cursor signs in to Reception with OAuth: when it does, Reception opens in your browser. Sign in and allow access.

### Codex {#codex}

```bash
codex mcp add reception --url https://reception.sh/mcp
codex mcp login reception
```

Or add the server to `~/.codex/config.toml` yourself, then run `codex mcp login reception`:

```toml
[mcp_servers.reception]
url = "https://reception.sh/mcp"
```

The Codex CLI, the IDE extension and the ChatGPT desktop app share this configuration.

### ChatGPT {#chatgpt}

1. Open **Plugins** in ChatGPT.
2. Select **+**, then **Add custom MCP server**.
3. Enter the name `Reception`, a short description, and the URL `https://reception.sh/mcp`.
4. Under authentication, keep the sign-in Reception offers (OAuth), confirm the warning with **I understand and want to continue**, and select **Create as a plugin**.
5. Sign in and allow access in the Reception window. In a new chat, type `@` and pick Reception.

Whether you can add a custom MCP server, and what it may do, depends on your ChatGPT plan and, in a workspace, on what its admin allows.

## API keys {#api-keys}

An API key connects scripts and clients that take a header instead of a sign-in.

1. Open **Settings → Connections**.
2. Under **API keys**, select **Create key**.
3. Enter a name, choose **Read** or **Read and write**, and create it. The key belongs to you and the current workspace.
4. Copy the key. It starts with `rcp_` and is shown once.

Send it as a header:

```text
Authorization: Bearer rcp_…
```

In Claude Code:

```bash
claude mcp add --transport http reception https://reception.sh/mcp \
  --header "Authorization: Bearer rcp_…"
```

In Cursor, with the key in the `RECEPTION_API_KEY` environment variable:

```json
{
  "mcpServers": {
    "reception": {
      "url": "https://reception.sh/mcp",
      "headers": { "Authorization": "Bearer ${env:RECEPTION_API_KEY}" }
    }
  }
}
```

In Codex, with the same environment variable:

```toml
[mcp_servers.reception]
url = "https://reception.sh/mcp"
bearer_token_env_var = "RECEPTION_API_KEY"
```

Keys don't expire, and you can hold up to 10 per workspace. Treat one like a password: anyone with it acts as you. Don't put a personal key in a shared Claude Team or Enterprise connector, where everyone would use it.

## Tools {#tools}

The agent picks tools by itself; ask in your own words, such as "Which chats are waiting for an answer?" or "Reply to Maya that the fix ships Friday." Write tools act as you: a reply appears in the person's chat as yours, with a push when the app has push set up, as from the inbox.

### Inbox {#inbox-tools}

| Tool | What it does |
| --- | --- |
| `list_conversations` | Lists conversations, newest first, with filters for app, open or closed, unread, AI paused and time. |
| `get_conversation` | Reads one conversation with its messages and the person's details. |
| `search_conversations` | Finds conversations by words in messages, a name, an email or a user ID. |
| `reply` | Sends a reply as you. |
| `close_conversation` | Marks a conversation as resolved. |
| `reopen_conversation` | Opens a closed conversation again. |
| `mark_read` | Clears the team's unread count of a conversation. |
| `send_link` | Sends a saved [link card](/docs/links). |
| `send_offer` | Sends a [paywall card](/docs/paywalls). |
| `request_review` | Sends the [review card](/docs/reviews). |
| `pause_ai` | Takes a conversation over, so the AI stops replying in it. |
| `resume_ai` | Hands a conversation back to the AI. |

### People {#people-tools}

| Tool | What it does |
| --- | --- |
| `list_users` | Lists people as the Users page does, with search and a subscription filter. |
| `get_user` | Shows one person: identity, app and OS versions, push, custom fields, subscription, recent conversations and the cards they got. |
| `start_conversation` | Writes to a person first, in their latest conversation or a new one. |

### Apps and numbers {#app-tools}

| Tool | What it does |
| --- | --- |
| `list_apps` | Lists your apps with their App IDs, open and unread conversations, people, and which features are set up. |
| `get_app` | Shows one app with its links, sendable paywalls, saved button labels, review texts and the events its automations listen for. Sent and opened counts are shown to Admins. |
| `app_stats` | Admins only. Numbers for 7, 30 or 90 days next to the same numbers for the period before: conversations, replies, response time, AI handoffs, cards, subscription events and people seen. |

### AI knowledge {#knowledge-tools}

| Tool | What it does |
| --- | --- |
| `get_app_knowledge` | Reads the knowledge an app's AI replies use, and whether AI replies are on. Admins only. |
| `set_app_knowledge` | Replaces the knowledge text. Admins only. It doesn't switch AI replies on. |

### Automations {#automation-tools}

| Tool | What it does |
| --- | --- |
| `list_automations` | Lists automations with their event, state, audience, timing and results. |
| `get_automation` | Shows one automation, its recent runs and skips, and the `track` line your app needs. |
| `create_automation` | Creates an [automation](/docs/automations), switched off. Admins only. |
| `update_automation` | Changes an automation. Admins only. Changing the event, repeat, audience or actions of an active automation switches it off. |
| `delete_automation` | Deletes an automation. Admins only. Messages already sent stay. |

Automations are always switched on in the dashboard. The result of `create_automation` links to the automation and, for events your app reports, includes the `track` line to add.

## Prompts {#prompts}

Prompts are ready-made requests. Clients that support them list them as commands; in Claude Code, type `/` and pick one, such as `/reception:daily_overview`.

| Prompt | What you get |
| --- | --- |
| `daily_overview` | What needs attention now: conversations waiting for a reply, chats the AI is paused in, and the last 24 hours. Optionally for one app. |
| `summarize_conversation` | A short summary of one conversation, the person's situation and a suggested reply. It sends nothing until you say so. |
| `weekly_report` | The last 7 days compared with the week before, in plain words, with the top topics. Optionally for one app. |
| `knowledge_from_chats` | Questions people ask again and again that the AI knowledge doesn't answer, as proposed additions. It changes the knowledge only after you approve. |
| `suggest_automation` | One automation with the evidence for it, from subscription events, paywalls and chats. It creates the automation, switched off, only after you approve. |

## Permissions {#permissions}

Every tool runs with your permissions in the dashboard, in the workspace you connected. Members can read, reply and manage conversations; app numbers, AI knowledge and changes to automations need an Admin. A connection with read access only can't send or change anything. Sending messages follows the same subscription rule as the inbox.

## What stays in the dashboard {#dashboard-only}

Through MCP you can't create or delete apps, delete, block or reset people, delete conversations, add or edit links, paywalls or review texts, switch automations on, change integrations, push or Telegram settings, the chat's appearance, billing, members or the identity secret. These stay in the [dashboard](/docs/apps-team).

Conversations an agent reads go to that client's AI provider, under its terms. See [Data & privacy](/docs/privacy-and-data#external-services).

## Disconnect {#disconnect}

Open **Settings → Connections**. Select **Disconnect** next to a connected app, or **Revoke** next to an API key. It stops working with its next request. Leaving or being removed from a workspace disconnects all your connections there.

Removing Reception in the client alone doesn't always end the connection on our side. Disconnect it in Reception as well.
