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

# MCP server

> Connect Claude, Cursor or your own agent to an InstantCampaign workspace over the Model Context Protocol.

`POST https://instantcampaign.ai/api/mcp` is a stateless MCP server that uses the Streamable HTTP transport. It authenticates with a workspace API key that has the `mcp` scope, or with a key that has no scopes.

```bash theme={null}
curl -X POST https://instantcampaign.ai/api/mcp \
  -H "Authorization: Bearer ic_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }'
```

To use it from an MCP client, add a remote (HTTP) server with the URL above and the header `Authorization: Bearer ic_YOUR_KEY`.

## Protocol

* Methods: `initialize`, `ping`, `tools/list` and `tools/call`. Supported protocol versions are `2025-06-18`, `2025-03-26` and `2024-11-05`.
* Each POST gets a single JSON response. There is no SSE stream and no session ID, and `GET` and `DELETE` answer `405`.
* Send one JSON-RPC message per request, not a batch. A notification (a message with no `id`) gets an empty `202`.
* The limit is 60 requests/minute per workspace, and bodies are capped at 1 MB.

## Tools

The tools act on the key's workspace with member-level permissions:

* **Read:** workspace overview, templates, campaigns, campaign performance, campaign plans, A/B test results, campaign proposals, the message log, audience summary, one contact's subscription status, analytics, website analytics, usage, brand configuration, and a rendered template preview.
* **Create:** draft or duplicate a template, generate copy or an image, create a campaign from a brief (its plan waits for approval in the app), or create a draft journey from a description.

No tool sends or schedules email. Personal data in tool results is redacted before it reaches the client. Call `tools/list` for the current list and each tool's input schema.
