Preview: SendMock has no stable release yet. These docs follow develop.

MCP reference

System tools

sendmock_reset

Delete all traffic and restore the seed configuration.

Toolset admin.

  • Destructive

No inputs.

Example call

{
  "name": "sendmock_reset",
  "arguments": {}
}

Result: nothing

API
POST/api/v1/reset
CLI
sendmock reset --yes
In the app
Settings > General > Reset to seed

sendmock_sample_send

Create a sample email, SMS, verification or HTTP request through the normal path.

Toolset admin; also answers as sendmock_email_send_test.

    InputTypeDescription
    kindrequiredstring
    What to create: email, sms, verification or http.Example: email
    tostring
    The recipient of the sample email.Example: [email protected]
    subjectstring
    The subject of the sample email.Example: Hello from SendMock
    htmlstring
    The HTML body of the sample email.Example: <p>It works!</p>
    webhook_endpoint_idsstring[]
    Send this action's webhooks to exactly these endpoints (IDs from GET /api/v1/webhooks/endpoints) instead of the ones the rules pick; an empty list sends none. Leave it out to let the rules decide.Example: ["01JB7T9Q2RENDPOINT00000000"]
    webhook_requestsWebhookRequestEdit[]
    Payloads edited for this action, by endpoint: each body is sent as written instead of the rendered one and signed over those bytes. Leave it out to send the rendered payloads.Example: [{"endpoint_id":"01JB7T9Q2RENDPOINT00000000","event_type":"email.bounced","body":"{\"type\":\"email.bounced\",\"data\":{\"reason\":\"edited\"}}","headers":{"x-tenant":"acme"}}]

    Example call

    {
      "name": "sendmock_sample_send",
      "arguments": {
        "kind": "email",
        "to": "[email protected]",
        "subject": "Hello from SendMock"
      }
    }

    Result: CreatedSample

    API
    POST/api/v1/samples/{kind}
    CLI
    sendmock sample <kind>
    In the app
    Empty screens > Send a sample email, SMS, verification or request

    sendmock_settings_get

    Every runtime setting.

    Toolset admin.

    • Read only

    No inputs.

    Example call

    {
      "name": "sendmock_settings_get",
      "arguments": {}
    }

    Result: AppSettings

    API
    GET/api/v1/settings
    CLI
    sendmock settings get
    In the app
    Settings

    sendmock_settings_update

    Change settings; send only the changed keys.

    Toolset admin; also answers as sendmock_chaos_set.

    • Idempotent
    InputTypeDescription
    max_emailsnumber
    The most emails kept; the oldest are deleted past it. 0 keeps every email (no limit).Example: 1000
    max_smsnumber
    The most SMS kept (with verifications and push notifications); the oldest are deleted past it. 0 keeps every SMS (no limit).Example: 1000
    max_age_daysnumber
    Null keeps traffic until the count limits prune it.Example: 7
    is_plus_address_tagging_enabledboolean
    Tags [email protected] with invoice.Example: true
    email_outcome_profilestring
    off sends no delivery events, auto-delivered marks every email delivered after a short delay, realistic adds bounces and complaints at the rates below.One of: off, auto-delivered, realisticExample: off
    email_outcome_bounce_rate_percentnumber
    Used by the realistic outcome profile.Example: 5
    email_outcome_complaint_rate_percentnumber
    Complaints in the realistic outcome profile, 0 to 100.Example: 1
    relay_smtp_urlstring
    Relay for release and auto-forward; the password is always masked.Example: smtp://user:[email protected]:587
    relay_recipient_allowliststring[]
    Glob patterns; release stays off while this is empty.Example: ["*@yourcompany.com"]
    spamassassin_addressstring
    host:port of a SpamAssassin spamd; null turns the spam check off.Example: 127.0.0.1:783
    sms_simulation_profilestring
    instant delivers at once, realistic goes queued, sent, then delivered over a few seconds, manual stays sent until you pick a status.One of: instant, realistic, manualExample: instant
    sms_failure_rate_percentnumber
    The share of SMS that fail at random, 0 to 100.Example: 0
    is_strict_twilio_test_modeboolean
    Rejects numbers that are not Twilio test numbers with error 21606, like real test credentials.Example: false
    is_magic_numbers_enabledboolean
    Off: the built-in Twilio and SendMock numbers behave like any number.Example: true
    is_magic_addresses_enabledboolean
    Off: the built-in magic addresses behave like any address.Example: true
    fire_opened_events_on_viewboolean
    Fires email.opened and sms.opened when you open a message in the UI.Example: true
    opened_event_modestring
    first_open fires on the first view only, every_open on each view.One of: first_open, every_openExample: first_open
    chaos_smtp_reject_next_countnumber
    Rejects the next N SMTP messages, to test your app's retries.Example: 0
    chaos_smtp_reject_codenumber
    The SMTP code used for rejected messages: 421, 450, 550 or 552.One of: 421, 450, 550, 552Example: 450
    chaos_smtp_reject_recipient_patternstring
    Glob; matching recipients get 550 No such user.Example: *@unknown.test
    chaos_smtp_command_latency_msnumber
    Delay added to every SMTP command, in milliseconds.Example: 0
    is_chaos_smtp_drop_during_data_enabledboolean
    Drops the connection during DATA, to test half-sent messages.Example: false
    otp_patternsstring[]
    Ordered; the first capture group of the first match is the code.Example: ["code[:\\s]+(\\d{4,8})"]
    update_check_modestring
    When SendMock looks for a newer release: off never calls out, manual only on request, daily on start and once a day.One of: off, manual, dailyExample: off
    inbound_email_domainsstring[]
    Mail for these domains is incoming; offered as Forward suggestions.Example: ["reply.app.test"]
    payment_merchant_namestring
    Shown on checkout pages and as {merchant} in step labels.Example: Demo Shop
    payment_default_currencystring
    For hosted checkouts created without a currency.Example: USD
    payment_outcome_profilestring
    What a new hosted checkout does: interactive waits for the page, auto_success and auto_decline settle at once, random succeeds at the rate below.One of: interactive, auto_success, auto_decline, randomExample: interactive
    payment_random_success_rate_percentnumber
    Used by the random outcome profile.Example: 80
    verify_default_code_lengthnumber
    Digits in each code of a Verify service made without its own code length, 4 to 10.Example: 6
    verify_default_ttl_secondsnumber
    How long a code stays valid, in seconds, for a Verify service made without its own TTL.Example: 600
    verify_fixed_codestring
    Sent by every Verify service without its own fixed code; null for random codes.Example: 123456

    Example call

    {
      "name": "sendmock_settings_update",
      "arguments": {
        "max_emails": 1000,
        "max_sms": 1000
      }
    }

    Result: AppSettings

    API
    PATCH/api/v1/settings
    CLI
    sendmock settings set
    In the app
    Settings > Save changes

    sendmock_stats

    Counts and rates shown on the Overview.

    Toolset core.

    • Read only

    No inputs.

    Example call

    {
      "name": "sendmock_stats",
      "arguments": {}
    }

    Result: AppStats

    API
    GET/api/v1/stats
    CLI
    sendmock stats
    In the app
    Overview

    sendmock_status

    Liveness check; answers while the server runs. Version, listen addresses and enabled features.

    Toolset core.

    • Read only
    InputTypeDescription
    viewrequiredstring
    Picks what to do. health: Liveness check; answers while the server runs. info: Version, listen addresses and enabled features.One of: health, infoExample: health

    Example call

    {
      "name": "sendmock_status",
      "arguments": {
        "view": "health"
      }
    }

    Result: HealthStatus | AppInfo

    API
    view: healthGET/api/v1/healthview: infoGET/api/v1/info
    CLI
    sendmock health, sendmock status
    In the app
    Sidebar > live connection dot; Settings > About

    sendmock_update_check

    Whether a newer release exists for this channel, with its notes and upgrade command.

    Toolset admin.

    • Read only

    No inputs.

    Example call

    {
      "name": "sendmock_update_check",
      "arguments": {}
    }

    Result: UpdateCheckResult

    API
    GET/api/v1/updates
    CLI
    sendmock update check
    In the app
    Settings > About > Check GitHub Releases for updates