Courier
Send notifications, manage templates, and configure integrations with Courier.
Connector by trycourier · GitHub account verified by the MCP Registry
Install
Works with Claude Code, VS Code, Cursor, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install connector/trycourier-courier
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Remote endpoint
https://mcp.courier.comRemote (HTTP)
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 72 read · 68 write · 33 delete
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- Nothing to install (hosted)
- Runs as
- Hosted (remote endpoint)
Tools by what they do 173
From the running server's own tool list (tools/list) on Oct 25, 2026.
Read 72 · Look things up without changing anything.
courier_installation_guideget_audienceget_audit_eventget_brandget_broadcastget_broadcast_contentget_bulk_jobget_journeyget_journey_runget_journey_templateget_journey_template_contentget_list
Show 60 more tools
get_list_subscribersget_messageget_message_contentget_message_historyget_notificationget_notification_contentget_notification_draft_contentget_notification_metricsget_preference_sectionget_preference_topicget_preview_device_setget_preview_runget_providerget_routing_strategyget_tenantget_tenant_templateget_tenant_template_versionget_translationget_user_list_subscriptionsget_user_preference_topicget_user_preferencesget_user_profile_by_idget_user_push_tokenlist_audience_memberslist_audienceslist_audit_eventslist_automation_run_stepslist_automation_runslist_automationslist_brandslist_broadcastslist_bulk_userslist_digest_instanceslist_journey_run_stepslist_journey_runslist_journey_template_versionslist_journey_templateslist_journey_versionslist_journeyslist_listslist_messageslist_notification_checkslist_notification_versionslist_notificationslist_preference_logslist_preference_sectionslist_preference_topicslist_preview_device_setslist_preview_deviceslist_preview_runslist_provider_cataloglist_providerslist_routing_strategieslist_routing_strategy_notificationslist_tenant_templateslist_tenant_userslist_tenantslist_user_push_tokenslist_user_tenantstrace_message
Write 68 · Create, change, send or run things.
add_bulk_usersadd_subscribers_to_listadd_user_to_tenantbulk_add_user_tenantsbulk_add_user_tokensbulk_update_user_preferencescancel_automationcreate_brandcreate_broadcastcreate_bulk_jobcreate_journeycreate_journey_template
Show 56 more tools
create_listcreate_notificationcreate_or_merge_usercreate_or_replace_user_push_tokencreate_or_update_tenantcreate_preference_sectioncreate_preference_topiccreate_preview_device_setcreate_preview_runcreate_providercreate_routing_strategyduplicate_broadcastgenerate_jwt_for_userinvoke_ad_hoc_automationinvoke_automation_templateinvoke_journeypatch_profilepatch_user_tokenpublish_journeypublish_journey_templatepublish_notificationpublish_preferencespublish_tenant_templateput_broadcast_contentput_journey_template_localeput_notification_contentput_notification_elementput_notification_localerelease_digestrelease_user_digestrename_broadcastreplace_journey_templatereplace_notificationreplace_preference_sectionreplace_preference_topicreplace_preview_device_setreplace_routing_strategyreplace_tenant_templateresend_messagerestore_listrun_bulk_jobschedule_broadcastsend_broadcastsend_messagesend_message_templatesend_message_to_listsend_message_to_list_templatesubscribe_user_to_listsubscribe_user_to_liststrack_inbound_eventupdate_audienceupdate_brandupdate_notification_checksupdate_tenant_preferenceupdate_translationupdate_user_preference_topic
Delete 33 · Delete, drop, revoke or wipe things.
archive_journeyarchive_journey_templatearchive_notificationarchive_preference_sectionarchive_preference_topicarchive_preview_device_setarchive_requestarchive_routing_strategybulk_replace_user_preferencesbulk_subscribe_to_listcancel_broadcast_schedulecancel_journey
Show 21 more tools
cancel_messagecancel_notification_submissiondelete_audiencedelete_branddelete_broadcastdelete_listdelete_profiledelete_providerdelete_tenantdelete_tenant_preferencedelete_tenant_templatedelete_user_list_subscriptionsdelete_user_preference_topicdelete_user_tokenput_journey_template_contentremove_all_user_tenantsremove_user_from_tenantreplace_journeyreplace_profileunsubscribe_user_from_listupdate_provider
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
api_key
Network hosts it talks to 1
mcp.courier.com· found in remote endpoint, install command
Tools (173)
As the server listed them on Oct 25, 2026. Descriptions are the server’s own words; hidden characters are shown as [U+…].
add_bulk_usersAdd Bulk UsersAdd users to an existing bulk job.
add_subscribers_to_listAdd Subscribers to ListAppend subscribers to a list without removing existing subscribers.
add_user_to_tenantAdd User to TenantAdd a user to a tenant.
archive_journeyArchive Journeycan change or delete dataArchive a journey. Archived journeys cannot be invoked but existing runs continue to completion.
archive_journey_templateArchive Journey Templatecan change or delete dataArchive a journey-scoped notification template. Archived templates cannot be sent.
archive_notificationArchive Notificationcan change or delete dataArchive a notification template by ID.
archive_preference_sectionArchive Preference Sectioncan change or delete dataArchive a preference section. The section must be empty: delete its topics first, otherwise the request fails with 409.
archive_preference_topicArchive Preference Topiccan change or delete dataArchive a topic within a section.
archive_preview_device_setArchive Preview Device Setcan change or delete dataArchive a preview device set. Runs that used it keep their own copy of its devices. The Courier Recommended set cannot be archived.
archive_requestArchive Requestcan change or delete dataArchive a send request and all its associated messages by request ID.
archive_routing_strategyArchive Routing Strategycan change or delete dataArchive a routing strategy. The strategy must not have associated notification templates; unlink all templates before archiving.
bulk_add_user_tenantsBulk Add User TenantsAdd a user to multiple tenants at once. A custom profile can be supplied per tenant.
bulk_add_user_tokensBulk Add User TokensAdd multiple push/device tokens for a user in one request. Overwrites matching existing tokens.
bulk_replace_user_preferencesBulk Replace User Preferencescan change or delete dataReplace 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_listBulk Subscribe to Listcan change or delete dataReplace all subscribers on a list with the given recipients.
Show 158 more tools
bulk_update_user_preferencesBulk Update User PreferencesAdditively 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_automationCancel AutomationCancel 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_broadcast_scheduleCancel Broadcast Schedulecan change or delete dataCancel a broadcast's scheduled send. The broadcast itself is kept.
cancel_journeyCancel Journeycan change or delete dataCancel 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_messageCancel Messagecan change or delete dataCancel a message that is currently being delivered. Returns the message details with updated status.
cancel_notification_submissionCancel Notification Submissioncan change or delete dataCancel a notification template submission.
courier_installation_guideCourier Installation Guideread-onlyGet the Courier SDK installation guide for one platform: the install command, a quick-start code sample and the relevant doc links. This is the answer to "how do I integrate Courier" or "how do I get started". Client-side platforms need a JWT to authenticate; each guide says so and names the tool that issues one.
create_brandCreate BrandCreate 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_broadcastCreate BroadcastCreate a broadcast: a one-off message to a list or audience on a single channel. It starts as a draft with no content; add content with put_broadcast_content, then send_broadcast or schedule_broadcast.
create_bulk_jobCreate Bulk JobCreate a new bulk job for sending messages to multiple recipients. Workflow: create_bulk_job → add_bulk_users → run_bulk_job.
create_journeyCreate JourneyCreate 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 node in the journey" even when no exit was sent at all. Send and delay nodes are added afterwards by replace_journey, once journey-scoped templates exist. Node ids are server-generated; do NOT include an id field. Example: { name: "Welcome Journey", nodes: [{ type: "trigger", trigger_type: "api-invoke" }, { type: "exit" }…
create_journey_templateCreate Journey TemplateCreate 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 elements. Example: { journey_id: "j-abc", channel: "email", notification: { name: "Welcome Email", tags: [], brand: null, subscription: null, content: { version: "2022-01-01", elements: [{ type: "channel", channel: "email", elements: [{ type: "text", content: "Hello!" }] }] } } }. The result carries a "verification" object co…
create_listCreate ListCreate or update a list by list ID.
create_notificationCreate NotificationCreate 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 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_userCreate or Merge UserCreate a new user profile or merge supplied values into an existing profile (POST). Existing fields not included are preserved.
create_or_replace_user_push_tokenCreate or Replace User Push TokenCreate or replace a push/device token for a user.
create_or_update_tenantCreate or Update TenantCreate or replace a tenant. Tenants represent organizations or groups that users belong to.
create_preference_sectionCreate Preference SectionCreate a preference section in your workspace. The section id is generated and returned. Add topics afterwards with create_preference_topic.
create_preference_topicCreate Preference TopicCreate a subscription preference topic inside a section. The topic id is generated and returned. Fails with 404 if the section does not exist.
create_preview_device_setCreate Preview Device SetCreate a named, reusable set of preview devices.
create_preview_runCreate Preview RunRender a template's email on real email clients and capture screenshots. Pass exactly one of device_set_id or device_ids. Each run is billed to the workspace's previews add-on. The run starts PENDING, so poll get_preview_run for the results.
create_providerCreate ProviderCreate 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_strategyCreate Routing StrategyCreate a routing strategy defining how notifications are delivered across channels and providers.
delete_audienceDelete Audiencecan change or delete dataDelete an audience by its ID.
delete_brandDelete Brandcan change or delete dataDelete a brand by its ID.
delete_broadcastDelete Broadcastcan change or delete dataDelete a broadcast.
delete_listDelete Listcan change or delete dataDelete a list by its ID.
delete_profileDelete Profilecan change or delete dataDelete a user profile permanently.
delete_providerDelete Providercan change or delete dataDelete a provider configuration. Returns 409 if the provider is still referenced by routing or notifications.
delete_tenantDelete Tenantcan change or delete dataDelete a tenant by its ID.
delete_tenant_preferenceDelete Tenant Preferencecan change or delete dataRemove default notification preference for a topic from a tenant.
delete_tenant_templateDelete Tenant Templatecan change or delete dataDelete a tenant notification template. Returns 204 on success, 404 if the template does not exist for this tenant.
delete_user_list_subscriptionsDelete User List Subscriptionscan change or delete dataDelete all list subscriptions for a user.
delete_user_preference_topicDelete User Preference Topiccan change or delete dataDelete a user's preference for a specific subscription topic, reverting it to the topic's default status.
delete_user_tokenDelete User Tokencan change or delete dataDelete a specific push token for a user.
duplicate_broadcastDuplicate BroadcastCopy a broadcast into a new draft. The original is left unchanged.
generate_jwt_for_userGenerate JWT for UserGenerate a JWT authentication token for a user. Used for client-side SDK auth (Inbox, Preferences, etc.).
get_audienceGet Audienceread-onlyGet one audience by ID, including the filter that defines its membership. Read this to explain why someone is or is not in an audience — the filter is the rule, not a stored member list. Use list_audience_members for who currently matches.
get_audit_eventGet Audit Eventread-onlyGet a specific audit event by its ID.
get_brandGet Brandread-onlyGet one brand by ID, including its colors, logo and styling settings. Read this to describe what a template referencing this brand will actually look like.
get_broadcastGet Broadcastread-onlyGet a broadcast by id, including its channel and send or schedule state.
get_broadcast_contentGet Broadcast Contentread-onlyGet a broadcast's Elemental content.
get_bulk_jobGet Bulk Jobread-onlyGet the status of a bulk job.
get_journeyGet Journeyread-onlyGet a journey by ID. Pass version=draft to retrieve the working draft, or version=vN for a historical version. Defaults to published.
get_journey_runGet Journey Runread-onlyGet one journey run by id: its journey, status, and timestamps.
get_journey_templateGet Journey Templateread-onlyGet 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_contentGet Journey Template Contentread-onlyFetch 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_listGet Listread-onlyGet one list by its ID, including its name and current state.
get_list_subscribersGet List Subscribersread-onlyList the users subscribed to a list. Use this to confirm whether someone was actually on a list at all — a subscription here is the reason a list-addressed send reached them.
get_messageGet Messageread-onlyGet the full details and status of a single message by its ID.
get_message_contentGet Message Contentread-onlyGet the rendered content (HTML, text, subject) of a previously sent message.
get_message_historyGet Message Historyread-onlyGet the event history for a message, showing each step in the delivery pipeline (enqueued, sent, delivered, etc.).
get_notificationGet Notificationread-onlyRetrieve a notification template by ID. Optionally request draft, published, or a version such as v001.
get_notification_contentGet Notification Contentread-onlyGet the published content blocks of a notification template.
get_notification_draft_contentGet Notification Draft Contentread-onlyGet the draft (unpublished) content blocks of a notification template.
get_notification_metricsGet Notification Metricsread-onlyDelivery 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. For a relative window like 'the last week', `lookback` alone is the whole answer: do not also pin `start` and `end`. Default is the last 30 days by day. Fine granularities cover shorter windows: HOUR spans at most 7 days and DAY at most 90. How far back a workspace may look also depends on its plan; a request reaching f…
get_preference_sectionGet Preference Sectionread-onlyGet 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.
get_preference_topicGet Preference Topicread-onlyGet 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.
get_preview_device_setGet Preview Device Setread-onlyGet a preview device set by id.
get_preview_runGet Preview Runread-onlyGet a preview run with its per-device results and screenshot URLs. Poll until status is COMPLETED or FAILED. The URLs are short-lived and re-signed on every read, so fetch them rather than storing them.
get_providerGet Providerread-onlyFetch a single provider configuration by ID.
get_routing_strategyGet Routing Strategyread-onlyRetrieve a routing strategy by ID. Returns the full entity including routing, channels, and providers.
get_tenantGet Tenantread-onlyGet a tenant by its ID.
get_tenant_templateGet Tenant Templateread-onlyGet a tenant notification template association by template ID.
get_tenant_template_versionGet Tenant Template Versionread-onlyGet a specific version of a tenant notification template (e.g. latest, published, or v1).
get_translationGet Translationread-onlyGet a translation for a specific locale (e.g. "en_US", "fr_FR").
get_user_list_subscriptionsGet User List Subscriptionsread-onlyList 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.
get_user_preference_topicGet User Preference Topicread-onlyGet one user's choice for a single subscription topic — whether they opted in or out, and per channel. Use this when you already know which topic is in question; get_user_preferences returns all of them at once.
get_user_preferencesGet User Preferencesread-onlyGet a user's notification preferences (subscriptions, opt-outs, channel preferences).
get_user_profile_by_idGet User Profile by IDread-onlyGet a user profile by their ID. Returns profile data including email, phone, and custom properties.
get_user_push_tokenGet User Push Tokenread-onlyGet a specific push/device token for a user.
invoke_ad_hoc_automationInvoke Ad Hoc AutomationInvoke 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_templateInvoke Automation TemplateInvoke an automation run from an existing automation template. template_id refers to an existing automation template in the workspace. Example: { template_id: "auto-onboarding", recipient: "user-123", data: { plan: "pro" } }.
invoke_journeyInvoke JourneyInvoke a journey run from a journey template. template_id refers to an existing journey template in the workspace. Example: { template_id: "j-onboarding", user_id: "user-123", data: { plan: "pro" } }.
list_audience_membersList Audience Membersread-onlyList the users who currently match an audience's filter. Membership is computed, so this reflects profiles as they are right now — a profile change can move someone in or out without the audience itself being edited.
list_audiencesList Audiencesread-onlyList the workspace's audiences. An audience is a saved filter over user profiles — a dynamic segment — so this answers "who can I target" and gives you the audience IDs that journey audience triggers and send requests refer to.
list_audit_eventsList Audit Eventsread-onlyList audit events in the workspace. Useful for tracking API usage and changes.
list_automation_run_stepsList Automation Run Stepsread-onlyList the steps of an automation run in order, with what happened at each. Send steps carry a message_id to follow with get_message.
list_automation_runsList Automation Runsread-onlyList automation runs, newest first. Filter by automation template, status, or a created_at window to find a run that stalled or errored, then read its steps with list_automation_run_steps. Journey runs are listed by list_journey_runs instead.
list_automationsList Automationsread-onlyList the workspace's automation templates, each with its template ID and whether it has a published or draft version. Answers "what automations already exist here" — this only reads the catalog, it never runs one.
list_brandsList Brandsread-onlyList the workspace's brands. A brand is the reusable logo, colors and email styling a notification template renders with; this gives you the brand IDs a template's brand reference points at.
list_broadcastsList Broadcastsread-onlyList broadcasts in the workspace.
list_bulk_usersList Bulk Usersread-onlyList the users in a bulk job.
list_digest_instancesList Digest Instancesread-onlyList the digest instances for a digest schedule. Each instance is the events accumulated so far for one user against that schedule, so this shows what is waiting to go out and answers why a digest has not arrived yet — it is still accumulating, or it has nothing in it.
list_journey_run_stepsList Journey Run Stepsread-onlyList the steps of a journey run in order, with each node and what happened at it. This is how to see where a run stopped and why.
list_journey_runsList Journey Runsread-onlyList journey runs, newest first. Filter by journey, status, or a created_at window to find a run that stalled or errored, then read its steps with list_journey_run_steps.
list_journey_template_versionsList Journey Template Versionsread-onlyList published versions of a journey-scoped notification template, ordered most recent first.
list_journey_templatesList Journey Templatesread-onlyList 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_versionsList Journey Versionsread-onlyList published versions of a journey, ordered most recent first.
list_journeysList Journeysread-onlyList journey templates in the workspace, returning the journey IDs and version state of each. Optionally filter by version (published or draft).
list_listsList Listsread-onlyList the workspace's lists. A list is an explicit, subscription-based group of users — someone is on it because they were subscribed, not because they match a rule. Optionally filter by an id pattern such as "example.list.*".
list_messagesList Messagesread-onlyList messages you've previously sent. Filter by status, recipient, notification, provider, tags, or tenant.
list_notification_checksList Notification Checksread-onlyList 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_notification_versionsList Notification Versionsread-onlyList 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_notificationsList Notificationsread-onlyList notification templates, newest first. Pass tags to return only templates carrying ALL of the given tags. Page through the rest with cursor.
list_preference_logsList Preference Logsread-onlyList preference changes, newest first. Each entry is one change a user made to one subscription topic, with the value before it where there was one. Pass user_id to answer "when did this user opt out, and of what?"; omit it to read the whole environment. Page with paging.cursor while paging.more is true.
list_preference_sectionsList Preference Sectionsread-onlyList 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.
list_preference_topicsList Preference Topicsread-onlyList 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.
list_preview_device_setsList Preview Device Setsread-onlyList saved preview device sets. Every workspace has a read-only Courier Recommended set that runs can use without creating a set first.
list_preview_devicesList Preview Devicesread-onlyList the email clients a preview can render on. Each device has a pvd_ id, a display name, and fields to filter by: category, app, platform, os, os_version and theme. Use these ids in a device set or in create_preview_run.
list_preview_runsList Preview Runsread-onlyList a template's preview runs, newest first.
list_provider_catalogList Provider Catalogread-onlyList 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 set up this provider".
list_providersList Providersread-onlyList configured provider integrations for the workspace.
list_routing_strategiesList Routing Strategiesread-onlyList 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_routing_strategy_notificationsList Routing Strategy Notificationsread-onlyList notification templates associated with a routing strategy. Useful for checking linked templates before archiving.
list_tenant_templatesList Tenant Templatesread-onlyList notification templates configured for a tenant.
list_tenant_usersList Tenant Usersread-onlyList 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.
list_tenantsList Tenantsread-onlyList 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_user_push_tokensList User Push Tokensread-onlyList all push/device tokens for a user.
list_user_tenantsList User Tenantsread-onlyList the tenants a user belongs to. Preferences and branding can be scoped per tenant, so this tells you which tenant-scoped settings could apply to this user at all before you go looking for them.
patch_profilePatch ProfilePartially update a user profile via JSON Patch (RFC 6902). Use add/replace/remove operations on specific profile paths.
patch_user_tokenPatch User TokenApply a JSON Patch (RFC 6902) to a specific push token.
publish_journeyPublish JourneyPublish 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_templatePublish Journey TemplatePublish the current draft of a journey-scoped notification template. Optionally pass version to roll back to a prior version.
publish_notificationPublish NotificationPublish 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_preferencesPublish PreferencesPublish 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_templatePublish Tenant TemplatePublish a version of a tenant notification template.
put_broadcast_contentPut Broadcast ContentReplace a broadcast's content with an Elemental document. Saved as a draft unless state is PUBLISHED.
put_journey_template_contentPut Journey Template Contentcan change or delete dataReplace 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_localePut Journey Template LocaleSet 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.
put_notification_contentPut Notification ContentReplace 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" }] }]. The template stays a draft; making it live is a separate step this tool cann…
put_notification_elementPut Notification ElementUpdate 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_localePut Notification LocaleSet 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." }] }. The template stays a draft; making it live is a separate step this tool cannot perform.
release_digestRelease DigestRelease 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.
release_user_digestRelease User DigestRelease one recipient's held digest for a topic now, instead of waiting for its schedule. Use it to preview a digest, or to let a user flush their own, without releasing everyone else on the schedule. There is no release-everyone form of this call; use release_digest with a schedule id for that.
remove_all_user_tenantsRemove All User Tenantscan change or delete dataRemove a user from all tenants.
remove_user_from_tenantRemove User from Tenantcan change or delete dataRemove a user from a tenant.
rename_broadcastRename BroadcastRename a broadcast. Content and channel are unchanged.
replace_journeyReplace Journeycan change or delete dataReplace (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, branch and exit nodes are added, and send node template IDs must already be scoped to this journey. The result carries a "verification" object read back from the server after the write — check it every time. verified:true means what you asked for is what saved. verified:false names what did not: "fieldMismatches" for …
replace_journey_templateReplace Journey TemplateReplace the draft of a journey-scoped notification template. Full document replacement. Call publish_journey_template afterwards to make it live.
replace_notificationReplace NotificationReplace a notification template entirely (full document PUT). The template stays a draft; making it live is a separate step this tool cannot perform.
replace_preference_sectionReplace Preference SectionReplace a preference section. Full document replacement; missing optional fields are cleared. Topics attached to the section are unaffected.
replace_preference_topicReplace Preference TopicReplace a topic within a section. Full document replacement: omitted optional fields are cleared, except `digest`, which is left untouched when omitted. Pass `digest: null` to turn a digest off.
replace_preview_device_setReplace Preview Device SetReplace a preview device set's name and devices. This is a full replace, so send every device the set should keep. The Courier Recommended set cannot be changed.
replace_profileReplace Profilecan change or delete dataFully replace a user profile (PUT). All existing data is overwritten; include every field you want to keep.
replace_routing_strategyReplace Routing StrategyReplace a routing strategy. Full document replacement; missing optional fields are cleared.
replace_tenant_templateReplace Tenant TemplateCreate or replace a tenant notification template (draft unless published is true).
resend_messageResend MessageResend 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_listRestore ListRestore a previously deleted list.
run_bulk_jobRun Bulk JobRun a bulk job, triggering delivery to all added users.
schedule_broadcastSchedule BroadcastSchedule a broadcast to send later to a list or audience. Cancel with cancel_broadcast_schedule.
send_broadcastSend BroadcastSend a broadcast now to every member of a list or audience. This delivers real messages.
send_messageSend MessageSend a message to a user using inline title and body content (no template). Optionally specify routing channels. API reference: https://www.courier.com/docs/api-reference/send/send-a-message.
send_message_templateSend Message TemplateSend a message to a user using a published notification template. Only published templates can be sent; publishing a draft is a separate operation. Example: { user_id: "user-123", template: "nt_01abc123", data: { name: "Alex", resetUrl: "https://app.example.com/reset" } }.
send_message_to_listSend Message to ListSend a message to all subscribers of a list using inline title and body content. API reference: https://www.courier.com/docs/api-reference/send/send-a-message.
send_message_to_list_templateSend Message to List TemplateSend a message to all subscribers of a list using a notification template.
subscribe_user_to_listSubscribe User to ListSubscribe a user to a list. Creates the list if it doesn't exist.
subscribe_user_to_listsSubscribe User to ListsSubscribe a user to one or more lists. Creates lists that do not exist.
trace_messageTrace Messageread-onlyTrace delivery in one call. Give EXACTLY ONE of message_id (a single message) or trace_id (the metadata.trace_id set on a send, which can span several messages). Returns each matching message with its event history, which carries the status reason when a message is undeliverable. Set include_output to also return the rendered content each provider received.
track_inbound_eventTrack Inbound EventTrack an inbound event that can trigger automations. Requires event name, messageId (for deduplication), and properties.
unsubscribe_user_from_listUnsubscribe User from Listcan change or delete dataUnsubscribe a user from a list.
update_audienceUpdate AudienceCreate or update an audience with a filter definition.
update_brandUpdate BrandReplace an existing brand with new values.
update_notification_checksUpdate Notification ChecksUpdate check statuses for a notification submission.
update_providerUpdate Providercan change or delete dataReplace 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_preferenceUpdate Tenant PreferenceSet 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_translationUpdate TranslationCreate or update a translation for a specific locale. API reference: https://www.courier.com/docs/api-reference/translations/update-translations-by-locale.
update_user_preference_topicUpdate User Preference TopicUpdate a user's preference for a specific subscription topic (opt in, opt out, or set channel preferences).
Signals
- Last release
- Jun 18, 2026 (4 months ago)
- Repository
- Not found on GitHub (deleted or private)
Details
- Registry name
io.github.trycourier/courier- Version
- 1.3.7
- Auth
- API key
- License
- License unknown
- Repository
- github.com/trycourier/courier-mcp
- Website
- courier.com
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- Official MCP Registry
More from trycourier
Cite this page
Courier MCP server. Agent Mart. https://agentmart.dev/connectors/trycourier-courier (last updated 2026-10-24)