Skip to content
Back to search
100
MCP live MCP 2025-11-25 http

Courier

io.github.trycourier/courier

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

Uptime
100.0%
1 direct probes · 30d
Response
1227ms
last probe
Tools
144
callable
Resources
0
readable
Prompts
0
available

Tools · 144

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. Optionally filter by cursor.

get_notification_content

Get the published content blocks of a notification template.

list_providers

List configured provider integrations for the workspace.

get_provider

Fetch a single provider configuration by ID.

get_routing_strategy

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

list_preference_sections

List the workspace's preference sections. Each section embeds its topics.

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 ex…

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 cha…

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. Ex…

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.

get_audience

Get an audience by its ID, including its filter definition.

list_audience_members

List all members of an audience.

list_audiences

List all audiences in the workspace.

update_audience

Create or update an audience with a filter definition.

delete_audience

Delete an audience by its ID.

get_audit_event

Get a specific audit event by its ID.

list_audit_events

List audit events in the workspace. Useful for tracking API usage and changes.

generate_jwt_for_user

Generate a JWT authentication token for a user. Used for client-side SDK auth (Inbox, Preferences, etc.).

invoke_automation_template

Invoke an automation run from an existing automation template. Call list_automations first to get the template_id. Example: { template_id: "auto-onboarding", recipient: "user-123", data: { plan: "pro"…

invoke_ad_hoc_automation

Invoke an ad-hoc automation with inline steps. Valid step actions: send, send-list, delay, cancel, update-profile, invoke, fetch-data. To cancel a previously started automation, use the cancel_automat…

list_automations

List automation templates in the workspace. Always call this first to discover template_id values before calling invoke_automation_template. Optionally filter by version.

cancel_automation

Cancel a running automation by its cancelation_token. This invokes a second ad-hoc automation with a single cancel step. The token must match the cancelation_token set when the original automation was…

create_brand

Create a new brand. The API requires settings — omitting it returns a 400. If you do not have specific brand colors, omit settings and a safe default will be used automatically (black primary, white s…

get_brand

Get a brand by its ID.

list_brands

List all brands in the workspace.

update_brand

Replace an existing brand with new values.

delete_brand

Delete a brand by its ID.

create_bulk_job

Create a new bulk job for sending messages to multiple recipients. Workflow: create_bulk_job → add_bulk_users → run_bulk_job.

add_bulk_users

Add users to an existing bulk job.

run_bulk_job

Run a bulk job, triggering delivery to all added users.

get_bulk_job

Get the status of a bulk job.

list_bulk_users

List the users in a bulk job.

courier_installation_guide

Get the Courier SDK installation guide for a specific platform. For client-side SDKs (React, iOS, Android, Flutter, React Native), also generates a sample JWT.

track_inbound_event

Track an inbound event that can trigger automations. Requires event name, messageId (for deduplication), and properties.

list_lists

Get all lists. Optionally filter by pattern (e.g. 'example.list.*').

get_list

Get a list by its ID.

get_list_subscribers

Get all subscribers of a list.

create_list

Create or update a list by list ID.

subscribe_user_to_list

Subscribe a user to a list. Creates the list if it doesn't exist.

unsubscribe_user_from_list

Unsubscribe a user from a list.

delete_list

Delete a list by its ID.

restore_list

Restore a previously deleted list.

bulk_subscribe_to_list

Replace all subscribers on a list with the given recipients.

add_subscribers_to_list

Append subscribers to a list without removing existing subscribers.

cancel_message

Cancel a message that is currently being delivered. Returns the message details with updated status.

resend_message

Resend a previously sent message. Loads the original send request and enqueues a brand-new send to the same recipient with the same content, producing a new messageId; the original message is unchange…

get_notification_draft_content

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

create_notification

Create a V2 notification template. name is required. Provide content inline or set it immediately after creation via put_notification_content. To send with this template you must publish it first via …

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

archive_notification

Archive a notification template by ID.

list_notification_versions

List version history for a notification template.

publish_notification

Publish a notification template, making it available for sending. Must be called before send_message_template unless the template was created with state: 'PUBLISHED'. Publishes the current draft by de…

list_notification_checks

List checks for a notification submission.

update_notification_checks

Update check statuses for a notification submission.

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: "e…

put_notification_element

Update a single element within a V2 notification template.

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", loc…

cancel_notification_submission

Cancel a notification template submission.

get_user_profile_by_id

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

create_or_merge_user

Create a new user profile or merge supplied values into an existing profile (POST). Existing fields not included are preserved.

replace_profile

Fully replace a user profile (PUT). All existing data is overwritten; include every field you want to keep.

patch_profile

Partially update a user profile via JSON Patch (RFC 6902). Use add/replace/remove operations on specific profile paths.

delete_profile

Delete a user profile permanently.

get_user_list_subscriptions

Get all list subscriptions for a user.

subscribe_user_to_lists

Subscribe a user to one or more lists. Creates lists that do not exist.

delete_user_list_subscriptions

Delete all list subscriptions for a user.

send_message

Send a message to a user using inline title and body content (no template). Optionally specify routing channels.

send_message_template

Send a message to a user using a published notification template. The template must be published before sending — call publish_notification first if needed. Example: { user_id: "user-123", template: "…

send_message_to_list

Send a message to all subscribers of a list using inline title and body content.

send_message_to_list_template

Send a message to all subscribers of a list using a notification template.

get_tenant

Get a tenant by its ID.

create_or_update_tenant

Create or replace a tenant. Tenants represent organizations or groups that users belong to.

list_tenants

List all tenants in the workspace.

delete_tenant

Delete a tenant by its ID.

list_tenant_users

List users associated with a tenant.

update_tenant_preference

Set the default notification preference for a subscription topic on a tenant. This controls tenant-level defaults — it does NOT set per-user preferences (use the user preferences API for that). The to…

delete_tenant_preference

Remove default notification preference for a topic from a tenant.

list_tenant_templates

List notification templates configured for a tenant.

get_tenant_template

Get a tenant notification template association by template ID.

replace_tenant_template

Create or replace a tenant notification template (draft unless published is true).

publish_tenant_template

Publish a version of a tenant notification template.

get_tenant_template_version

Get a specific version of a tenant notification template (e.g. latest, published, or v1).

delete_tenant_template

Delete a tenant notification template. Returns 204 on success, 404 if the template does not exist for this tenant.

get_translation

Get a translation for a specific locale (e.g. "en_US", "fr_FR").

update_translation

Create or update a translation for a specific locale.

list_user_push_tokens

List all push/device tokens for a user.

get_user_push_token

Get a specific push/device token for a user.

create_or_replace_user_push_token

Create or replace a push/device token for a user.

bulk_add_user_tokens

Add multiple push/device tokens for a user in one request. Overwrites matching existing tokens.

patch_user_token

Apply a JSON Patch (RFC 6902) to a specific push token.

delete_user_token

Delete a specific push token for a user.

get_user_preferences

Get a user's notification preferences (subscriptions, opt-outs, channel preferences).

get_user_preference_topic

Get a user's preference for a specific subscription topic.

update_user_preference_topic

Update a user's preference for a specific subscription topic (opt in, opt out, or set channel preferences).

delete_user_preference_topic

Delete a user's preference for a specific subscription topic, reverting it to the topic's default status.

list_user_tenants

List all tenants a user belongs to.

add_user_to_tenant

Add a user to a tenant.

remove_user_from_tenant

Remove a user from a tenant.

bulk_add_user_tenants

Add a user to multiple tenants at once. A custom profile can be supplied per tenant.

remove_all_user_tenants

Remove a user from all tenants.

bulk_update_user_preferences

Additively create or update a user's preferences for one or more topics in a single request. Only the topics in the body are touched; existing overrides for other topics are left untouched. Partial-su…

bulk_replace_user_preferences

Replace a user's complete set of preference overrides in one request. The topics in the body become the recipient's entire override set: listed topics are created or updated, and every existing overri…

archive_request

Archive a send request and all its associated messages by request ID.

create_routing_strategy

Create a routing strategy defining how notifications are delivered across channels and providers.

replace_routing_strategy

Replace a routing strategy. Full document replacement; missing optional fields are cleared.

archive_routing_strategy

Archive a routing strategy. The strategy must not have associated notification templates; unlink all templates before archiving.

list_routing_strategies

List routing strategies in the workspace. Returns metadata only; use get for full details.

list_routing_strategy_notifications

List notification templates associated with a routing strategy. Useful for checking linked templates before archiving.

list_journeys

List journey templates in the workspace. Call this first to discover journey IDs before calling invoke_journey, get_journey, or replace_journey. Optionally filter by version (published or draft).

invoke_journey

Invoke a journey run from a journey template. Call list_journeys first to find the template_id. Example: { template_id: "j-onboarding", user_id: "user-123", data: { plan: "pro" } }.

publish_journey

Publish the current draft of a journey, making it live and invokable. Pass version to roll back to a prior published version instead of publishing the draft. Returns 404 if there is no draft to publis…

archive_journey

Archive a journey. Archived journeys cannot be invoked but existing runs continue to completion.

list_journey_versions

List published versions of a journey, ordered most recent first.

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…

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.

replace_journey_template

Replace the draft of a journey-scoped notification template. Full document replacement. Call publish_journey_template afterwards to make it live.

archive_journey_template

Archive a journey-scoped notification template. Archived templates cannot be sent.

publish_journey_template

Publish the current draft of a journey-scoped notification template. Optionally pass version to roll back to a prior version.

list_journey_template_versions

List published versions of a journey-scoped notification template, ordered most recent first.

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.

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.

cancel_journey

Cancel journey runs. Supply EXACTLY ONE of cancelation_token (cancels every run associated with the token) or run_id (cancels a single run). Cancelation is idempotent: a run that already finished or w…

list_provider_catalog

List available provider types from the catalog with their configuration schemas.

create_provider

Create a new provider (integration) configuration. Once routing strategies or notification templates reference this config, credential or settings mistakes can affect live sends—confirm provider key a…

update_provider

Replace an existing provider configuration. Full replacement — retrieve current config with get_provider first; omitted optional fields are cleared. Changing API keys or settings affects live delivery…

delete_provider

Delete a provider configuration. Returns 409 if the provider is still referenced by routing or notifications.

create_preference_section

Create a preference section in your workspace. The section id is generated and returned. Add topics afterwards with create_preference_topic.

get_preference_section

Retrieve a preference section by id, including its topics.

replace_preference_section

Replace a preference section. Full document replacement; missing optional fields are cleared. Topics attached to the section are unaffected.

archive_preference_section

Archive a preference section. The section must be empty: delete its topics first, otherwise the request fails with 409.

publish_preferences

Publish the workspace's preferences page. Takes a snapshot of every section with its topics under a new published version, making the current state visible on the hosted preferences page.

list_preference_topics

List the topics in a preference section.

create_preference_topic

Create a subscription preference topic inside a section. The topic id is generated and returned. Fails with 404 if the section does not exist.

get_preference_topic

Retrieve a topic within a section. Returns 404 if the section or topic does not exist, or the topic belongs to a different section.

replace_preference_topic

Replace a topic within a section. Full document replacement; missing optional fields are cleared.

archive_preference_topic

Archive a topic within a section.

release_digest

Release a digest schedule early — send what users have collected so far now instead of waiting for the scheduled time. A 204 is also returned when the schedule has no in-progress instances to release.

list_digest_instances

List the digest instances for a schedule. Each instance represents the events accumulated for a single user against the schedule, useful for monitoring accumulation before a digest is released.

How to use

Add to your Claude Desktop / Cursor / Cline MCP config:

{
  "mcpServers": {
    "courier": {
      "url": "https://mcp.courier.com/mcp",
      "transport": "http"
    }
  }
}