io.github.trycourier/courier
repo:https://github.com/trycourier/courier-mcp
Send notifications, manage templates, and configure integrations with Courier.
- transport:
- remote
- credential class:
- self-provisionable
Owner verification
Not yet verified. Verifying proves you control this server and is free, permanently — it never changes a published score.
Start verification →Tools
- add_bulk_usersshallow
Add users to an existing bulk job.
- add_subscribers_to_listshallow
Append subscribers to a list without removing existing subscribers.
- add_user_to_tenantshallow
Add a user to a tenant.
- archive_journeyshallow
Archive a journey. Archived journeys cannot be invoked but existing runs continue to completion.
- archive_journey_templateshallow
Archive a journey-scoped notification template. Archived templates cannot be sent.
- archive_notificationshallow
Archive a notification template by ID.
- archive_preference_sectionshallow
Archive a preference section. The section must be empty: delete its topics first, otherwise the request fails with 409.
- archive_preference_topicshallow
Archive a topic within a section.
- archive_requestshallow
Archive a send request and all its associated messages by request ID.
- archive_routing_strategyshallow
Archive a routing strategy. The strategy must not have associated notification templates; unlink all templates before archiving.
- bulk_add_user_tenantsshallow
Add a user to multiple tenants at once. A custom profile can be supplied per tenant.
- bulk_add_user_tokensshallow
Add multiple push/device tokens for a user in one request. Overwrites matching existing tokens.
- bulk_replace_user_preferencesshallow
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. Validation-atomic (all-or-nothing).
- bulk_subscribe_to_listshallow
Replace all subscribers on a list with the given recipients.
- bulk_update_user_preferencesshallow
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`.
- cancel_automationshallow
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").
- cancel_journeyshallow
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.
- cancel_messageshallow
Cancel a message that is currently being delivered. Returns the message details with updated status.
- cancel_notification_submissionshallow
Cancel a notification template submission.
- courier_installation_guideshallow
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.
- create_brandshallow
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" } } }.
- create_bulk_jobshallow
Create a new bulk job for sending messages to multiple recipients. Workflow: create_bulk_job → add_bulk_users → run_bulk_job.
- create_journeyshallow
Create a new journey. Always created as a draft; making it live is a separate step this tool cannot perform. 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. Node ids are server-generated; do NOT include an id field. Example: { name: "Welcome Journey", nodes: [{ type: "trigger", trigger_type: "api-invoke" }], enabled: true }.
- create_journey_templateshallow
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. Example: { journey_id: "j-abc", channel: "email", notification: { name: "Welcome Email", tags: [], brand: null, subscription: null, content: { version: "2022-01-01", elements: [{ type: "text", content: "Hello!" }] } } }.
- create_listshallow
Create or update a list by list ID.
- create_notificationshallow
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 notification.routing.strategy_id to control which channels are used. Example: { notification: { name: 'welcome-email', tags: [], brand: null, subscription: null, routing: { strategy_id: 'rs_01abc' }, content: { version: '2022-01-01', elements: [] } } }.
- create_or_merge_usershallow
Create a new user profile or merge supplied values into an existing profile (POST). Existing fields not included are preserved.
- create_or_replace_user_push_tokenshallow
Create or replace a push/device token for a user.
- create_or_update_tenantshallow
Create or replace a tenant. Tenants represent organizations or groups that users belong to.
- create_preference_sectionshallow
Create a preference section in your workspace. The section id is generated and returned. Add topics afterwards with create_preference_topic.
- create_preference_topicshallow
Create a subscription preference topic inside a section. The topic id is generated and returned. Fails with 404 if the section does not exist.
- create_providershallow
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 provider key.
- create_routing_strategyshallow
Create a routing strategy defining how notifications are delivered across channels and providers.
- delete_audienceshallow
Delete an audience by its ID.
- delete_brandshallow
Delete a brand by its ID.
- delete_listshallow
Delete a list by its ID.
- delete_profileshallow
Delete a user profile permanently.
- delete_providershallow
Delete a provider configuration. Returns 409 if the provider is still referenced by routing or notifications.
- delete_tenantshallow
Delete a tenant by its ID.
- delete_tenant_preferenceshallow
Remove default notification preference for a topic from a tenant.
- delete_tenant_templateshallow
Delete a tenant notification template. Returns 204 on success, 404 if the template does not exist for this tenant.
- delete_user_list_subscriptionsshallow
Delete all list subscriptions for a user.
- delete_user_preference_topicshallow
Delete a user's preference for a specific subscription topic, reverting it to the topic's default status.
- delete_user_tokenshallow
Delete a specific push token for a user.
- generate_jwt_for_usershallow
Generate a JWT authentication token for a user. Used for client-side SDK auth (Inbox, Preferences, etc.).
- get_audienceshallow
Get an audience by its ID, including its filter definition.
- get_audit_eventshallow
Get a specific audit event by its ID.
- get_brandshallow
Get a brand by its ID.
- get_bulk_jobshallow
Get the status of a bulk job.
- get_journeyshallow
Get a journey by ID. Pass version=draft to retrieve the working draft, or version=vN for a historical version. Defaults to published.
- get_journey_templateshallow
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_contentshallow
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_listshallow
Get a list by its ID.
- get_list_subscribersshallow
Get all subscribers of a list.
- get_messageshallow
Get the full details and status of a single message by its ID.
- get_message_contentshallow
Get the rendered content (HTML, text, subject) of a previously sent message.
- get_message_historyshallow
Get the event history for a message, showing each step in the delivery pipeline (enqueued, sent, delivered, etc.).
- get_notificationshallow
Retrieve a notification template by ID. Optionally request draft, published, or a version such as v001.
- get_notification_contentshallow
Get the published content blocks of a notification template.
- get_notification_draft_contentshallow
Get the draft (unpublished) content blocks of a notification template.
- get_preference_sectionshallow
Retrieve a preference section by id, including its topics.
- get_preference_topicshallow
Retrieve a topic within a section. Returns 404 if the section or topic does not exist, or the topic belongs to a different section.
- get_providershallow
Fetch a single provider configuration by ID.
- get_routing_strategyshallow
Retrieve a routing strategy by ID. Returns the full entity including routing, channels, and providers.
- get_tenantshallow
Get a tenant by its ID.
- get_tenant_templateshallow
Get a tenant notification template association by template ID.
- get_tenant_template_versionshallow
Get a specific version of a tenant notification template (e.g. latest, published, or v1).
- get_translationshallow
Get a translation for a specific locale (e.g. "en_US", "fr_FR").
- get_user_list_subscriptionsshallow
Get all list subscriptions for a user.
- get_user_preference_topicshallow
Get a user's preference for a specific subscription topic.
- get_user_preferencesshallow
Get a user's notification preferences (subscriptions, opt-outs, channel preferences).
- get_user_profile_by_idshallow
Get a user profile by their ID. Returns profile data including email, phone, and custom properties.
- get_user_push_tokenshallow
Get a specific push/device token for a user.
- invoke_ad_hoc_automationshallow
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.
- invoke_automation_templateshallow
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_journeyshallow
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" } }.
- list_audience_membersshallow
List all members of an audience.
- list_audiencesshallow
List all audiences in the workspace.
- list_audit_eventsshallow
List audit events in the workspace. Useful for tracking API usage and changes.
- list_automationsshallow
List automation templates in the workspace. Always call this first to discover template_id values before calling invoke_automation_template. Optionally filter by version.
- list_brandsshallow
List all brands in the workspace.
- list_bulk_usersshallow
List the users in a bulk job.
- list_digest_instancesshallow
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.
- list_journey_template_versionsshallow
List published versions of a journey-scoped notification template, ordered most recent first.
- list_journey_templatesshallow
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.
- list_journey_versionsshallow
List published versions of a journey, ordered most recent first.
- list_journeysshallow
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).
- list_listsshallow
Get all lists. Optionally filter by pattern (e.g. 'example.list.*').
- list_messagesshallow
List messages you've previously sent. Filter by status, recipient, notification, provider, tags, or tenant.
- list_notification_checksshallow
List checks for a notification submission.
- list_notification_versionsshallow
List version history for a notification template.
- list_notificationsshallow
List notification templates. Optionally filter by cursor.
- list_preference_sectionsshallow
List the workspace's preference sections. Each section embeds its topics.
- list_preference_topicsshallow
List the topics in a preference section.
- list_provider_catalogshallow
List available provider types from the catalog with their configuration schemas.
- list_providersshallow
List configured provider integrations for the workspace.
- list_routing_strategiesshallow
List routing strategies in the workspace. Returns metadata only; use get for full details.
- list_routing_strategy_notificationsshallow
List notification templates associated with a routing strategy. Useful for checking linked templates before archiving.
- list_tenant_templatesshallow
List notification templates configured for a tenant.
- list_tenant_usersshallow
List users associated with a tenant.
- list_tenantsshallow
List all tenants in the workspace.
- list_user_push_tokensshallow
List all push/device tokens for a user.
- list_user_tenantsshallow
List all tenants a user belongs to.
- patch_profileshallow
Partially update a user profile via JSON Patch (RFC 6902). Use add/replace/remove operations on specific profile paths.
- patch_user_tokenshallow
Apply a JSON Patch (RFC 6902) to a specific push token.
- publish_journeyshallow
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.
- publish_journey_templateshallow
Publish the current draft of a journey-scoped notification template. Optionally pass version to roll back to a prior version.
- publish_notificationshallow
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.
- publish_preferencesshallow
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.
- publish_tenant_templateshallow
Publish a version of a tenant notification template.
- put_journey_template_contentshallow
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_localeshallow
Set locale-specific content overrides for a journey-scoped notification template. Each element override must reference an existing element by its id.
- put_notification_contentshallow
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" }] }, { type: "channel", channel: "push", elements: [{ type: "meta", title: "Hello" }, { type: "text", content: "Push body" }] }, { type: "channel", channel: "inbox", elements: [{ type: "text", content: "Inbox plain text only" }] }].
- put_notification_elementshallow
Update a single element within a V2 notification template.
- put_notification_localeshallow
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", content: "Haga clic en el enlace para restablecer su contraseña." }] }.
- release_digestshallow
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.
- remove_all_user_tenantsshallow
Remove a user from all tenants.
- remove_user_from_tenantshallow
Remove a user from a tenant.
- replace_journeyshallow
Replace (update) a journey draft. Full document replacement — include all nodes and properties in the body. The journey stays a draft; making the change live is a separate step this tool cannot perform. Send node template IDs must already be scoped to this journey.
- replace_journey_templateshallow
Replace the draft of a journey-scoped notification template. Full document replacement. Call publish_journey_template afterwards to make it live.
- replace_notificationshallow
Replace a notification template entirely (full document PUT).
- replace_preference_sectionshallow
Replace a preference section. Full document replacement; missing optional fields are cleared. Topics attached to the section are unaffected.
- replace_preference_topicshallow
Replace a topic within a section. Full document replacement; missing optional fields are cleared.
- replace_profileshallow
Fully replace a user profile (PUT). All existing data is overwritten; include every field you want to keep.
- replace_routing_strategyshallow
Replace a routing strategy. Full document replacement; missing optional fields are cleared.
- replace_tenant_templateshallow
Create or replace a tenant notification template (draft unless published is true).
- resend_messageshallow
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).
- restore_listshallow
Restore a previously deleted list.
- run_bulk_jobshallow
Run a bulk job, triggering delivery to all added users.
- send_messageshallow
Send a message to a user using inline title and body content (no template). Optionally specify routing channels.
- send_message_templateshallow
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_listshallow
Send a message to all subscribers of a list using inline title and body content.
- send_message_to_list_templateshallow
Send a message to all subscribers of a list using a notification template.
- subscribe_user_to_listshallow
Subscribe a user to a list. Creates the list if it doesn't exist.
- subscribe_user_to_listsshallow
Subscribe a user to one or more lists. Creates lists that do not exist.
- track_inbound_eventshallow
Track an inbound event that can trigger automations. Requires event name, messageId (for deduplication), and properties.
- unsubscribe_user_from_listshallow
Unsubscribe a user from a list.
- update_audienceshallow
Create or update an audience with a filter definition.
- update_brandshallow
Replace an existing brand with new values.
- update_notification_checksshallow
Update check statuses for a notification submission.
- update_providershallow
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.
- update_tenant_preferenceshallow
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 been created yet. Example: { tenant_id: "acme", topic_id: "marketing-updates", status: "OPTED_IN", has_custom_routing: true, custom_routing: ["email", "push"] }.
- update_translationshallow
Create or update a translation for a specific locale.
- update_user_preference_topicshallow
Update a user's preference for a specific subscription topic (opt in, opt out, or set channel preferences).
Embed this server’s score
Tool count and median score across every tool in this server’s corpus — honest in a way a single cherry-picked tool’s badge wouldn’t be.
[](https://vouch.tools/servers/1accc076-a7b0-485c-81e1-3aefdab7b224)