Talandor
Public MCP report

Courier

https://mcp.courier.com/

Official Registry

Official Registry · io.github.trycourier/courier · Publisher namespace: io.github.trycourier

Server checked today at 20:29 UTC

Catalog verified today at 19:44 UTC

145 public tools observed. Tools were not executed.

Reachable · public catalog

What Talandor observed

The server answered

Add the endpoint to a compatible client below. A Watch can alert you if this public catalog changes.

This is a public protocol and tools/list check, not a functional validation.

https://mcp.courier.com/
AvailabilityReachablemeasured
Tools145 public tools observedmeasured
CompatibilityEstimated from published client rules · not a hands-on testestimated
Recent changeput_journey_template_locale restricted the allowed values for stateHistorical

Configure your assistant · Check details

How to use this MCP

Talandor checks the server; it does not connect the server to your assistant.

Choose your assistant, then copy the configuration shown for that client. Authentication is completed with the MCP provider, never inside Talandor.

    Open the official client guide (opens in a new tab)
    Compatibility evidence by assistant

    Compatibility is estimated from published configuration rules and is not a hands-on test in each client.

    Claude
    Observed 2025-11-25.
    Likely compatible · inferred
    Cursor
    Streamable HTTP and public HTTPS were observed.
    Likely compatible · inferred
    ChatGPT
    Public tool names, descriptions and schemas were observed. Plan and workspace access still apply.
    Likely compatible · inferred
    VS Code
    Public remote HTTP configuration can be assessed.
    Likely compatible · inferred
    Generic MCP
    Observed 2025-11-25.
    Likely compatible · inferred

    Rule evidence: Remote HTTPS rule v0.2 · reviewed 2026-09-12 · Remote HTTP rule v0.2 · reviewed 2026-09-12 · Remote app rule v0.2 · reviewed 2026-09-12 · Protocol and transport rule v0.2 · reviewed 2026-09-12

    Check details

    What changed

    Public contract stable since
    Last check · No semantic contract change since the previous complete snapshot.
    Info
    put_journey_template_locale restricted the allowed values for state
    Historical change · critical · high confidence · put_journey_template_locale · Rule: input-enum-restricted
    Critical

    A Watch would alert only if this change may affect uses of the selected client that depend on the changed tools.

    The notes above are for this connector.

    Server-provided content. Tool names, descriptions and schemas below are copied from the MCP server. They may be in another language. Talandor does not translate or verify them.
    Tools and declared exposure

    Server annotations are declarations, not verified behavior.

    Show 100 of 145 server-provided tool definitions
    add_bulk_users
    Annotation present; effect not classified
    Show server-provided details
    Server description (copied; language not verified)
    Add users to an existing bulk job.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "job_id",
        "users"
      ],
      "properties": {
        "users": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {}
          },
          "description": "Array of user objects to add"
        },
        "job_id": {
          "type": "string",
          "description": "The bulk job ID"
        }
      },
      "additionalProperties": false
    }
    add_subscribers_to_list
    Annotation present; effect not classified
    Show server-provided details
    Server description (copied; language not verified)
    Append subscribers to a list without removing existing subscribers.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "list_id",
        "recipients"
      ],
      "properties": {
        "list_id": {
          "type": "string",
          "description": "The list ID"
        },
        "recipients": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "recipientId"
            ],
            "properties": {
              "recipientId": {
                "type": "string",
                "description": "Recipient ID"
              }
            },
            "additionalProperties": false
          },
          "description": "Recipients to set on the list"
        }
      },
      "additionalProperties": false
    }
    add_user_to_tenant
    Declared idempotent
    Show server-provided details
    Server description (copied; language not verified)
    Add a user to a tenant.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "tenant_id",
        "user_id"
      ],
      "properties": {
        "profile": {
          "type": "object",
          "description": "Tenant-scoped profile overrides",
          "additionalProperties": {}
        },
        "user_id": {
          "type": "string",
          "description": "The user ID"
        },
        "tenant_id": {
          "type": "string",
          "description": "The tenant ID"
        }
      },
      "additionalProperties": false
    }
    archive_journey
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    Archive a journey. Archived journeys cannot be invoked but existing runs continue to completion.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "journey_id"
      ],
      "properties": {
        "journey_id": {
          "type": "string",
          "description": "The journey template ID to archive"
        }
      },
      "additionalProperties": false
    }
    archive_journey_template
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    Archive a journey-scoped notification template. Archived templates cannot be sent.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "journey_id",
        "notification_id"
      ],
      "properties": {
        "journey_id": {
          "type": "string",
          "description": "The journey template ID that owns this notification"
        },
        "notification_id": {
          "type": "string",
          "description": "The notification template ID"
        }
      },
      "additionalProperties": false
    }
    archive_notification
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    Archive a notification template by ID.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "notification_id"
      ],
      "properties": {
        "notification_id": {
          "type": "string",
          "description": "The notification template ID to archive"
        }
      },
      "additionalProperties": false
    }
    archive_preference_section
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    Archive a preference section. The section must be empty: delete its topics first, otherwise the request fails with 409.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "section_id"
      ],
      "properties": {
        "section_id": {
          "type": "string",
          "description": "Id of the preference section to archive"
        }
      },
      "additionalProperties": false
    }
    archive_preference_topic
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    Archive a topic within a section.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "section_id",
        "topic_id"
      ],
      "properties": {
        "topic_id": {
          "type": "string",
          "description": "Id of the subscription preference topic to archive"
        },
        "section_id": {
          "type": "string",
          "description": "Id of the preference section"
        }
      },
      "additionalProperties": false
    }
    archive_request
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    Archive a send request and all its associated messages by request ID.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "request_id"
      ],
      "properties": {
        "request_id": {
          "type": "string",
          "description": "The request ID (requestId returned from /send)"
        }
      },
      "additionalProperties": false
    }
    archive_routing_strategy
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    Archive a routing strategy. The strategy must not have associated notification templates; unlink all templates before archiving.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "routing_strategy_id"
      ],
      "properties": {
        "routing_strategy_id": {
          "type": "string",
          "description": "The routing strategy ID to archive"
        }
      },
      "additionalProperties": false
    }
    bulk_add_user_tenants
    Declared idempotent
    Show server-provided details
    Server description (copied; language not verified)
    Add a user to multiple tenants at once. A custom profile can be supplied per tenant.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "tenants",
        "user_id"
      ],
      "properties": {
        "tenants": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "tenant_id"
            ],
            "properties": {
              "profile": {
                "type": "object",
                "description": "Tenant-scoped profile overrides",
                "additionalProperties": {}
              },
              "tenant_id": {
                "type": "string",
                "description": "Tenant ID"
              }
            },
            "additionalProperties": false
          },
          "description": "Array of tenant associations"
        },
        "user_id": {
          "type": "string",
          "description": "The user ID"
        }
      },
      "additionalProperties": false
    }
    bulk_add_user_tokens
    Annotation present; effect not classified
    Show server-provided details
    Server description (copied; language not verified)
    Add multiple push/device tokens for a user in one request. Overwrites matching existing tokens.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "tokens",
        "user_id"
      ],
      "properties": {
        "tokens": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "provider_key",
              "token"
            ],
            "properties": {
              "token": {
                "type": "string",
                "description": "The token string"
              },
              "device": {
                "type": "object",
                "properties": {
                  "ad_id": {
                    "type": "string"
                  },
                  "model": {
                    "type": "string"
                  },
                  "app_id": {
                    "type": "string"
                  },
                  "platform": {
                    "type": "string"
                  },
                  "device_id": {
                    "type": "string"
                  },
                  "manufacturer": {
                    "type": "string"
                  }
                },
                "description": "Device metadata",
                "additionalProperties": false
              },
              "tracking": {},
              "properties": {},
              "expiry_date": {
                "type": [
                  "string",
                  "boolean"
                ],
                "description": "Expiry as ISO string, false to disable, or omit for default"
              },
              "provider_key": {
                "enum": [
                  "firebase-fcm",
                  "apn",
                  "expo",
                  "onesignal"
                ],
                "type": "string",
                "description": "Push provider"
              }
            },
            "additionalProperties": false
          },
          "minItems": 1,
          "description": "Token records to upsert"
        },
        "user_id": {
          "type": "string",
          "description": "The user ID"
        }
      },
      "additionalProperties": false
    }
    bulk_replace_user_preferences
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    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).
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "topics",
        "user_id"
      ],
      "properties": {
        "topics": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "status",
              "topic_id"
            ],
            "properties": {
              "status": {
                "enum": [
                  "OPTED_IN",
                  "OPTED_OUT",
                  "REQUIRED"
                ],
                "type": "string",
                "description": "Preference status"
              },
              "topic_id": {
                "type": "string",
                "description": "The subscription topic ID"
              },
              "custom_routing": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Custom channel routing order (e.g. inbox, email)"
              },
              "has_custom_routing": {
                "type": "boolean",
                "description": "Whether custom channel routing is set"
              }
            },
            "additionalProperties": false
          },
          "description": "The complete set of topic overrides. An empty array resets every existing override."
        },
        "user_id": {
          "type": "string",
          "description": "The user ID"
        },
        "tenant_id": {
          "type": "string",
          "description": "Scope the replacement to a specific tenant context"
        }
      },
      "additionalProperties": false
    }
    bulk_subscribe_to_list
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    Replace all subscribers on a list with the given recipients.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "list_id",
        "recipients"
      ],
      "properties": {
        "list_id": {
          "type": "string",
          "description": "The list ID"
        },
        "recipients": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "recipientId"
            ],
            "properties": {
              "recipientId": {
                "type": "string",
                "description": "Recipient ID"
              }
            },
            "additionalProperties": false
          },
          "description": "Recipients to set on the list"
        }
      },
      "additionalProperties": false
    }
    bulk_update_user_preferences
    Annotation present; effect not classified
    Show server-provided details
    Server description (copied; language not verified)
    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`.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "topics",
        "user_id"
      ],
      "properties": {
        "topics": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "status",
              "topic_id"
            ],
            "properties": {
              "status": {
                "enum": [
                  "OPTED_IN",
                  "OPTED_OUT",
                  "REQUIRED"
                ],
                "type": "string",
                "description": "Preference status"
              },
              "topic_id": {
                "type": "string",
                "description": "The subscription topic ID"
              },
              "custom_routing": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Custom channel routing order (e.g. inbox, email)"
              },
              "has_custom_routing": {
                "type": "boolean",
                "description": "Whether custom channel routing is set"
              }
            },
            "additionalProperties": false
          },
          "description": "Topics to create or update"
        },
        "user_id": {
          "type": "string",
          "description": "The user ID"
        },
        "tenant_id": {
          "type": "string",
          "description": "Scope the update to a specific tenant context"
        }
      },
      "additionalProperties": false
    }
    cancel_automation
    Declared idempotent
    Show server-provided details
    Server description (copied; language not verified)
    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").
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "cancelation_token"
      ],
      "properties": {
        "cancelation_token": {
          "type": "string",
          "description": "The cancelation_token that was set when the automation was originally invoked"
        }
      },
      "additionalProperties": false
    }
    cancel_journey
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    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.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "run_id": {
          "type": "string",
          "description": "Cancels a single run by id. Mutually exclusive with cancelation_token."
        },
        "cancelation_token": {
          "type": "string",
          "description": "Cancels every run associated with this token. Mutually exclusive with run_id."
        }
      },
      "additionalProperties": false
    }
    cancel_message
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    Cancel a message that is currently being delivered. Returns the message details with updated status.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "message_id"
      ],
      "properties": {
        "message_id": {
          "type": "string",
          "description": "The message ID to cancel"
        }
      },
      "additionalProperties": false
    }
    cancel_notification_submission
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    Cancel a notification template submission.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "notification_id",
        "submission_id"
      ],
      "properties": {
        "submission_id": {
          "type": "string",
          "description": "The submission ID to cancel"
        },
        "notification_id": {
          "type": "string",
          "description": "The notification template ID"
        }
      },
      "additionalProperties": false
    }
    courier_installation_guide
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    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.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "platform"
      ],
      "properties": {
        "user_id": {
          "type": "string",
          "description": "User ID for JWT generation (client-side SDKs only). Defaults to \"example_user\"."
        },
        "platform": {
          "enum": [
            "nodejs",
            "python",
            "react",
            "ios",
            "android",
            "flutter",
            "react native"
          ],
          "type": "string",
          "description": "The platform to get installation guide for"
        }
      },
      "additionalProperties": false
    }
    create_brand
    Annotation present; effect not classified
    Show server-provided details
    Server description (copied; language not verified)
    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" } } }.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "name"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Optional brand ID; auto-generated if omitted"
        },
        "name": {
          "type": "string",
          "description": "Brand display name"
        },
        "settings": {
          "type": "object",
          "properties": {
            "email": {
              "type": "object",
              "description": "Email template settings (header, footer)",
              "additionalProperties": {}
            },
            "inapp": {
              "type": "object",
              "description": "In-app notification settings",
              "additionalProperties": {}
            },
            "colors": {
              "type": "object",
              "required": [
                "primary",
                "secondary"
              ],
              "properties": {
                "primary": {
                  "type": "string",
                  "description": "Primary brand color (hex, e.g. \"#1a73e8\")"
                },
                "tertiary": {
                  "type": "string",
                  "description": "Tertiary brand color (hex)"
                },
                "secondary": {
                  "type": "string",
                  "description": "Secondary brand color (hex, e.g. \"#ffffff\")"
                }
              },
              "description": "Brand colors",
              "additionalProperties": false
            }
          },
          "description": "Brand appearance settings. If omitted, defaults to { colors: { primary: \"#000000\", secondary: \"#ffffff\" } }.",
          "additionalProperties": false
        },
        "snippets": {
          "type": "object",
          "description": "Brand snippets",
          "additionalProperties": {}
        }
      },
      "additionalProperties": false
    }
    create_bulk_job
    Annotation present; effect not classified
    Show server-provided details
    Server description (copied; language not verified)
    Create a new bulk job for sending messages to multiple recipients. Workflow: create_bulk_job → add_bulk_users → run_bulk_job.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "message"
      ],
      "properties": {
        "message": {
          "type": "object",
          "description": "Bulk message definition with event/template and content",
          "additionalProperties": {}
        }
      },
      "additionalProperties": false
    }
    create_journey
    Annotation present; effect not classified
    Show server-provided details
    Server description (copied; language not verified)
    Create a new journey. Always created as a draft; making it live is a separate step this tool cannot perform. Send two nodes: the trigger, and an exit node last. Both are required — a create with no 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" }], enabled: true }. 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 node fields that failed to land, "nodeCountMismatch" for a node dropped or added, and "unknownTemplateReferences" for a send node pointing at a template id this journey does not have — almost always a mistyped id, so re-copy it from the create_journey_template or get_journey response it came from. Fix the specific thing named and send the corrected document. Re-sending an identical call changes nothing, and every replace_journey overwrites the whole draft again. An "errorKind" of "unauthorized" means the write itself succeeded and only the read-back was refused: report that as unconfirmed, never as a failed write.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "name",
        "nodes"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "Journey display name"
        },
        "nodes": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {}
          },
          "description": "The trigger node, then a terminal exit node — both required. Send and delay nodes are added later by replace_journey. Node ids are server-generated — do NOT include an id field. Example: [{ type: \"trigger\", trigger_type: \"api-invoke\" }, { type: \"exit\" }]."
        },
        "state": {
          "enum": [
            "DRAFT"
          ],
          "type": "string",
          "description": "Must be \"DRAFT\". These tools cannot publish."
        },
        "enabled": {
          "type": "boolean",
          "description": "Whether the journey is active. Defaults to true."
        }
      },
      "additionalProperties": false
    }
    create_journey_template
    Annotation present; effect not classified
    Show server-provided details
    Server description (copied; language not verified)
    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. 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 confirming the new id is really present on the journey. verified:true means the id in this response is safe to reference from a send node. verified:false means it is not visible yet — re-read the journey before referencing it, and do not create a second template to work around it. An "errorKind" of "unauthorized" means the template was created and only the check was refused.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "channel",
        "journey_id",
        "notification"
      ],
      "properties": {
        "state": {
          "enum": [
            "DRAFT"
          ],
          "type": "string",
          "description": "Must be \"DRAFT\". These tools cannot publish."
        },
        "channel": {
          "type": "string",
          "description": "Channel for this template (e.g. \"email\", \"push\", \"sms\", \"inbox\")"
        },
        "journey_id": {
          "type": "string",
          "description": "The journey template ID. Copy it exactly, character for character, from the response that returned it — never retype it from memory or reconstruct it."
        },
        "notification": {
          "type": "object",
          "required": [
            "brand",
            "content",
            "name",
            "subscription",
            "tags"
          ],
          "properties": {
            "name": {
              "type": "string",
              "description": "Template display name"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Tag list (use [] if none)"
            },
            "brand": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "id"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ],
              "description": "Brand to apply, or null"
            },
            "content": {
              "type": "object",
              "required": [
                "elements",
                "version"
              ],
              "properties": {
                "scope": {
                  "enum": [
                    "default",
                    "strict"
                  ],
                  "type": "string"
                },
                "version": {
                  "type": "string",
                  "const": "2022-01-01"
                },
                "elements": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": {}
                  },
                  "description": "Elemental content nodes. Must be wrapped in a channel block — the API rejects bare elements. Example: [{ type: \"channel\", channel: \"email\", elements: [{ type: \"text\", content: \"Hello!\" }] }]."
                }
              },
              "additionalProperties": false
            },
            "subscription": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "topic_id"
                  ],
                  "properties": {
                    "topic_id": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ],
              "description": "Subscription topic, or null"
            }
          },
          "description": "Notification template definition",
          "additionalProperties": false
        },
        "provider_key": {
          "type": "string",
          "description": "Specific provider key to target"
        }
      },
      "additionalProperties": false
    }
    create_list
    Declared idempotent
    Show server-provided details
    Server description (copied; language not verified)
    Create or update a list by list ID.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "list_id",
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "Display name for the list"
        },
        "list_id": {
          "type": "string",
          "description": "The list ID"
        }
      },
      "additionalProperties": false
    }
    create_notification
    Annotation present; effect not classified
    Show server-provided details
    Server description (copied; language not verified)
    Create 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: [] } } }.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "notification"
      ],
      "properties": {
        "state": {
          "enum": [
            "DRAFT"
          ],
          "type": "string",
          "description": "Must be \"DRAFT\". These tools cannot publish."
        },
        "notification": {
          "type": "object",
          "required": [
            "brand",
            "content",
            "name",
            "routing",
            "subscription",
            "tags"
          ],
          "properties": {
            "name": {
              "type": "string",
              "description": "Template display name"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Tag list (use [] if none)"
            },
            "brand": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "id"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ],
              "description": "Brand to apply, or null for none. Required on every call — never omit this key, and never send {}."
            },
            "content": {
              "type": "object",
              "required": [
                "elements",
                "version"
              ],
              "properties": {
                "version": {
                  "type": "string",
                  "description": "Content version identifier, e.g. \"2022-01-01\""
                },
                "elements": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": {}
                  },
                  "description": "Elemental content nodes"
                }
              },
              "description": "Elemental content, required on every call. Example: { version: \"2022-01-01\", elements: [{ type: \"text\", content: \"Hello!\" }] }.",
              "additionalProperties": false
            },
            "routing": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "strategy_id"
                  ],
                  "properties": {
                    "strategy_id": {
                      "type": "string",
                      "description": "From a get_routing_strategy or list_notifications/get_notification response for THIS template's own intended strategy — never an id borrowed from an unrelated template found while searching for one."
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ],
              "description": "Routing strategy reference, or null to use the workspace default. Required on every call — never omit this key, and never send {}: the API rejects both an absent routing key and an empty object; if you have no strategy id, send null explicitly."
            },
            "subscription": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "topic_id"
                  ],
                  "properties": {
                    "topic_id": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ],
              "description": "Subscription topic reference, or null for none. Required on every call — never omit this key, and never send {}."
            }
          },
          "description": "Notification template payload",
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    create_or_merge_user
    Declared idempotent
    Show server-provided details
    Server description (copied; language not verified)
    Create a new user profile or merge supplied values into an existing profile (POST). Existing fields not included are preserved.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "user_id"
      ],
      "properties": {
        "profile": {
          "type": "object",
          "default": {},
          "description": "Profile data to create or merge (e.g. { email: \"...\", phone_number: \"...\" })",
          "additionalProperties": {}
        },
        "user_id": {
          "type": "string",
          "description": "The user ID"
        }
      },
      "additionalProperties": false
    }
    create_or_replace_user_push_token
    Declared idempotent
    Show server-provided details
    Server description (copied; language not verified)
    Create or replace a push/device token for a user.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "provider_key",
        "token",
        "user_id"
      ],
      "properties": {
        "token": {
          "type": "string",
          "description": "The token string"
        },
        "device": {
          "type": "object",
          "properties": {
            "ad_id": {
              "type": "string"
            },
            "model": {
              "type": "string"
            },
            "app_id": {
              "type": "string"
            },
            "platform": {
              "type": "string"
            },
            "device_id": {
              "type": "string"
            },
            "manufacturer": {
              "type": "string"
            }
          },
          "description": "Device metadata",
          "additionalProperties": false
        },
        "user_id": {
          "type": "string",
          "description": "The user ID"
        },
        "provider_key": {
          "enum": [
            "firebase-fcm",
            "apn",
            "expo",
            "onesignal"
          ],
          "type": "string",
          "description": "Push provider"
        }
      },
      "additionalProperties": false
    }
    create_or_update_tenant
    Declared idempotent
    Show server-provided details
    Server description (copied; language not verified)
    Create or replace a tenant. Tenants represent organizations or groups that users belong to.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "name",
        "tenant_id"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "Display name for the tenant"
        },
        "brand_id": {
          "type": "string",
          "description": "Brand ID to associate with this tenant"
        },
        "tenant_id": {
          "type": "string",
          "description": "The tenant ID"
        },
        "properties": {
          "type": "object",
          "description": "Custom properties for the tenant",
          "additionalProperties": {}
        },
        "user_profile": {
          "type": "object",
          "description": "Default profile data for users in this tenant",
          "additionalProperties": {}
        },
        "parent_tenant_id": {
          "type": "string",
          "description": "Parent tenant ID for hierarchical tenants"
        },
        "default_preferences": {
          "type": "object",
          "required": [
            "items"
          ],
          "properties": {
            "items": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "id",
                  "status"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Subscription topic ID this default applies to"
                  },
                  "type": {
                    "type": "string",
                    "const": "subscription_topic",
                    "description": "Always \"subscription_topic\" when provided"
                  },
                  "status": {
                    "enum": [
                      "OPTED_IN",
                      "OPTED_OUT",
                      "REQUIRED"
                    ],
                    "type": "string",
                    "description": "Default status for the topic. \"REQUIRED\" prevents users from opting out"
                  },
                  "custom_routing": {
                    "type": "array",
                    "items": {
                      "enum": [
                        "direct_message",
                        "email",
                        "push",
                        "sms",
                        "webhook",
                        "inbox"
                      ],
                      "type": "string"
                    },
                    "description": "Channels this topic delivers on when has_custom_routing is true"
                  },
                  "has_custom_routing": {
                    "type": "boolean",
                    "description": "Whether custom_routing overrides the topic's default channels"
                  }
                },
                "additionalProperties": false
              },
              "description": "One entry per subscription topic"
            }
          },
          "description": "Default notification preferences applied to users in this tenant. Example: { \"items\": [{ \"id\": \"topic_abc\", \"status\": \"OPTED_IN\", \"type\": \"subscription_topic\" }] }",
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    create_preference_section
    Annotation present; effect not classified
    Show server-provided details
    Server description (copied; language not verified)
    Create a preference section in your workspace. The section id is generated and returned. Add topics afterwards with create_preference_topic.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "Human-readable name for the section"
        },
        "routing_options": {
          "type": "array",
          "items": {
            "enum": [
              "direct_message",
              "email",
              "push",
              "sms",
              "webhook",
              "inbox"
            ],
            "type": "string"
          },
          "description": "Default channels for the section. Defaults to empty if omitted."
        },
        "has_custom_routing": {
          "type": "boolean",
          "description": "Whether the section defines custom routing for its topics"
        }
      },
      "additionalProperties": false
    }
    create_preference_topic
    Annotation present; effect not classified
    Show server-provided details
    Server description (copied; language not verified)
    Create a subscription preference topic inside a section. The topic id is generated and returned. Fails with 404 if the section does not exist.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "default_status",
        "name",
        "section_id"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "Human-readable name for the preference topic"
        },
        "section_id": {
          "type": "string",
          "description": "Id of the preference section to create the topic in"
        },
        "topic_data": {
          "type": "object",
          "description": "Arbitrary metadata associated with the topic",
          "additionalProperties": {}
        },
        "default_status": {
          "enum": [
            "OPTED_OUT",
            "OPTED_IN",
            "REQUIRED"
          ],
          "type": "string",
          "description": "Default subscription status applied when a recipient has not set their own"
        },
        "routing_options": {
          "type": "array",
          "items": {
            "enum": [
              "direct_message",
              "email",
              "push",
              "sms",
              "webhook",
              "inbox"
            ],
            "type": "string"
          },
          "description": "Default channels delivered for this topic. Defaults to empty if omitted."
        },
        "allowed_preferences": {
          "type": "array",
          "items": {
            "enum": [
              "snooze",
              "channel_preferences"
            ],
            "type": "string"
          },
          "description": "Preference controls a recipient may customize for this topic"
        },
        "include_unsubscribe_header": {
          "type": "boolean",
          "description": "Whether to include a list-unsubscribe header on emails for this topic"
        }
      },
      "additionalProperties": false
    }
    create_provider
    Annotation present; effect not classified
    Show server-provided details
    Server description (copied; language not verified)
    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.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "provider"
      ],
      "properties": {
        "alias": {
          "type": "string",
          "description": "Short alias for referencing this provider"
        },
        "title": {
          "type": "string",
          "description": "Display name for this provider configuration"
        },
        "provider": {
          "type": "string",
          "description": "Provider key from the catalog (e.g. sendgrid, twilio, firebase-fcm)"
        },
        "settings": {
          "type": "object",
          "description": "Provider-specific settings (API keys, credentials, etc.)",
          "additionalProperties": {}
        }
      },
      "additionalProperties": false
    }
    create_routing_strategy
    Annotation present; effect not classified
    Show server-provided details
    Server description (copied; language not verified)
    Create a routing strategy defining how notifications are delivered across channels and providers.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "name",
        "routing"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "Human-readable name for the routing strategy"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Tags for categorization"
        },
        "routing": {
          "type": "object",
          "required": [
            "channels",
            "method"
          ],
          "properties": {
            "method": {
              "enum": [
                "all",
                "single"
              ],
              "type": "string",
              "description": "Deliver to all channels or stop after first success"
            },
            "channels": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Ordered list of channel names"
            }
          },
          "description": "Routing tree defining channel selection method and order",
          "additionalProperties": false
        },
        "channels": {
          "type": "object",
          "description": "Per-channel delivery configuration",
          "additionalProperties": {}
        },
        "providers": {
          "type": "object",
          "description": "Per-provider delivery configuration",
          "additionalProperties": {}
        },
        "description": {
          "type": "string",
          "description": "Description of the routing strategy"
        }
      },
      "additionalProperties": false
    }
    delete_audience
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    Delete an audience by its ID.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "audience_id"
      ],
      "properties": {
        "audience_id": {
          "type": "string",
          "description": "The audience ID to delete"
        }
      },
      "additionalProperties": false
    }
    delete_brand
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    Delete a brand by its ID.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "brand_id"
      ],
      "properties": {
        "brand_id": {
          "type": "string",
          "description": "The brand ID to delete"
        }
      },
      "additionalProperties": false
    }
    delete_list
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    Delete a list by its ID.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "list_id"
      ],
      "properties": {
        "list_id": {
          "type": "string",
          "description": "The list ID"
        }
      },
      "additionalProperties": false
    }
    delete_profile
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    Delete a user profile permanently.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "user_id"
      ],
      "properties": {
        "user_id": {
          "type": "string",
          "description": "The user ID to delete"
        }
      },
      "additionalProperties": false
    }
    delete_provider
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    Delete a provider configuration. Returns 409 if the provider is still referenced by routing or notifications.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "provider_id"
      ],
      "properties": {
        "provider_id": {
          "type": "string",
          "description": "The provider configuration ID to delete"
        }
      },
      "additionalProperties": false
    }
    delete_tenant
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    Delete a tenant by its ID.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "tenant_id"
      ],
      "properties": {
        "tenant_id": {
          "type": "string",
          "description": "The tenant ID to delete"
        }
      },
      "additionalProperties": false
    }
    delete_tenant_preference
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    Remove default notification preference for a topic from a tenant.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "tenant_id",
        "topic_id"
      ],
      "properties": {
        "topic_id": {
          "type": "string",
          "description": "The subscription topic ID"
        },
        "tenant_id": {
          "type": "string",
          "description": "The tenant ID"
        }
      },
      "additionalProperties": false
    }
    delete_tenant_template
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    Delete a tenant notification template. Returns 204 on success, 404 if the template does not exist for this tenant.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "template_id",
        "tenant_id"
      ],
      "properties": {
        "tenant_id": {
          "type": "string",
          "description": "The tenant ID that owns the template"
        },
        "template_id": {
          "type": "string",
          "description": "The notification template ID to delete"
        }
      },
      "additionalProperties": false
    }
    delete_user_list_subscriptions
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    Delete all list subscriptions for a user.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "user_id"
      ],
      "properties": {
        "user_id": {
          "type": "string",
          "description": "The user ID"
        }
      },
      "additionalProperties": false
    }
    delete_user_preference_topic
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    Delete a user's preference for a specific subscription topic, reverting it to the topic's default status.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "topic_id",
        "user_id"
      ],
      "properties": {
        "user_id": {
          "type": "string",
          "description": "The user ID"
        },
        "topic_id": {
          "type": "string",
          "description": "The subscription topic ID"
        }
      },
      "additionalProperties": false
    }
    delete_user_token
    Declared destructive
    Show server-provided details
    Server description (copied; language not verified)
    Delete a specific push token for a user.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "token",
        "user_id"
      ],
      "properties": {
        "token": {
          "type": "string",
          "description": "The token identifier to delete"
        },
        "user_id": {
          "type": "string",
          "description": "The user ID"
        }
      },
      "additionalProperties": false
    }
    generate_jwt_for_user
    Annotation present; effect not classified
    Show server-provided details
    Server description (copied; language not verified)
    Generate a JWT authentication token for a user. Used for client-side SDK auth (Inbox, Preferences, etc.).
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "user_id"
      ],
      "properties": {
        "scopes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "default": [
            "write:user-tokens",
            "inbox:read:messages",
            "inbox:write:events",
            "read:preferences",
            "write:preferences",
            "read:brands"
          ],
          "description": "Permission scopes for the token"
        },
        "user_id": {
          "type": "string",
          "description": "The user ID to scope the token to"
        },
        "expires_in": {
          "type": "string",
          "default": "1h",
          "description": "Token expiry duration (e.g. \"1h\", \"2 days\")"
        }
      },
      "additionalProperties": false
    }
    get_audience
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get an audience by its ID, including its filter definition.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "audience_id"
      ],
      "properties": {
        "audience_id": {
          "type": "string",
          "description": "The audience ID"
        }
      },
      "additionalProperties": false
    }
    get_audit_event
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get a specific audit event by its ID.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "audit_event_id"
      ],
      "properties": {
        "audit_event_id": {
          "type": "string",
          "description": "The audit event ID"
        }
      },
      "additionalProperties": false
    }
    get_brand
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get a brand by its ID.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "brand_id"
      ],
      "properties": {
        "brand_id": {
          "type": "string",
          "description": "The brand ID"
        }
      },
      "additionalProperties": false
    }
    get_bulk_job
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get the status of a bulk job.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "job_id"
      ],
      "properties": {
        "job_id": {
          "type": "string",
          "description": "The bulk job ID"
        }
      },
      "additionalProperties": false
    }
    get_journey
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get a journey by ID. Pass version=draft to retrieve the working draft, or version=vN for a historical version. Defaults to published.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "journey_id"
      ],
      "properties": {
        "version": {
          "type": "string",
          "description": "Version to retrieve: \"draft\", \"published\" (default), or a version string like \"v001\""
        },
        "journey_id": {
          "type": "string",
          "description": "The journey template ID. Copy it exactly, character for character, from the response that returned it — never retype it from memory or reconstruct it."
        }
      },
      "additionalProperties": false
    }
    get_journey_template
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    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.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "journey_id",
        "notification_id"
      ],
      "properties": {
        "version": {
          "type": "string",
          "description": "Version to retrieve: \"draft\", \"published\" (default), or \"vN\""
        },
        "journey_id": {
          "type": "string",
          "description": "The journey template ID that owns this notification. Copy it exactly, character for character, from the response that returned it — never retype it from memory or reconstruct it."
        },
        "notification_id": {
          "type": "string",
          "description": "The notification template ID. Copy it exactly, character for character, from the response that returned it — never retype it from memory or reconstruct it."
        }
      },
      "additionalProperties": false
    }
    get_journey_template_content
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    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.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "journey_id",
        "notification_id"
      ],
      "properties": {
        "version": {
          "type": "string",
          "description": "Version to retrieve: \"draft\", \"published\" (default), or a version string like \"v001\""
        },
        "journey_id": {
          "type": "string",
          "description": "The journey template ID that owns this notification. Copy it exactly, character for character, from the response that returned it — never retype it from memory or reconstruct it."
        },
        "notification_id": {
          "type": "string",
          "description": "The notification template ID. Copy it exactly, character for character, from the response that returned it — never retype it from memory or reconstruct it."
        }
      },
      "additionalProperties": false
    }
    get_list
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get a list by its ID.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "list_id"
      ],
      "properties": {
        "list_id": {
          "type": "string",
          "description": "The list ID"
        }
      },
      "additionalProperties": false
    }
    get_list_subscribers
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get all subscribers of a list.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "list_id"
      ],
      "properties": {
        "cursor": {
          "type": "string",
          "description": "Pagination cursor"
        },
        "list_id": {
          "type": "string",
          "description": "The list ID"
        }
      },
      "additionalProperties": false
    }
    get_message
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get the full details and status of a single message by its ID.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "message_id"
      ],
      "properties": {
        "message_id": {
          "type": "string",
          "description": "The message ID to retrieve"
        }
      },
      "additionalProperties": false
    }
    get_message_content
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get the rendered content (HTML, text, subject) of a previously sent message.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "message_id"
      ],
      "properties": {
        "message_id": {
          "type": "string",
          "description": "The message ID"
        }
      },
      "additionalProperties": false
    }
    get_message_history
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get the event history for a message, showing each step in the delivery pipeline (enqueued, sent, delivered, etc.).
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "message_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "description": "Filter by event type"
        },
        "message_id": {
          "type": "string",
          "description": "The message ID"
        }
      },
      "additionalProperties": false
    }
    get_notification
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Retrieve a notification template by ID. Optionally request draft, published, or a version such as v001.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "notification_id"
      ],
      "properties": {
        "version": {
          "type": "string",
          "description": "Version to retrieve: \"draft\", \"published\" (default — omit this to get it), or a version string like \"v001\""
        },
        "notification_id": {
          "type": "string",
          "description": "The notification template ID. Copy it exactly, character for character, from the response that returned it — never retype it from memory or reconstruct it."
        }
      },
      "additionalProperties": false
    }
    get_notification_content
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get the published content blocks of a notification template.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "notification_id"
      ],
      "properties": {
        "notification_id": {
          "type": "string",
          "description": "The notification template ID. Copy it exactly, character for character, from the response that returned it — never retype it from memory or reconstruct it."
        }
      },
      "additionalProperties": false
    }
    get_notification_draft_content
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get the draft (unpublished) content blocks of a notification template.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "notification_id"
      ],
      "properties": {
        "notification_id": {
          "type": "string",
          "description": "The notification template ID. Copy it exactly, character for character, from the response that returned it — never retype it from memory or reconstruct it."
        }
      },
      "additionalProperties": false
    }
    get_notification_metrics
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Delivery 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 further back is refused with a payment error, which means the plan does not cover that window, NOT that there is no data. A coarser granularity can reach further back than a fine one. Reading the numbers correctly: - The first four counters are NESTED, not separate groups. Every delivered message is also counted in sent, every opened one in delivered, every clicked one in opened. So sent >= delivered >= opened >= clicked always. Report rates (delivered/sent) or the counters themselves. Do NOT add them together — the total is meaningless. And sent minus delivered is NOT a failure count; it is only 'did not reach the delivered stage', for any reason. - errors and undeliverable are counted separately and OVERLAP the funnel: a message that failed on one provider and succeeded on a retry appears in both errors and sent. They are not a remainder and do not complete a total. - Every counter is a count of distinct MESSAGES, not of events. A message that errored three times counts once in errors. - A bucket's `data` array holds one entry per provider and channel. To get a bucket total, add up the entries in that array — that is the only sum that means anything here. Note that rows for Courier's own built-in email sender are excluded, so these entries can add up to less than the workspace's true volume. What the buckets mean: - A message is counted in the bucket it was ENQUEUED in, not when the event happened. An open today of a message sent last Tuesday is counted in last Tuesday's bucket. So a past bucket can still change: yesterday's `opened` may be higher when you ask again tomorrow. - Results are cached for up to an hour and the pipeline adds its own lag, so a message sent minutes ago is expected NOT to appear yet. Never tell a user a just-sent message is missing; say the data has not caught up. - Read the window off the response's `start` and `end`, not off what you asked for. The API widens the window to whole buckets and returns the boundaries it actually used. - Quiet buckets are returned with an empty `data` array, so the series has no gaps. - An unknown template id returns an all-empty series rather than an error, and messages sent without a template never appear here at all. An empty result is not proof a template is unused — check that the id is right before concluding anything from it. - Because of that, a NOT FOUND / 404 error is never about the template id. It means the metrics endpoint itself could not be reached, which is an infrastructure or configuration problem on Courier's side. Say that the metrics service is unreachable and that someone should be told; do NOT tell the user to check or correct their template id, which sends them to fix something that was never wrong.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "notification_id"
      ],
      "properties": {
        "end": {
          "type": "string",
          "maxLength": 64,
          "description": "Window end, ISO 8601 with offset. Requires start. Must not be combined with lookback."
        },
        "start": {
          "type": "string",
          "maxLength": 64,
          "description": "Inclusive window start, ISO 8601 with offset (2026-04-01T00:00:00Z). Requires end. Must not be combined with lookback."
        },
        "lookback": {
          "type": "string",
          "maxLength": 32,
          "description": "Window length counted back from now, as an ISO 8601 duration (P30D, P12W, PT12H). Defaults to P30D. Must not be combined with start/end."
        },
        "granularity": {
          "enum": [
            "HOUR",
            "DAY",
            "WEEK",
            "MONTH"
          ],
          "type": "string",
          "default": "DAY",
          "description": "Bucket size. HOUR covers at most 7 days, DAY at most 90. Defaults to DAY."
        },
        "notification_id": {
          "type": "string",
          "minLength": 1,
          "description": "The notification template ID to report on (no commas or whitespace)"
        }
      },
      "additionalProperties": false
    }
    get_preference_section
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Retrieve a preference section by id, including its topics.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "section_id"
      ],
      "properties": {
        "section_id": {
          "type": "string",
          "description": "Id of the preference section"
        }
      },
      "additionalProperties": false
    }
    get_preference_topic
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Retrieve a topic within a section. Returns 404 if the section or topic does not exist, or the topic belongs to a different section.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "section_id",
        "topic_id"
      ],
      "properties": {
        "topic_id": {
          "type": "string",
          "description": "Id of the subscription preference topic"
        },
        "section_id": {
          "type": "string",
          "description": "Id of the preference section"
        }
      },
      "additionalProperties": false
    }
    get_provider
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Fetch a single provider configuration by ID.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "provider_id"
      ],
      "properties": {
        "provider_id": {
          "type": "string",
          "description": "The provider configuration ID"
        }
      },
      "additionalProperties": false
    }
    get_routing_strategy
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Retrieve a routing strategy by ID. Returns the full entity including routing, channels, and providers.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "routing_strategy_id"
      ],
      "properties": {
        "routing_strategy_id": {
          "type": "string",
          "description": "The routing strategy ID (rs_ prefix)"
        }
      },
      "additionalProperties": false
    }
    get_tenant
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get a tenant by its ID.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "tenant_id"
      ],
      "properties": {
        "tenant_id": {
          "type": "string",
          "description": "The tenant ID"
        }
      },
      "additionalProperties": false
    }
    get_tenant_template
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get a tenant notification template association by template ID.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "template_id",
        "tenant_id"
      ],
      "properties": {
        "tenant_id": {
          "type": "string",
          "description": "The tenant ID"
        },
        "template_id": {
          "type": "string",
          "description": "The template ID"
        }
      },
      "additionalProperties": false
    }
    get_tenant_template_version
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get a specific version of a tenant notification template (e.g. latest, published, or v1).
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "template_id",
        "tenant_id",
        "version"
      ],
      "properties": {
        "version": {
          "type": "string",
          "description": "Version identifier (latest, published, or v-prefixed)"
        },
        "tenant_id": {
          "type": "string",
          "description": "The tenant ID"
        },
        "template_id": {
          "type": "string",
          "description": "The template ID"
        }
      },
      "additionalProperties": false
    }
    get_translation
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get a translation for a specific locale (e.g. "en_US", "fr_FR").
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "locale"
      ],
      "properties": {
        "domain": {
          "type": "string",
          "default": "default",
          "description": "Translation domain (only \"default\" is supported currently)"
        },
        "locale": {
          "type": "string",
          "description": "Locale code (e.g. en_US, fr_FR)"
        }
      },
      "additionalProperties": false
    }
    get_user_list_subscriptions
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get all list subscriptions for a user.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "user_id"
      ],
      "properties": {
        "cursor": {
          "type": "string",
          "description": "Pagination cursor"
        },
        "user_id": {
          "type": "string",
          "description": "The user ID"
        }
      },
      "additionalProperties": false
    }
    get_user_preference_topic
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get a user's preference for a specific subscription topic.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "topic_id",
        "user_id"
      ],
      "properties": {
        "user_id": {
          "type": "string",
          "description": "The user ID"
        },
        "topic_id": {
          "type": "string",
          "description": "The subscription topic ID"
        },
        "tenant_id": {
          "type": "string",
          "description": "Scope to a specific tenant"
        }
      },
      "additionalProperties": false
    }
    get_user_preferences
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get a user's notification preferences (subscriptions, opt-outs, channel preferences).
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "user_id"
      ],
      "properties": {
        "user_id": {
          "type": "string",
          "description": "The user ID"
        },
        "tenant_id": {
          "type": "string",
          "description": "Omit this to get the user's workspace-level preferences — that answers most preference questions. Only pass it when you need the tenant-scoped overrides for one specific tenant instead."
        }
      },
      "additionalProperties": false
    }
    get_user_profile_by_id
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get a user profile by their ID. Returns profile data including email, phone, and custom properties.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "user_id"
      ],
      "properties": {
        "user_id": {
          "type": "string",
          "description": "The user ID to look up"
        }
      },
      "additionalProperties": false
    }
    get_user_push_token
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get a specific push/device token for a user.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "token",
        "user_id"
      ],
      "properties": {
        "token": {
          "type": "string",
          "description": "The token identifier"
        },
        "user_id": {
          "type": "string",
          "description": "The user ID"
        }
      },
      "additionalProperties": false
    }
    invoke_ad_hoc_automation
    Annotation present; effect not classified
    Show server-provided details
    Server description (copied; language not verified)
    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.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "automation"
      ],
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": {}
        },
        "brand": {
          "type": "string"
        },
        "profile": {
          "type": "object",
          "additionalProperties": {}
        },
        "template": {
          "type": "string"
        },
        "recipient": {
          "type": "string"
        },
        "automation": {
          "type": "object",
          "required": [
            "steps"
          ],
          "properties": {
            "steps": {
              "type": "array",
              "items": {
                "anyOf": [
                  {
                    "type": "object",
                    "required": [
                      "action"
                    ],
                    "properties": {
                      "if": {
                        "type": "string",
                        "description": "Condition expression"
                      },
                      "data": {
                        "type": "object",
                        "additionalProperties": {}
                      },
                      "brand": {
                        "type": "string"
                      },
                      "action": {
                        "type": "string",
                        "const": "send"
                      },
                      "profile": {
                        "type": "object",
                        "additionalProperties": {}
                      },
                      "template": {
                        "type": "string",
                        "description": "Notification template ID or key"
                      },
                      "recipient": {
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "required": [
                      "action",
                      "list"
                    ],
                    "properties": {
                      "if": {
                        "type": "string"
                      },
                      "data": {
                        "type": "object",
                        "additionalProperties": {}
                      },
                      "list": {
                        "type": "string",
                        "description": "List ID to send to"
                      },
                      "brand": {
                        "type": "string"
                      },
                      "action": {
                        "type": "string",
                        "const": "send-list"
                      },
                      "template": {
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "required": [
                      "action"
                    ],
                    "properties": {
                      "if": {
                        "type": "string"
                      },
                      "until": {
                        "type": "string",
                        "description": "ISO 8601 timestamp to wait until"
                      },
                      "action": {
                        "type": "string",
                        "const": "delay"
                      },
                      "duration": {
                        "type": "string",
                        "description": "ISO 8601 duration (e.g. \"PT1H\" for 1 hour)"
                      }
                    },
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "required": [
                      "action",
                      "cancelation_token"
                    ],
                    "properties": {
                      "if": {
                        "type": "string"
                      },
                      "action": {
                        "type": "string",
                        "const": "cancel"
                      },
                      "cancelation_token": {
                        "type": "string",
                        "description": "The token set when the original automation was invoked (single \"l\" spelling)"
                      }
                    },
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "required": [
                      "action"
                    ],
                    "properties": {
                      "if": {
                        "type": "string"
                      },
                      "merge": {
                        "enum": [
                          "none",
                          "overwrite",
                          "soft-merge",
                          "replace"
                        ],
                        "type": "string"
                      },
                      "action": {
                        "type": "string",
                        "const": "update-profile"
                      },
                      "profile": {
                        "type": "object",
                        "additionalProperties": {}
                      },
                      "recipient_id": {
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "required": [
                      "action",
                      "template"
                    ],
                    "properties": {
                      "if": {
                        "type": "string"
                      },
                      "action": {
                        "type": "string",
                        "const": "invoke"
                      },
                      "template": {
                        "type": "string",
                        "description": "Automation template ID to invoke"
                      }
                    },
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "required": [
                      "action",
                      "webhook"
                    ],
                    "properties": {
                      "if": {
                        "type": "string"
                      },
                      "action": {
                        "type": "string",
                        "const": "fetch-data"
                      },
                      "webhook": {
                        "type": "object",
                        "required": [
                          "url"
                        ],
                        "properties": {
                          "url": {
                            "type": "string"
                          },
                          "body": {
                            "type": "object",
                            "additionalProperties": {}
                          },
                          "method": {
                            "enum": [
                              "GET",
                              "POST",
                              "PUT",
                              "PATCH"
                            ],
                            "type": "string"
                          },
                          "headers": {
                            "type": "object",
                            "additionalProperties": {
                              "type": "string"
                            }
                          }
                        },
                        "description": "HTTP request configuration",
                        "additionalProperties": false
                      },
                      "merge_strategy": {
                        "enum": [
                          "replace",
                          "overwrite",
                          "soft-merge"
                        ],
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  }
                ]
              },
              "description": "Ordered array of automation steps"
            },
            "cancelation_token": {
              "type": "string",
              "description": "Token for cancelling this automation later (single \"l\" spelling)"
            }
          },
          "description": "The automation definition with typed steps",
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    invoke_automation_template
    Annotation present; effect not classified
    Show server-provided details
    Server description (copied; language not verified)
    Invoke 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" } }.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "recipient",
        "template_id"
      ],
      "properties": {
        "data": {
          "type": "object",
          "description": "Data to pass to the automation",
          "additionalProperties": {}
        },
        "brand": {
          "type": "string",
          "description": "Brand ID override"
        },
        "profile": {
          "type": "object",
          "description": "Profile data for the recipient",
          "additionalProperties": {}
        },
        "template": {
          "type": "string",
          "description": "Notification template override"
        },
        "recipient": {
          "type": "string",
          "description": "Recipient user ID"
        },
        "template_id": {
          "type": "string",
          "description": "The automation template ID"
        }
      },
      "additionalProperties": false
    }
    invoke_journey
    Annotation present; effect not classified
    Show server-provided details
    Server description (copied; language not verified)
    Invoke 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" } }.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "template_id"
      ],
      "properties": {
        "data": {
          "type": "object",
          "description": "Data payload passed to the journey for conditions and template variables",
          "additionalProperties": {}
        },
        "profile": {
          "type": "object",
          "description": "Profile data for the user (email, phone, custom fields)",
          "additionalProperties": {}
        },
        "user_id": {
          "type": "string",
          "description": "Recipient user ID. Can also be resolved from profile or data."
        },
        "template_id": {
          "type": "string",
          "description": "The journey template ID"
        }
      },
      "additionalProperties": false
    }
    list_audience_members
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    List all members of an audience.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "audience_id"
      ],
      "properties": {
        "cursor": {
          "type": "string",
          "description": "Pagination cursor"
        },
        "audience_id": {
          "type": "string",
          "description": "The audience ID"
        }
      },
      "additionalProperties": false
    }
    list_audiences
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    List all audiences in the workspace.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "cursor": {
          "type": "string",
          "description": "Pagination cursor"
        }
      },
      "additionalProperties": false
    }
    list_audit_events
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    List audit events in the workspace. Useful for tracking API usage and changes.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "cursor": {
          "type": "string",
          "description": "Pagination cursor"
        }
      },
      "additionalProperties": false
    }
    list_automations
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    List automation templates in the workspace, returning each template_id and its version state. Optionally filter by version.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "cursor": {
          "type": "string",
          "description": "Pagination cursor"
        },
        "version": {
          "enum": [
            "published",
            "draft"
          ],
          "type": "string",
          "description": "Filter by version state"
        }
      },
      "additionalProperties": false
    }
    list_brands
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    List all brands in the workspace.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "cursor": {
          "type": "string",
          "description": "Pagination cursor"
        }
      },
      "additionalProperties": false
    }
    list_bulk_users
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    List the users in a bulk job.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "job_id"
      ],
      "properties": {
        "cursor": {
          "type": "string",
          "description": "Pagination cursor"
        },
        "job_id": {
          "type": "string",
          "description": "The bulk job ID"
        }
      },
      "additionalProperties": false
    }
    list_digest_instances
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    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.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "schedule_id"
      ],
      "properties": {
        "limit": {
          "type": "number",
          "description": "Max instances to return (default 20, max 100)"
        },
        "cursor": {
          "type": "string",
          "description": "Pagination cursor from a previous response"
        },
        "schedule_id": {
          "type": "string",
          "description": "The digest schedule id, in the form \"sch/{uuid}\""
        }
      },
      "additionalProperties": false
    }
    list_journey_template_versions
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    List published versions of a journey-scoped notification template, ordered most recent first.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "journey_id",
        "notification_id"
      ],
      "properties": {
        "journey_id": {
          "type": "string",
          "description": "The journey template ID that owns this notification"
        },
        "notification_id": {
          "type": "string",
          "description": "The notification template ID"
        }
      },
      "additionalProperties": false
    }
    list_journey_templates
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    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.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "journey_id"
      ],
      "properties": {
        "limit": {
          "type": "number",
          "description": "Page size (1–100)"
        },
        "cursor": {
          "type": "string",
          "description": "Check the response's paging.more before calling again — false means every template already came back, and calling again with the same arguments returns the same page, not new data. This is an opaque token — never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."
        },
        "journey_id": {
          "type": "string",
          "description": "The journey template ID. Copy it exactly, character for character, from the response that returned it — never retype it from memory or reconstruct it."
        }
      },
      "additionalProperties": false
    }
    list_journey_versions
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    List published versions of a journey, ordered most recent first.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "journey_id"
      ],
      "properties": {
        "journey_id": {
          "type": "string",
          "description": "The journey template ID"
        }
      },
      "additionalProperties": false
    }
    list_journeys
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    List journey templates in the workspace, returning the journey IDs and version state of each. Optionally filter by version (published or draft).
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "cursor": {
          "type": "string",
          "description": "If a response has no cursor, every journey already came back — calling this again with the same arguments returns the same page, not new data. This is an opaque token — never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."
        },
        "version": {
          "enum": [
            "published",
            "draft"
          ],
          "type": "string",
          "description": "Filter by version state. Defaults to published, and the two are never combined in one call. If you don't know whether the journey you want is published or still a draft, calling this twice — once per value — is the correct way to check both, not a repeat."
        }
      },
      "additionalProperties": false
    }
    list_lists
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    Get all lists. Optionally filter by pattern (e.g. 'example.list.*').
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "cursor": {
          "type": "string",
          "description": "Pagination cursor"
        },
        "pattern": {
          "type": "string",
          "description": "Filter pattern (e.g. 'example.list.*')"
        }
      },
      "additionalProperties": false
    }
    list_messages
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    List messages you've previously sent. Filter by status, recipient, notification, provider, tags, or tenant.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "tag": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Filter by metadata tags"
        },
        "list": {
          "type": "string",
          "description": "Filter by list ID"
        },
        "tags": {
          "type": "string",
          "description": "Comma-delimited list of tags"
        },
        "event": {
          "type": "string",
          "description": "Filter by event ID"
        },
        "cursor": {
          "type": "string",
          "description": "For fetching the next page. This is an opaque token — never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."
        },
        "status": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Filter by status (e.g. DELIVERED, UNDELIVERABLE)"
        },
        "traceId": {
          "type": "string",
          "description": "Filter by trace ID"
        },
        "archived": {
          "type": "boolean",
          "description": "This NARROWS, it does not widen: true returns ONLY archived messages, excluding every active one. Omit it entirely to search active messages — the default view for a normal delivery question. Setting it true is not the thorough or safe choice; it is a different, much smaller result set."
        },
        "provider": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Filter by provider key (e.g. sendgrid, twilio)"
        },
        "messageId": {
          "type": "string",
          "description": "Filter by message ID"
        },
        "recipient": {
          "type": "string",
          "description": "Filter by recipient user ID"
        },
        "tenant_id": {
          "type": "string",
          "description": "Filter by tenant ID"
        },
        "notification": {
          "type": "string",
          "description": "Filter by notification ID"
        },
        "enqueued_after": {
          "type": "string",
          "description": "ISO 8601 timestamp; only return messages enqueued after this time"
        }
      },
      "additionalProperties": false
    }
    list_notification_checks
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    List checks for a notification submission.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "notification_id",
        "submission_id"
      ],
      "properties": {
        "submission_id": {
          "type": "string",
          "description": "The submission ID for the checks resource"
        },
        "notification_id": {
          "type": "string",
          "description": "The notification template ID"
        }
      },
      "additionalProperties": false
    }
    list_notification_versions
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    List version history for a notification template.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "notification_id"
      ],
      "properties": {
        "limit": {
          "type": "number",
          "description": "Max versions per page (default 10, max 10)"
        },
        "cursor": {
          "type": "string",
          "description": "Pagination cursor from a previous response"
        },
        "notification_id": {
          "type": "string",
          "description": "The notification template ID"
        }
      },
      "additionalProperties": false
    }
    list_notifications
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    List notification templates. Optionally filter by cursor.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "cursor": {
          "type": "string",
          "description": "This is an opaque token — never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."
        }
      },
      "additionalProperties": false
    }
    list_preference_sections
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    List the workspace's preference sections. Each section embeds its topics.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    list_preference_topics
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    List the topics in a preference section.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "section_id"
      ],
      "properties": {
        "section_id": {
          "type": "string",
          "description": "Id of the preference section"
        }
      },
      "additionalProperties": false
    }
    list_provider_catalog
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    List available provider types from the catalog with their configuration schemas.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "keys": {
          "type": "string",
          "description": "Comma-separated provider keys to filter by"
        },
        "name": {
          "type": "string",
          "description": "Substring match on provider name"
        },
        "channel": {
          "type": "string",
          "description": "Filter by channel type (email, sms, push, etc.)"
        }
      },
      "additionalProperties": false
    }
    list_providers
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    List configured provider integrations for the workspace.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "cursor": {
          "type": "string",
          "description": "This is an opaque token — never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."
        }
      },
      "additionalProperties": false
    }
    list_routing_strategies
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    List routing strategies in the workspace. Returns metadata only; use get for full details.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "limit": {
          "type": "number",
          "description": "Max results per page (default 20, max 100)"
        },
        "cursor": {
          "type": "string",
          "description": "Pagination cursor"
        }
      },
      "additionalProperties": false
    }
    list_routing_strategy_notifications
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    List notification templates associated with a routing strategy. Useful for checking linked templates before archiving.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "routing_strategy_id"
      ],
      "properties": {
        "limit": {
          "type": "number",
          "description": "Max results per page (default 20, max 100)"
        },
        "cursor": {
          "type": "string",
          "description": "Pagination cursor"
        },
        "routing_strategy_id": {
          "type": "string",
          "description": "The routing strategy ID (rs_ prefix)"
        }
      },
      "additionalProperties": false
    }
    list_tenant_templates
    Declared read-only
    Show server-provided details
    Server description (copied; language not verified)
    List notification templates configured for a tenant.
    Input schema (server-provided preview — do not copy)
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "tenant_id"
      ],
      "properties": {
        "limit": {
          "type": "number",
          "description": "Max results per page (default 20, max 100)"
        },
        "cursor": {
          "type": "string",
          "description": "Pagination cursor"
        },
        "tenant_id": {
          "type": "string",
          "description": "The tenant ID"
        }
      },
      "additionalProperties": false
    }

    Showing 100 of 145 tools; 45 are hidden by the report size limit.

    Evidence and limitations

    Method: anonymous Streamable HTTP probe. We never invoke a tool.

    Attempted protocols: 2026-07-28, 2025-11-25

    Protocol2025-11-25
    TransportStreamable HTTP
    AuthNo authentication challenge observed
    EvidencePublic contract observed
    Total latency1298 ms
    Response bytes139995

    No diagnostic errors.

    Observation history
    Operational
    · stable since
    2025-11-25 · 145 tools · no change · 2 checks
    Operational
    2025-11-25 · 145 tools
    Unreachable now
    No protocol
    Operational
    · stable since
    2025-11-25 · 145 tools · no change · 12 checks
    Unreachable now
    No protocol
    Operational
    · stable since
    2025-11-25 · 145 tools · no change · 13 checks
    Unreachable now
    No protocol
    Operational
    · stable since
    2025-11-25 · 145 tools · no change · 17 checks
    Complete public contract · 2025-11-25 · 145 tools
    77a43d5cf040
    Complete public contract · 2025-11-25 · 145 tools
    167725ddc38b

    Deep monitoring eligibility

    Eligible for deep monitoring

    A complete public tools/list contract was observed, so a future deep-monitoring baseline can be compared safely.

    Personal Watch is not open yet. This report does not start a Watch or a payment.

    See public monitoring

    Automatic monitoring later

    Saving this connector does not start a Watch. Watch is a future offer; subscriptions and alerts are not available yet.

    Full Watch. Availability, protocol, auth and public tool contract changes can be compared.