
We built an MCP server that lets your AI agent handle customer messaging end to end. Sending, tracking, debugging, user management, preferences, automations. If you can do it in Courier, your agent can too.
It works with Cursor, Claude Code, Claude Desktop, Windsurf, VS Code, and the OpenAI Responses API. One config block to set up.
Here's how you can use the MCP to improve your workflows:
Plus tenants, bulk sends, brands, translations, auth tokens, audit events, and more.
Everything is backed by the official @trycourier/courier Node SDK with structured error handling, so your agent gets status codes and messages it can act on.
You need a Courier API key and one config step for your tool of choice. Grab a key from your Courier Settings, then pick your setup below.
Cursor has a one-click install on the docs page, or you can add it manually. Go to Cursor Settings > Tools & Integrations > MCP Tools > New MCP Server and add:
{"mcpServers": {"courier": {"url": "https://mcp.courier.com","headers": {"api_key": "YOUR_COURIER_API_KEY"}}}}
Claude Code is a single command:
claude mcp add --transport http courier https://mcp.courier.com --header api_key:YOUR_COURIER_API_KEY
The MCP docs have setup instructions for Claude Desktop, Windsurf, VS Code, and the OpenAI Responses API. The config is similar across all of them: point your MCP client at https://mcp.courier.com with your API key, and every tool is available immediately.
MCP gives agents structured tool access, but it's not the only way to connect your agent to Courier. We also have a CLI that covers the full API with a consistent courier [resource] <command> [flags] pattern.
The CLI is a better fit when you're working in a terminal-first environment, piping output between commands, writing shell scripts, or running Courier operations in CI/CD pipelines. It also works well with agents that have direct shell access (like Cursor's agent mode or Claude Code), since they can run --help on any command and figure out the rest.
MCP is the better choice when your agent connects through a tool interface instead of a shell, like Claude Desktop, the OpenAI Responses API, or enterprise environments where terminal access is locked down. It's also the right path if you're building a chatbot or support agent that needs Courier access programmatically.
You don't have to pick one. They cover the same API surface, so use whichever fits your workflow.
Get started: Set up the MCP server | Grab the CLI | Get an API key

Know the moment users change notification preferences
Every preference change in Courier now reaches your systems two ways. A `preferences:user:updated` webhook fires the moment a user opts in, opts out, or changes a topic's channels, wherever they made the change. `GET /preferences/logs` returns the history, newest first, with the previous value where Courier knows it. Keep your CRM, warehouse, or marketing tools in step with what users chose.

Test Courier emails end to end with your AI agent
Give your coding agent an AgentMail inbox, and it can test your Courier emails the way a user would: send the change, check what arrives, review how it renders, and fix what it finds before the change reaches Production.

Let your agent check every email before it ships
Courier Device Preview gives your coding agent real screenshots from Outlook, Gmail, and Apple Mail. Here's the prompt and workflow to have it check every email, fix the draft, and check again before you publish.