Send notifications, manage templates, and configure integrations with Courier.
healthy
status
144
tools exposed
1108ms
connect latency
e3dda9819bee
schema fingerprint
Tools (144)
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_automation tool instead.
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 started. Note: spelling is "cancelation_token" (single "l").
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 secondary). Example: { name: "Acme", settings: { colors: { primary: "#1a73e8", secondary: "#ffffff" }
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.
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.).
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 unchanged. Rate limited per message (429 on rapid repeats).
list_notifications
List notification templates. Optionally filter by 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. Provide content inline or set it immediately after creation via put_notification_content. To send with this template you must publish it first via publish_notification (or pass state: 'PUBLISHED' on create). Link a routing strategy via notificatio
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 default; pass version (e.g. 'v001') to publish a specific historical version. Returns 204 on success.
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: "email", elements: [{ type: "meta", title: "Hello" }, { type: "text", content: "Email body" }] }, { ty
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", locale_id: "es", elements: [{ id: "elem_meta_1", title: "Restablecer contraseña" }, { id: "elem_text_1"
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: "nt_01abc123", data: { name: "Alex", resetUrl: "https://app.example.com/reset" } }.
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 topic_id must already exist as a subscription topic in the workspace; a 404 means the topic has not be
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-success: valid topics are written and returned in `items`, unapplicable ones collected in `errors`.
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 override not included is reset to its topic default. An empty `topics` array clears all overrides. Validat
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.
get_routing_strategy
Retrieve a routing strategy by ID. Returns the full entity including routing, 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" } }.
create_journey
Create a new journey. Defaults to DRAFT state. Send nodes are not allowed on create — create the shell with a trigger node, then call replace_journey to add send nodes after linking notification templates. Call publish_journey to make it live. Node ids are server-generated; do NOT include an id fiel
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. Call publish_journey afterwards to make changes live, or pass state: "PUBLISHED" to publish immediately. Send node template IDs must already be scoped to this journey.
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 publish.
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_journey.
create_journey_template
Create a notification template scoped to a journey. Defaults to DRAFT; pass state: "PUBLISHED" to publish on create. The template can then be referenced in journey send nodes. Example: { journey_id: "j-abc", channel: "email", notification: { name: "Welcome Email", tags: [], brand: null, subscription
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_content
Replace the elemental content of a journey-scoped notification template. Overwrites all elements. Call publish_journey_template afterwards to make it live.
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 was already canceled is left unchanged.
list_providers
List configured provider integrations for the workspace.
get_provider
Fetch a single provider configuration by ID.
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 and settings against list_provider_catalog before saving. The provider field must be a known Courier
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 if this integration is in use.
delete_provider
Delete a provider configuration. Returns 409 if the provider is still referenced by routing or notifications.
list_preference_sections
List the workspace's preference sections. Each section embeds its topics.
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.
Endpoint
https://mcp.courier.com Category: Communication · Last checked: 2026-07-30T14:00:04Z
Monitor your own MCP server
Get alerted the moment yours goes down, a tool schema drifts, or an upstream silently breaks.
What this means. This server responded to the MCP handshake and listed its tools without authentication. The schema fingerprint lets us flag if tool signatures silently change (schema drift) between checks.