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

# Platform MCP

> Connect an AI client to your platform's support tools — tickets, users, subscriptions, and plans — without needing a channel.

## What is this?

The **Platform MCP** server (`/api/platform/v1/mcp`) is a second MCP endpoint aimed at platform owners and superadmins. Where the [Workspace MCP](/api-reference/mcp/overview.md) connects an AI assistant to one channel's inbox and contacts, the Platform MCP connects it to your platform-level operations: reading and working support tickets, looking up users, browsing plans and add-ons, and checking subscription status — across your whole platform, with no channel required.

> [!NOTE]
>
> The Platform MCP tab appears in the Developer Portal's **MCP** section only for platform owners and superadmins. Workspace staff cannot see or use it.

### Server details

| | |
| - | - |
| **URL** | `https://YOUR_DOMAIN/api/platform/v1/mcp` |
| **Transport** | Streamable HTTP |
| **Server name** | `platform-support` |
| **Auth** | API key, as an `Authorization: Bearer` header |
| **Scope** | Your own platform — no `X-Channel-Id` header needed |

## What can I do here?

* Read, triage, and reply to support tickets
* Add internal notes to tickets that only your team can see
* Assign tickets to team members, change status
* Look up platform users by name, email, or phone
* Check a user's active subscriptions and the plans or add-ons they are on
* Browse the plans and add-ons you sell

**Not available over Platform MCP** (stay in the dashboard): creating tickets on behalf of users, posting as the customer, deleting tickets, creating or editing plans, changing user subscriptions, or deleting users.

## How to use it

**1. Get your API key**

Open **Developer → API Keys** and generate or copy your key. The key owner must be a **platform owner** or **superadmin** — a workspace-only key returns `403`.

**2. Connect your client**

Use the setup snippet from the Developer Portal's **MCP → Platform MCP** tab, or copy one of the examples below. Replace `<API_KEY>` with your key.

**Claude Code**

```bash theme={null}
claude mcp add --transport http platform-support https://YOUR_DOMAIN/api/platform/v1/mcp \
  --header "Authorization: Bearer <API_KEY>"
```

Then run `/mcp` inside Claude Code to confirm the connection.

**Claude Desktop**

Settings → Developer → Edit Config, add to `claude_desktop_config.json` and restart. Needs Node.js.

```json theme={null}
{
  "mcpServers": {
    "platform-support": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://YOUR_DOMAIN/api/platform/v1/mcp",
        "--header",
        "Authorization:${AUTH}"
      ],
      "env": {
        "AUTH": "Bearer <API_KEY>"
      }
    }
  }
}
```

**Cursor / VS Code**

```json theme={null}
{
  "mcpServers": {
    "platform-support": {
      "url": "https://YOUR_DOMAIN/api/platform/v1/mcp",
      "headers": {
        "Authorization": "Bearer <API_KEY>"
      }
    }
  }
}
```

**Other**

```text theme={null}
URL:        https://YOUR_DOMAIN/api/platform/v1/mcp
Transport:  Streamable HTTP
Header:     Authorization: Bearer <API_KEY>
```

**3. Ask your assistant**

Once connected, ask in plain language. For example:

* "Show me the open support tickets, oldest first."
* "Add an internal note to ticket #42 saying the refund is pending."
* "Assign all unassigned tickets from today to me."
* "Which users are on the Pro plan?"
* "Look up the user [john@example.com](mailto:john@example.com) and show their subscription."

## How it stays safe

* Only platform owners and superadmins can connect. Role and platform membership are checked again on every call.
* Every call stays inside **your own platform**. There is no way to query another platform's data.
* Every change (reply, note, assignment, status change) is recorded in the activity log with the tool, the outcome, and the key version.
* Users, subscriptions, and add-ons are **read-only** here. Changing user plans, deleting tickets, creating tickets on behalf of users, and posting as the customer stay in the dashboard.
* Your client asks you to approve every write before it runs.

## Troubleshooting

| Code | What it means |
| - | - |
| `401` | Missing or invalid API key. Check the `Authorization` header. |
| `403` | The key owner is not a platform owner or superadmin, or the key is revoked. |
| `429` | Too many requests. Wait a minute and try again. |

* **`403` on every call.** The key owner needs the **platform owner** or **superadmin** role. Workspace-level keys are not accepted.
* **A tool doesn't appear.** The Platform MCP only exposes tools for tickets, users, subscriptions, and plans. If you need workspace tools (contacts, inbox, automations), use the [Workspace MCP](/api-reference/mcp/overview.md).

## Related docs

* [Workspace MCP](/api-reference/mcp/overview.md)
* [MCP tool catalog](/api-reference/mcp/tools.md)
* [Authentication](/api-reference/authentication.md)
* [Developer Portal](/workspace/developer-portal.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.