Courier
by @trycourier · io.github.trycourier/courier
Send notifications, manage templates, and configure integrations with Courier.
- Category
- Messaging and email
- Connection
- Remote (HTTP)
- Tools
- 60 reported
- Status
- Online
Connect it to your AI
Claude Code
claude mcp add --transport http courier https://mcp.courier.com/Claude, ChatGPT, Cursor and other apps
Add it as a custom connector with this URL (Streamable HTTP):
https://mcp.courier.com/This server expects extra headers, usually an API key from its maker.
Cursor, VS Code and other apps (mcp.json)
{
"mcpServers": {
"courier": {
"url": "https://mcp.courier.com/"
}
}
}Tools it offers
60 tools, as the server itself reported during our check on Oct 31, 2026.
list_messagesList messages you've previously sent. Filter by status, recipient, notification, provider, tags, or tenant.get_messageGet the full details and status of a single message by its ID.get_message_contentGet the rendered content (HTML, text, subject) of a previously sent message.get_message_historyGet the event history for a message, showing each step in the delivery pipeline (enqueued, sent, delivered, etc.).list_notificationsList notification templates, newest first. Pass tags to return only templates carrying ALL of the given tags. Page through the rest with cursor.get_notification_contentGet the published content blocks of a notification template.get_notification_draft_contentGet the draft (unpublished) content blocks of a notification template.create_notificationCreate a V2 notification template. name is required. Content may be provided inline or set separately afterwards. A newly created template is a draft; making it live is a separate step this tool cannot perform. Link a roget_notificationRetrieve a notification template by ID. Optionally request draft, published, or a version such as v001.replace_notificationReplace a notification template entirely (full document PUT). The template stays a draft; making it live is a separate step this tool cannot perform.put_notification_contentReplace the elemental content of a V2 notification template. Overwrites all elements. Use channel elements to target specific channels. Multi-channel example: elements: [{ type: "channel", channel: "email", elements: [{put_notification_elementUpdate a single element within a V2 notification template. The template stays a draft; making it live is a separate step this tool cannot perform.put_notification_localeSet locale-specific content overrides for a V2 notification template. Each element override must reference an existing element by its id. Example for Spanish locale: { notification_id: "nt_01abc", locale_id: "es", elemenlist_notification_versionsList the version history of a notification template — each published version with when it was created. Use this to say what changed and when, or to find the version string get_notification accepts.list_notification_checksList the checks recorded against one notification submission. Checks are the gates a submission has to clear before it goes out, so a failing check here is the reason a template is stuck rather than live.list_providersList configured provider integrations for the workspace.get_providerFetch a single provider configuration by ID.list_provider_catalogList the provider integrations Courier supports and the configuration each one expects. This is the catalog of what COULD be connected, not what this workspace has configured — use list_providers for that. Answers "whatget_routing_strategyRetrieve a routing strategy by ID. Returns the full entity including routing, channels, and providers.list_routing_strategiesList the workspace's routing strategies, returning metadata only. A routing strategy decides which channel a notification takes and in what order. Use this to find the rs_-prefixed strategy ID that get_routing_strategy nlist_preference_sectionsList the workspace's preference sections, each with the topics inside it. One call returns the whole opt-in surface: everything a user could subscribe to or opt out of. This is what the workspace DEFINES — use get_user_pget_preference_sectionGet one preference section by ID, including its topics. Use this when you already know which section you need; list_preference_sections returns every section with its topics in one call.list_preference_topicsList the subscription topics inside one preference section. A topic is the individual thing a user opts in or out of, and its ID is what get_user_preference_topic takes.get_preference_topicGet one subscription topic within a section, including its default opt-in state. Returns 404 if the section or topic does not exist, or if the topic belongs to a different section — so a 404 here can mean the pairing iscreate_journeyCreate a new journey. Always created as a draft; making it live is a separate step this tool cannot perform. Send two nodes: the trigger, and an exit node last. Both are required — a create with no exit node is rejected,get_journeyGet a journey by ID. Pass version=draft to retrieve the working draft, or version=vN for a historical version. Defaults to published.replace_journeyReplace (update) a journey draft. Full document replacement — include all nodes and properties in the body, the trigger included; anything omitted is deleted. The journey stays a draft; making the change live is a separacreate_journey_templateCreate a notification template scoped to a journey. Always created as a draft; making it live is a separate step this tool cannot perform. The template can then be referenced in journey send nodes. content.elements mustput_journey_template_contentReplace the elemental content of a journey-scoped notification template. Overwrites all elements. The template stays a draft; making it live is a separate step this tool cannot perform.put_journey_template_localeSet locale-specific content overrides for a journey-scoped notification template. Each element override must reference an existing element by its id. The template stays a draft; making it live is a separate step this toolist_journeysList journey templates in the workspace, returning the journey IDs and version state of each. Optionally filter by version (published or draft).list_journey_templatesList notification templates scoped to a journey. Journey-scoped templates can only be used by send nodes within the same journey. Call this to discover template IDs before wiring send nodes in replace_journey.get_journey_templateGet a journey-scoped notification template by notification ID. Pass version=draft to retrieve the working draft (required before the template has been published). Defaults to published.get_journey_template_contentFetch the elemental content of a journey-scoped notification template. Pass version=draft for the working draft, or vN for a historical version. Defaults to published.get_notification_metricsDelivery funnel for ONE notification template over time: sent, delivered, opened, clicked, errors and undeliverable, per provider and channel, in time buckets. Choosing the window — supply EITHER `lookback` OR `start` anget_tenantGet a tenant by its ID.list_tenantsList the workspace's tenants. A tenant is a customer or organisation whose users, branding and preferences are scoped separately; this answers "what tenants do I have" and gives you the tenant IDs get_tenant needs.list_tenant_usersList the users associated with one tenant. Use this to confirm whether someone actually belongs to the tenant whose branding or preferences you are reasoning about.get_user_profile_by_idGet a user profile by their ID. Returns profile data including email, phone, and custom properties.get_user_list_subscriptionsList the lists one user is subscribed to. Use this when explaining why a user received something — a subscription here is the reason a list-addressed send reached them, and its absence rules that path out.
Questions
What is the Courier MCP server?
Send notifications, manage templates, and configure integrations with Courier. It is made by @trycourier and listed in the official MCP Registry as io.github.trycourier/courier. MCP (Model Context Protocol) is the open standard that lets AI apps like Claude, ChatGPT and Cursor use outside tools.
How do I add Courier to Claude?
In the Claude app or claude.ai, open Settings, then Connectors, choose "Add custom connector" and paste https://mcp.courier.com/. In Claude Code, run: claude mcp add --transport http courier https://mcp.courier.com/
How do I add Courier to ChatGPT?
ChatGPT can use remote MCP servers as connectors. In ChatGPT settings, under Apps and Connectors, turn on developer mode if asked, create a new connector and paste https://mcp.courier.com/.
How do I add Courier to Cursor?
Open Cursor settings, go to MCP, choose "Add new MCP server" (or edit ~/.cursor/mcp.json) and add: { "mcpServers": { "courier": { "url": "https://mcp.courier.com/" } } }
Does Courier work right now?
Yes. It responded when we last checked on 31 Oct 2026. We check remote MCP servers every day.
What can Courier do?
It gives your AI 60 tools, including list_messages, get_message, get_message_content, get_message_history, list_notifications. The full list is on this page.
Is this your server? Get the badge for your README
Markdown (GitHub README)
[](https://chen.media/mcp/github-trycourier-courier)HTML (switches to dark mode on its own)
<a href="https://chen.media/mcp/github-trycourier-courier"><picture><source media="(prefers-color-scheme: dark)" srcset="https://chen.media/mcp/badge/github-trycourier-courier.svg?theme=dark"><img src="https://chen.media/mcp/badge/github-trycourier-courier.svg" alt="Listed on chen.media/mcp" height="40"></picture></a>More in Messaging and email
See allPickly
usepickly.comMake group polls from a chat and check who's winning. Voters need no account.
VerifyPulse: email deliverability checks
@MohDev212Daily SPF, DKIM, DMARC and MX monitoring with webhook alerts, plus free sending-domain audits.
Portaur
portaur.comAsk Portaur about its services and leave a message or callback request for the team.
Odile answering lines
odilelabs.comA phone line for your app or business that answers calls, takes messages and bookings.
disdex: Discord server search
disdex.ioFind public Discord servers by topic, language and size, check invite links, see member growth.
Inkbind
onmax.meTurn a story, memoir or recipes from the chat into a printed hardcover or softcover book.