ToolPin

Courier

io.github.trycourier/courier · v1.3.7 · MCP 2025-11-25

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

Reachability reachable
checked 2026-07-14 04:29 UTC
Registry status active
Tools pinned 123
cdfe3c1b1c36
Tools last changed unchanged since first capture 2026-07-14

Provenance

Registry namespace io.github.trycourier (GitHub-account verified by the official registry)
Repository github.com/trycourier/courier-mcp
Website https://courier.com
Remote endpoints
https://mcp.courier.com (streamable-http)

Observed changes

When (UTC)EventDetail
2026-07-14 03:21 first capture 123 tools pinned

Pinned tool definitions (123)

ToolDescription
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...
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",...
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.
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:...
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...
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",...
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:...
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",...
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...
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).
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.
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...
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...
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",...
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.
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...
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.

Status badge

ToolPin status badge for io.github.trycourier/courier

[![ToolPin](https://toolpin.dev/badge/io.github.trycourier/courier.svg)](https://toolpin.dev/servers/io.github.trycourier/courier)

Maintain this server? Add the badge to your README — it links your users to this live status page.