72trust / 100

Courier

by courier.com in Email & messaging

MCP serverPassing, checked 2 h ago

Send notifications, manage templates, and configure integrations with Courier.

https://mcp.courier.com

This listing's own text contains instructions aimed at AI agents (see the security scan below). We withhold that text from agents and never recommend this service.

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
600 ms typical, 630 ms slowest 5%
Last check
2 h ago
Next check
in 4 h

How to call it

Add it to any MCP client that supports remote servers.

{
  "mcpServers": {
    "courier-2": {
      "type": "http",
      "url": "https://mcp.courier.com"
    }
  }
}

173 tools

  • list_messages

    List messages you've previously sent. Filter by status, recipient, notification, provider, tags, or tenant.

  • get_message

    Get the full details and status of a single message by its ID.

  • get_message_content

    Get the rendered content (HTML, text, subject) of a previously sent message.

  • get_message_history

    Get the event history for a message, showing each step in the delivery pipeline (enqueued, sent, delivered, etc.).

  • list_notifications

    List notification templates, newest first. Pass tags to return only templates carrying ALL of the given tags. Page through the rest with cursor.

  • get_notification_content

    Get the published content blocks of a notification template.

  • get_notification_draft_content

    Get the draft (unpublished) content blocks of a notification template.

  • create_notification

    Create 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 routing strategy via notification.routing.strategy_id to contr

  • get_notification

    Retrieve a notification template by ID. Optionally request draft, published, or a version such as v001.

  • replace_notification

    Replace 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_content

    Replace 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: [{ type: "meta", title: "Hello" }, { type: "text", content: "Em

  • put_notification_element

    Update 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_locale

    Set 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", elements: [{ id: "elem_meta_1", title: "Restablecer contraseña" },

  • list_notification_versions

    List 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_checks

    List 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_providers

    List configured provider integrations for the workspace.

  • get_provider

    Fetch a single provider configuration by ID.

  • list_provider_catalog

    List 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 "what can I connect Courier to" and "what do I need in order to se

  • get_routing_strategy

    Retrieve a routing strategy by ID. Returns the full entity including routing, channels, and providers.

  • list_routing_strategies

    List 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 needs for the full definition.

  • list_preference_sections

    List 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_preferences for what a particular person actually chose.

  • get_preference_section

    Get 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_topics

    List 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_topic

    Get 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 is wrong rather than the topic missing.

  • create_journey

    Create 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, and the API reports that as "exit node must be the last nod

  • get_journey

    Get a journey by ID. Pass version=draft to retrieve the working draft, or version=vN for a historical version. Defaults to published.

  • replace_journey

    Replace (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 separate step this tool cannot perform. This is where send, delay,

  • create_journey_template

    Create 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 must be wrapped in a channel block — the API rejects bare element

  • put_journey_template_content

    Replace 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_locale

    Set 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 tool cannot perform.

  • list_journeys

    List journey templates in the workspace, returning the journey IDs and version state of each. Optionally filter by version (published or draft).

  • list_journey_templates

    List 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_template

    Get 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_content

    Fetch 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_metrics

    Delivery 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` and `end` together, NEVER both. Supplying both is rejected. F

  • get_tenant

    Get a tenant by its ID.

  • list_tenants

    List 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_users

    List 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_id

    Get a user profile by their ID. Returns profile data including email, phone, and custom properties.

  • get_user_list_subscriptions

    List 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.

Security scan

  • Asks the agent to hide things from the user in tool:get_notification_metrics
    able and that someone should be told; do NOT tell the user to check or correct their template id, which sends them to fix something that
  • Unusually long description in tool:get_notification_metrics
    get_notification_metrics Delivery funnel for ONE notification template over time…

Recent checks

WhenResultHTTPTime
2 h agoPassed200626 ms
11 h agoPassed200600 ms
21 h agoPassed200542 ms
31 h agoPassed200548 ms
39 h agoPassed200635 ms
2 days agoPassed200630 ms
2 days agoPassed200575 ms