addrbookFor publishers
← The evidence ledger

Evidence row 1475070

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint d62c4077-ef68-40c9-9c81-6e940c7223ef
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
f731362ad859d143d8fdb4902abb58c70c8082c7ee20f15995ac7c712feba67e
Leaf
0x44cf7c0e5a69cfc99d37ae70f66f06e99c239dd66f6f93ceabff8823de43ccd6

What was observed

{
  "count": 46,
  "tools": [
    {
      "description": "Cancel a scheduled email.\n\nRequires a `full_access` API key. API: `POST /emails/{id}/cancel` (operationId `cancelEmail`, Emails).",
      "inputSchema": {
        "properties": {
          "id": {
            "description": "The email id.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "cancel_email"
    },
    {
      "description": "Create an API key.\n\nThe `token` is returned only in this response.\n\nRequires a `full_access` API key. API: `POST /api-keys` (operationId `createApiKey`, API Keys).",
      "inputSchema": {
        "properties": {
          "domain_id": {
            "description": "Restrict a `sending_access` key to one of your domains. Not allowed with `full_access`.",
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string"
          },
          "permission": {
            "default": "full_access",
            "enum": [
              "full_access",
              "sending_access"
            ],
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "name": "create_api_key"
    },
    {
      "description": "Create an audience.\n\nRequires a `full_access` API key. API: `POST /audiences` (operationId `createAudience`, Audiences).",
      "inputSchema": {
        "properties": {
          "name": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "name": "create_audience"
    },
    {
      "description": "Create a broadcast.\n\nCreates a draft. The `from` address must belong to a verified domain of your team and `audience_id` to one of your audiences.\n\nRequires a `full_access` API key. API: `POST /broadcasts` (operationId `createBroadcast`, Broadcasts).",
      "inputSchema": {
        "properties": {
          "audience_id": {
            "format": "uuid",
            "type": "string"
          },
          "from": {
            "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
            "examples": [
              "Acme <hello@acme.com>"
            ],
            "type": "string"
          },
          "html": {
            "type": "string"
          },
          "name": {
            "description": "Internal name",
            "maxLength": 100,
            "not shown to recipients.": null,
            "type": "string"
          },
          "preview_text": {
            "maxLength": 200,
            "type": "string"
          },
          "reply_to": {
            "oneOf": [
              {
                "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
                "examples": [
                  "Acme <hello@acme.com>"
                ],
                "type": "string"
              },
              {
                "items": {
                  "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
                  "examples": [
                    "Acme <hello@acme.com>"
                  ],
                  "type": "string"
                },
                "maxItems": 50,
                "minItems": 1,
                "type": "array"
              }
            ]
          },
          "subject": {
            "maxLength": 998,
            "minLength": 1,
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "audience_id",
          "from",
          "subject"
        ],
        "type": "object"
      },
      "name": "create_broadcast"
    },
    {
      "description": "Create a contact.\n\nEmails are lower-cased. An address can only appear once per audience.\n\nRequires a `full_access` API key. API: `POST /audiences/{audienceId}/contacts` (operationId `createContact`, Contacts).",
      "inputSchema": {
        "properties": {
          "audience_id": {
            "format": "uuid",
            "type": "string"
          },
          "email": {
            "format": "email",
            "type": "string"
          },
          "first_name": {
            "maxLength": 100,
            "type": "string"
          },
          "last_name": {
            "maxLength": 100,
            "type": "string"
          },
          "unsubscribed": {
            "default": false,
            "type": "boolean"
          }
        },
        "required": [
          "audience_id",
          "email"
        ],
        "type": "object"
      },
      "name": "create_contact"
    },
    {
      "description": "Create a domain.\n\nRegisters a domain and returns the DNS records to add (three DKIM CNAMEs, plus MX and SPF on the MAIL FROM subdomain).\nDomain names are globally unique. The number of domains is limited by your plan (Free 3, Pro 10, Scale 1,000).\n\nThe response lists the DNS records (DKIM CNAMEs, MAIL FROM MX and SPF TXT) the user must add at their DNS provider; afterwards call verify_domain and then get_domain to see the new status. DNS changes can take minutes to hours.\n\nRequires a `full_access` API key. API: `POST /domains` (operationId `createDomain`, Domains).",
      "inputSchema": {
        "properties": {
          "custom_return_path": {
            "default": "send",
            "description": "Subdomain used for the custom MAIL FROM (bounce handling and SPF).",
            "pattern": "^[a-z0-9-]{1,63}$",
            "type": "string"
          },
          "name": {
            "description": "Domain or subdomain you own. Lower-cased.",
            "examples": [
              "acme.com"
            ],
            "type": "string"
          },
          "region": {
            "description": "Accepted for compatibility. The region is chosen by the platform and returned on the domain.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Platform mode. Make the domain tenant-owned (our tenant id or your `external_id`). Mail from it is attributed to that tenant.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "name": "create_domain"
    },
    {
      "description": "Add a suppression.\n\nAdds the address with reason `manual`. Adding an address that is already suppressed returns the existing entry.\n\nRequires a `full_access` API key. API: `POST /suppressions` (operationId `createSuppression`, Suppressions).",
      "inputSchema": {
        "properties": {
          "email": {
            "format": "email",
            "type": "string"
          }
        },
        "required": [
          "email"
        ],
        "type": "object"
      },
      "name": "create_suppression"
    },
    {
      "description": "Create a tenant.\n\nCreates one of your customers, with its own SES tenant (isolated reputation). `external_id` must be unique within your account.\n\nRequires a `full_access` API key. API: `POST /tenants` (operationId `createTenant`, Tenants).",
      "inputSchema": {
        "properties": {
          "daily_limit": {
            "description": "Max recipients per day for this tenant. Omit or null for no cap.",
            "minimum": 1,
            "type": [
              "integer",
              "null"
            ]
          },
          "external_id": {
            "description": "Your own id for the customer. Unique per account; accepted wherever a tenant id is.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "name": {
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "name": "create_tenant"
    },
    {
      "description": "Create a webhook.\n\nIn production the endpoint must use https and resolve to a public address.\n\nRequires a `full_access` API key. API: `POST /webhooks` (operationId `createWebhook`, Webhooks).",
      "inputSchema": {
        "properties": {
          "endpoint": {
            "description": "Public URL that receives POST requests. https is required in production.",
            "format": "uri",
            "type": "string"
          },
          "events": {
            "items": {
              "description": "Event names you can subscribe a webhook to.",
              "enum": [
                "email.sent",
                "email.delivered",
                "email.delivery_delayed",
                "email.bounced",
                "email.complained",
                "email.opened",
                "email.clicked",
                "email.failed",
                "email.scheduled",
                "email.suppressed"
              ],
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "endpoint",
          "events"
        ],
        "type": "object"
      },
      "name": "create_webhook"
    },
    {
      "description": "Delete an API key.\n\nThe key stops working immediately. The response body is an empty object.\n\nRequires a `full_access` API key. API: `DELETE /api-keys/{id}` (operationId `deleteApiKey`, API Keys).",
      "inputSchema": {
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "delete_api_key"
    },
    {
      "description": "Delete an audience.\n\nAlso deletes its contacts.\n\nRequires a `full_access` API key. API: `DELETE /audiences/{id}` (operationId `deleteAudience`, Audiences).",
      "inputSchema": {
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "delete_audience"
    },
    {
      "description": "Delete a broadcast.\n\nOnly drafts and broadcasts that are scheduled for the future can be deleted.\n\nRequires a `full_access` API key. API: `DELETE /broadcasts/{id}` (operationId `deleteBroadcast`, Broadcasts).",
      "inputSchema": {
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "delete_broadcast"
    },
    {
      "description": "Delete a contact.\n\nRequires a `full_access` API key. API: `DELETE /audiences/{audienceId}/contacts/{idOrEmail}` (operationId `deleteContact`, Contacts).",
      "inputSchema": {
        "properties": {
          "audience_id": {
            "format": "uuid",
            "type": "string"
          },
          "id_or_email": {
            "description": "The contact id or its (URL-encoded) email address.",
            "examples": [
              "jane@example.com"
            ],
            "type": "string"
          }
        },
        "required": [
          "audience_id",
          "id_or_email"
        ],
        "type": "object"
      },
      "name": "delete_contact"
    },
    {
      "description": "Delete a domain.\n\nRequires a `full_access` API key. API: `DELETE /domains/{id}` (operationId `deleteDomain`, Domains).",
      "inputSchema": {
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "delete_domain"
    },
    {
      "description": "Remove a suppression.\n\nRequires a `full_access` API key. API: `DELETE /suppressions/{idOrEmail}` (operationId `deleteSuppression`, Suppressions).",
      "inputSchema": {
        "properties": {
          "id_or_email": {
            "description": "The suppression id or the (URL-encoded) email address.",
            "examples": [
              "bounced@example.com"
            ],
            "type": "string"
          }
        },
        "required": [
          "id_or_email"
        ],
        "type": "object"
      },
      "name": "delete_suppression"
    },
    {
      "description": "Delete a tenant.\n\nFails with `422` while the tenant still has domains; delete those first.\n\nRequires a `full_access` API key. API: `DELETE /tenants/{ref}` (operationId `deleteTenant`, Tenants).",
      "inputSchema": {
        "properties": {
          "ref": {
            "description": "The tenant id or your own `external_id`.",
            "examples": [
              "cust_123"
            ],
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "ref"
        ],
        "type": "object"
      },
      "name": "delete_tenant"
    },
    {
      "description": "Delete a webhook.\n\nRequires a `full_access` API key. API: `DELETE /webhooks/{id}` (operationId `deleteWebhook`, Webhooks).",
      "inputSchema": {
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "delete_webhook"
    },
    {
      "description": "Retrieve an audience.\n\nRequires a `full_access` API key. API: `GET /audiences/{id}` (operationId `getAudience`, Audiences).",
      "inputSchema": {
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "get_audience"
    },
    {
      "description": "Retrieve a broadcast.\n\nRequires a `full_access` API key. API: `GET /broadcasts/{id}` (operationId `getBroadcast`, Broadcasts).",
      "inputSchema": {
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "get_broadcast"
    },
    {
      "description": "Check a broadcast before sending.\n\nSpacePost extension (not part of Resend). Returns a deliverability checklist: sender domain and DMARC, subject, Gmail\nclipping (HTML over 102 KB), image-heavy bodies, link shorteners, spam phrases, unsubscribe link and audience quality.\n`ready` is false when any check has level `error`; `POST /broadcasts/{id}/send` is then refused with `validation_error`.\nWarnings never block a send.\n\nRequires a `full_access` API key. API: `GET /broadcasts/{id}/readiness` (operationId `getBroadcastReadiness`, Broadcasts).",
      "inputSchema": {
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "get_broadcast_readiness"
    },
    {
      "description": "Retrieve a contact.\n\nRequires a `full_access` API key. API: `GET /audiences/{audienceId}/contacts/{idOrEmail}` (operationId `getContact`, Contacts).",
      "inputSchema": {
        "properties": {
          "audience_id": {
            "format": "uuid",
            "type": "string"
          },
          "id_or_email": {
            "description": "The contact id or its (URL-encoded) email address.",
            "examples": [
              "jane@example.com"
            ],
            "type": "string"
          }
        },
        "required": [
          "audience_id",
          "id_or_email"
        ],
        "type": "object"
      },
      "name": "get_contact"
    },
    {
      "description": "Retrieve a domain.\n\nRequires a `full_access` API key. API: `GET /domains/{id}` (operationId `getDomain`, Domains).",
      "inputSchema": {
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "get_domain"
    },
    {
      "description": "Retrieve an email.\n\nRequires a `full_access` API key. API: `GET /emails/{id}` (operationId `getEmail`, Emails).",
      "inputSchema": {
        "properties": {
          "id": {
            "description": "The email id.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "get_email"
    },
    {
      "description": "Retrieve a tenant.\n\nRequires a `full_access` API key. API: `GET /tenants/{ref}` (operationId `getTenant`, Tenants).",
      "inputSchema": {
        "properties": {
          "ref": {
            "description": "The tenant id or your own `external_id`.",
            "examples": [
              "cust_123"
            ],
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "ref"
        ],
        "type": "object"
      },
      "name": "get_tenant"
    },
    {
      "description": "Retrieve a webhook.\n\nRequires a `full_access` API key. API: `GET /webhooks/{id}` (operationId `getWebhook`, Webhooks).",
      "inputSchema": {
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "get_webhook"
    },
    {
      "description": "List API keys.\n\nRequires a `full_access` API key. API: `GET /api-keys` (operationId `listApiKeys`, API Keys).",
      "inputSchema": {
        "properties": {
          "after": {
            "description": "Return items older than this id (next page). Cannot be combined with `before`.",
            "format": "uuid",
            "type": "string"
          },
          "before": {
            "description": "Return items newer than this id (previous page). Cannot be combined with `after`.",
            "format": "uuid",
            "type": "string"
          },
          "limit": {
            "default": 20,
            "description": "Number of items to return.",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "list_api_keys"
    },
    {
      "description": "List audiences.\n\nRequires a `full_access` API key. API: `GET /audiences` (operationId `listAudiences`, Audiences).",
      "inputSchema": {
        "properties": {
          "after": {
            "description": "Return items older than this id (next page). Cannot be combined with `before`.",
            "format": "uuid",
            "type": "string"
          },
          "before": {
            "description": "Return items newer than this id (previous page). Cannot be combined with `after`.",
            "format": "uuid",
            "type": "string"
          },
          "limit": {
            "default": 20,
            "description": "Number of items to return.",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "list_audiences"
    },
    {
      "description": "List broadcasts.\n\nRequires a `full_access` API key. API: `GET /broadcasts` (operationId `listBroadcasts`, Broadcasts).",
      "inputSchema": {
        "properties": {
          "after": {
            "description": "Return items older than this id (next page). Cannot be combined with `before`.",
            "format": "uuid",
            "type": "string"
          },
          "before": {
            "description": "Return items newer than this id (previous page). Cannot be combined with `after`.",
            "format": "uuid",
            "type": "string"
          },
          "limit": {
            "default": 20,
            "description": "Number of items to return.",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "list_broadcasts"
    },
    {
      "description": "List contacts.\n\nRequires a `full_access` API key. API: `GET /audiences/{audienceId}/contacts` (operationId `listContacts`, Contacts).",
      "inputSchema": {
        "properties": {
          "after": {
            "description": "Return items older than this id (next page). Cannot be combined with `before`.",
            "format": "uuid",
            "type": "string"
          },
          "audience_id": {
            "format": "uuid",
            "type": "string"
          },
          "before": {
            "description": "Return items newer than this id (previous page). Cannot be combined with `after`.",
            "format": "uuid",
            "type": "string"
          },
          "limit": {
            "default": 20,
            "description": "Number of items to return.",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "audience_id"
        ],
        "type": "object"
      },
      "name": "list_contacts"
    },
    {
      "description": "List domains.\n\nRequires a `full_access` API key. API: `GET /domains` (operationId `listDomains`, Domains).",
      "inputSchema": {
        "properties": {
          "after": {
            "description": "Return items older than this id (next page). Cannot be combined with `before`.",
            "format": "uuid",
            "type": "string"
          },
          "before": {
            "description": "Return items newer than this id (previous page). Cannot be combined with `after`.",
            "format": "uuid",
            "type": "string"
          },
          "limit": {
            "default": 20,
            "description": "Number of items to return.",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "list_domains"
    },
    {
      "description": "List emails.\n\nReturns sent and scheduled emails, newest first, without bodies.\n\nRequires a `full_access` API key. API: `GET /emails` (operationId `listEmails`, Emails).",
      "inputSchema": {
        "properties": {
          "after": {
            "description": "Return items older than this id (next page). Cannot be combined with `before`.",
            "format": "uuid",
            "type": "string"
          },
          "before": {
            "description": "Return items newer than this id (previous page). Cannot be combined with `after`.",
            "format": "uuid",
            "type": "string"
          },
          "limit": {
            "default": 20,
            "description": "Number of items to return.",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "list_emails"
    },
    {
      "description": "List suppressions.\n\nRequires a `full_access` API key. API: `GET /suppressions` (operationId `listSuppressions`, Suppressions).",
      "inputSchema": {
        "properties": {
          "after": {
            "description": "Return items older than this id (next page). Cannot be combined with `before`.",
            "format": "uuid",
            "type": "string"
          },
          "before": {
            "description": "Return items newer than this id (previous page). Cannot be combined with `after`.",
            "format": "uuid",
            "type": "string"
          },
          "limit": {
            "default": 20,
            "description": "Number of items to return.",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "list_suppressions"
    },
    {
      "description": "List tenants.\n\nRequires a `full_access` API key. API: `GET /tenants` (operationId `listTenants`, Tenants).",
      "inputSchema": {
        "properties": {
          "after": {
            "description": "Return items older than this id (next page). Cannot be combined with `before`.",
            "format": "uuid",
            "type": "string"
          },
          "before": {
            "description": "Return items newer than this id (previous page). Cannot be combined with `after`.",
            "format": "uuid",
            "type": "string"
          },
          "limit": {
            "default": 20,
            "description": "Number of items to return.",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "list_tenants"
    },
    {
      "description": "List webhooks.\n\nRequires a `full_access` API key. API: `GET /webhooks` (operationId `listWebhooks`, Webhooks).",
      "inputSchema": {
        "properties": {
          "after": {
            "description": "Return items older than this id (next page). Cannot be combined with `before`.",
            "format": "uuid",
            "type": "string"
          },
          "before": {
            "description": "Return items newer than this id (previous page). Cannot be combined with `after`.",
            "format": "uuid",
            "type": "string"
          },
          "limit": {
            "default": 20,
            "description": "Number of items to return.",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "list_webhooks"
    },
    {
      "description": "Pause a tenant.\n\nStops all sending for the tenant. Sends return `403 sending_paused`; emails already queued fail. The body is optional.\n\nRequires a `full_access` API key. API: `POST /tenants/{ref}/pause` (operationId `pauseTenant`, Tenants).",
      "inputSchema": {
        "properties": {
          "reason": {
            "description": "Stored as `paused_reason`. Defaults to a generic reason.",
            "maxLength": 300,
            "type": "string"
          },
          "ref": {
            "description": "The tenant id or your own `external_id`.",
            "examples": [
              "cust_123"
            ],
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "ref"
        ],
        "type": "object"
      },
      "name": "pause_tenant"
    },
    {
      "description": "Send batch emails.\n\nSends up to 100 emails in one call. All-or-nothing, if any email is invalid none are sent. Attachments, `scheduled_at` and a per-email `tenant_id` are supported; the paused-tenant and tenant-cap errors apply to the whole batch.\n\nPut the emails in `body` as an array. Prefer send_email for a single message.\n\nWorks with a `sending_access` or `full_access` API key. API: `POST /emails/batch` (operationId `sendBatchEmails`, Emails).",
      "inputSchema": {
        "properties": {
          "body": {
            "description": "The JSON request body.",
            "items": {
              "description": "Either `html` or `text` is required. `reply_to` is also accepted as `replyTo` and `scheduled_at` as `scheduledAt`.",
              "properties": {
                "attachments": {
                  "items": {
                    "description": "Provide exactly one of `content` or `path`.",
                    "properties": {
                      "content": {
                        "description": "Base64-encoded file content.",
                        "type": "string"
                      },
                      "content_id": {
                        "description": "Content-ID for inline images (`cid:`).",
                        "type": "string"
                      },
                      "content_type": {
                        "examples": [
                          "application/pdf"
                        ],
                        "type": "string"
                      },
                      "filename": {
                        "maxLength": 255,
                        "type": "string"
                      },
                      "path": {
                        "description": "A public URL fetched at send time.",
                        "format": "uri",
                        "type": "string"
                      }
                    },
                    "required": [
                      "filename"
                    ],
                    "type": "object"
                  },
                  "maxItems": 50,
                  "type": "array"
                },
                "bcc": {
                  "oneOf": [
                    {
                      "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
                      "examples": [
                        "Acme <hello@acme.com>"
                      ],
                      "type": "string"
                    },
                    {
                      "items": {
                        "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
                        "examples": [
                          "Acme <hello@acme.com>"
                        ],
                        "type": "string"
                      },
                      "maxItems": 50,
                      "minItems": 1,
                      "type": "array"
                    }
                  ]
                },
                "cc": {
                  "oneOf": [
                    {
                      "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
                      "examples": [
                        "Acme <hello@acme.com>"
                      ],
                      "type": "string"
                    },
                    {
                      "items": {
                        "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
                        "examples": [
                          "Acme <hello@acme.com>"
                        ],
                        "type": "string"
                      },
                      "maxItems": 50,
                      "minItems": 1,
                      "type": "array"
                    }
                  ]
                },
                "from": {
                  "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
                  "examples": [
                    "Acme <hello@acme.com>"
                  ],
                  "type": "string"
                },
                "headers": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "type": "object"
                },
                "html": {
                  "type": "string"
                },
                "reply_to": {
                  "oneOf": [
                    {
                      "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
                      "examples": [
                        "Acme <hello@acme.com>"
                      ],
                      "type": "string"
                    },
                    {
                      "items": {
                        "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
                        "examples": [
                          "Acme <hello@acme.com>"
                        ],
                        "type": "string"
                      },
                      "maxItems": 50,
                      "minItems": 1,
                      "type": "array"
                    }
                  ]
                },
                "scheduled_at": {
                  "description": "ISO 8601 date-time or natural language such as \"in 1 hour\" or \"in 2 days\". At most 30 days ahead.",
                  "examples": [
                    "in 1 hour",
                    "2026-10-30T09:00:00Z"
                  ],
                  "type": "string"
                },
                "subject": {
                  "maxLength": 998,
                  "minLength": 1,
                  "type": "string"
                },
                "tags": {
                  "items": {
                    "properties": {
                      "name": {
                        "maxLength": 256,
                        "pattern": "^[A-Za-z0-9_-]+$",
                        "type": "string"
                      },
                      "value": {
                        "maxLength": 256,
                        "pattern": "^[A-Za-z0-9_-]+$",
                        "type": "string"
                      }
                    },
                    "required": [
                      "name",
                      "value"
                    ],
                    "type": "object"
                  },
                  "maxItems": 50,
                  "type": "array"
                },
                "tenant_id": {
                  "description": "Platform mode. Our tenant id or your `external_id`. Optional when the `from` domain belongs to a tenant; a conflict with the domain's tenant is a 422.",
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "text": {
                  "type": "string"
                },
                "to": {
                  "oneOf": [
                    {
                      "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
                      "examples": [
                        "Acme <hello@acme.com>"
                      ],
                      "type": "string"
                    },
                    {
                      "items": {
                        "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
                        "examples": [
                          "Acme <hello@acme.com>"
                        ],
                        "type": "string"
                      },
                      "maxItems": 50,
                      "minItems": 1,
                      "type": "array"
                    }
                  ]
                }
              },
              "required": [
                "from",
                "to",
                "subject"
              ],
              "type": "object"
            },
            "maxItems": 100,
            "minItems": 1,
            "type": "array"
          },
          "idempotency_key": {
            "description": "A unique key (1 to 256 characters) that makes the request safe to retry for 24 hours.",
            "examples": [
              "welcome-user-4821"
            ],
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "body"
        ],
        "type": "object"
      },
      "name": "send_batch_emails"
    },
    {
      "description": "Send or schedule a broadcast.\n\nQueues a draft for delivery to every subscribed contact of its audience. The broadcast needs `html` or `text`.\nWithout `scheduled_at` it starts immediately; the status becomes `queued`, then `sending` and `sent`.\n\nSends to every subscribed contact in the audience. Run get_broadcast_readiness first and confirm with the user.\n\nRequires a `full_access` API key. API: `POST /broadcasts/{id}/send` (operationId `sendBroadcast`, Broadcasts).",
      "inputSchema": {
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "scheduled_at": {
            "description": "ISO 8601 date-time or natural language such as \"in 1 hour\" or \"in 2 days\". At most 30 days ahead.",
            "examples": [
              "in 1 hour",
              "2026-10-30T09:00:00Z"
            ],
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "send_broadcast"
    },
    {
      "description": "Send an email.\n\nValidates and queues one email. Each recipient counts towards your quota. Use `scheduled_at` to send later (up to 30 days ahead). Pass `tenant_id` to send on behalf of a tenant (not needed when the `from` domain belongs to one). Fails with `422` if `tenant_id` conflicts with the domain's tenant, `403 sending_paused` if the tenant is paused and `429 daily_quota_exceeded` if it reached its daily cap.\n\n`from` must be on a verified domain (e.g. \"Acme <hi@acme.com>\"); call list_domains to find one. Provide `html`, `text` or both. Send to delivered@test.spacepost.dev (or bounced@ / complained@) to test without sending real mail. Delivered email cannot be recalled: confirm recipients and content with the user when unsure. Pass `idempotency_key` when retrying so the email is not sent twice.\n\nRequest body: Either `html` or `text` is required. `reply_to` is also accepted as `replyTo` and `scheduled_at` as `scheduledAt`.\n\nWorks with a `sending_access` or `full_access` API key. API: `POST /emails` (operationId `sendEmail`, Emails).",
      "inputSchema": {
        "properties": {
          "attachments": {
            "items": {
              "description": "Provide exactly one of `content` or `path`.",
              "properties": {
                "content": {
                  "description": "Base64-encoded file content.",
                  "type": "string"
                },
                "content_id": {
                  "description": "Content-ID for inline images (`cid:`).",
                  "type": "string"
                },
                "content_type": {
                  "examples": [
                    "application/pdf"
                  ],
                  "type": "string"
                },
                "filename": {
                  "maxLength": 255,
                  "type": "string"
                },
                "path": {
                  "description": "A public URL fetched at send time.",
                  "format": "uri",
                  "type": "string"
                }
              },
              "required": [
                "filename"
              ],
              "type": "object"
            },
            "maxItems": 50,
            "type": "array"
          },
          "bcc": {
            "oneOf": [
              {
                "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
                "examples": [
                  "Acme <hello@acme.com>"
                ],
                "type": "string"
              },
              {
                "items": {
                  "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
                  "examples": [
                    "Acme <hello@acme.com>"
                  ],
                  "type": "string"
                },
                "maxItems": 50,
                "minItems": 1,
                "type": "array"
              }
            ]
          },
          "cc": {
            "oneOf": [
              {
                "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
                "examples": [
                  "Acme <hello@acme.com>"
                ],
                "type": "string"
              },
              {
                "items": {
                  "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
                  "examples": [
                    "Acme <hello@acme.com>"
                  ],
                  "type": "string"
                },
                "maxItems": 50,
                "minItems": 1,
                "type": "array"
              }
            ]
          },
          "from": {
            "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
            "examples": [
              "Acme <hello@acme.com>"
            ],
            "type": "string"
          },
          "headers": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "html": {
            "type": "string"
          },
          "idempotency_key": {
            "description": "A unique key (1 to 256 characters) that makes the request safe to retry for 24 hours.",
            "examples": [
              "welcome-user-4821"
            ],
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "reply_to": {
            "oneOf": [
              {
                "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
                "examples": [
                  "Acme <hello@acme.com>"
                ],
                "type": "string"
              },
              {
                "items": {
                  "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
                  "examples": [
                    "Acme <hello@acme.com>"
                  ],
                  "type": "string"
                },
                "maxItems": 50,
                "minItems": 1,
                "type": "array"
              }
            ]
          },
          "scheduled_at": {
            "description": "ISO 8601 date-time or natural language such as \"in 1 hour\" or \"in 2 days\". At most 30 days ahead.",
            "examples": [
              "in 1 hour",
              "2026-10-30T09:00:00Z"
            ],
            "type": "string"
          },
          "subject": {
            "maxLength": 998,
            "minLength": 1,
            "type": "string"
          },
          "tags": {
            "items": {
              "properties": {
                "name": {
                  "maxLength": 256,
                  "pattern": "^[A-Za-z0-9_-]+$",
                  "type": "string"
                },
                "value": {
                  "maxLength": 256,
                  "pattern": "^[A-Za-z0-9_-]+$",
                  "type": "string"
                }
              },
              "required": [
                "name",
                "value"
              ],
              "type": "object"
            },
            "maxItems": 50,
            "type": "array"
          },
          "tenant_id": {
            "description": "Platform mode. Our tenant id or your `external_id`. Optional when the `from` domain belongs to a tenant; a conflict with the domain's tenant is a 422.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "to": {
            "oneOf": [
              {
                "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
                "examples": [
                  "Acme <hello@acme.com>"
                ],
                "type": "string"
              },
              {
                "items": {
                  "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
                  "examples": [
                    "Acme <hello@acme.com>"
                  ],
                  "type": "string"
                },
                "maxItems": 50,
                "minItems": 1,
                "type": "array"
              }
            ]
          }
        },
        "required": [
          "from",
          "to",
          "subject"
        ],
        "type": "object"
      },
      "name": "send_email"
    },
    {
      "description": "Unpause a tenant.\n\nResumes sending. A tenant that was paused by the reputation guard (bounce or complaint rate) can only be unpaused by a\n`trusted` or `internal` team; others get `403 invalid_access` and should contact support.\n\nRequires a `full_access` API key. API: `POST /tenants/{ref}/unpause` (operationId `unpauseTenant`, Tenants).",
      "inputSchema": {
        "properties": {
          "ref": {
            "description": "The tenant id or your own `external_id`.",
            "examples": [
              "cust_123"
            ],
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "ref"
        ],
        "type": "object"
      },
      "name": "unpause_tenant"
    },
    {
      "description": "Update a broadcast.\n\nOnly drafts can be updated.\n\nRequest body: Any field of the create request; only drafts can be updated.\n\nRequires a `full_access` API key. API: `PATCH /broadcasts/{id}` (operationId `updateBroadcast`, Broadcasts).",
      "inputSchema": {
        "properties": {
          "audience_id": {
            "format": "uuid",
            "type": "string"
          },
          "from": {
            "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
            "examples": [
              "Acme <hello@acme.com>"
            ],
            "type": "string"
          },
          "html": {
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "maxLength": 100,
            "type": "string"
          },
          "preview_text": {
            "maxLength": 200,
            "type": "string"
          },
          "reply_to": {
            "oneOf": [
              {
                "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
                "examples": [
                  "Acme <hello@acme.com>"
                ],
                "type": "string"
              },
              {
                "items": {
                  "description": "An email address, optionally with a display name: `Acme <hello@acme.com>`.",
                  "examples": [
                    "Acme <hello@acme.com>"
                  ],
                  "type": "string"
                },
                "maxItems": 50,
                "minItems": 1,
                "type": "array"
              }
            ]
          },
          "subject": {
            "maxLength": 998,
            "minLength": 1,
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "update_broadcast"
    },
    {
      "description": "Update a contact.\n\nRequires a `full_access` API key. API: `PATCH /audiences/{audienceId}/contacts/{idOrEmail}` (operationId `updateContact`, Contacts).",
      "inputSchema": {
        "properties": {
          "audience_id": {
            "format": "uuid",
            "type": "string"
          },
          "first_name": {
            "maxLength": 100,
            "type": "string"
          },
          "id_or_email": {
            "description": "The contact id or its (URL-encoded) email address.",
            "examples": [
              "jane@example.com"
            ],
            "type": "string"
          },
          "last_name": {
            "maxLength": 100,
            "type": "string"
          },
          "unsubscribed": {
            "type": "boolean"
          }
        },
        "required": [
          "audience_id",
          "id_or_email"
        ],
        "type": "object"
      },
      "name": "update_contact"
    },
    {
      "description": "Update a domain.\n\nToggles open and click tracking.\n\nRequires a `full_access` API key. API: `PATCH /domains/{id}` (operationId `updateDomain`, Domains).",
      "inputSchema": {
        "properties": {
          "click_tracking": {
            "type": "boolean"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "open_tracking": {
            "type": "boolean"
          },
          "tls": {
            "enum": [
              "opportunistic",
              "enforced"
            ],
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "update_domain"
    },
    {
      "description": "Reschedule an email.\n\nChanges `scheduled_at` of an email that is still `scheduled`.\n\nRequires a `full_access` API key. API: `PATCH /emails/{id}` (operationId `updateEmail`, Emails).",
      "inputSchema": {
        "properties": {
          "id": {
            "description": "The email id.",
            "format": "uuid",
            "type": "string"
          },
          "scheduled_at": {
            "description": "ISO 8601 date-time or natural language such as \"in 1 hour\" or \"in 2 days\". At most 30 days ahead.",
            "examples": [
              "in 1 hour",
              "2026-10-30T09:00:00Z"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "scheduled_at"
        ],
        "type": "object"
      },
      "name": "update_email"
    },
    {
      "description": "Update a tenant.\n\nChanges the name, `external_id` or `daily_limit` (`null` removes the cap).\n\nRequires a `full_access` API key. API: `PATCH /tenants/{ref}` (operationId `updateTenant`, Tenants).",
      "inputSchema": {
        "properties": {
          "daily_limit": {
            "description": "Null removes the cap.",
            "minimum": 1,
            "type": [
              "integer",
              "null"
            ]
          },
          "external_id": {
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "name": {
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "ref": {
            "description": "The tenant id or your own `external_id`.",
            "examples": [
              "cust_123"
            ],
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "ref"
        ],
        "type": "object"
      },
      "name": "update_tenant"
    },
    {
      "description": "Update a webhook.\n\nRequires a `full_access` API key. API: `PATCH /webhooks/{id}` (operationId `updateWebhook`, Webhooks).",
      "inputSchema": {
        "properties": {
          "endpoint": {
            "format": "uri",
            "type": "string"
          },
          "events": {
            "items": {
              "description": "Event names you can subscribe a webhook to.",
              "enum": [
                "email.sent",
                "email.delivered",
                "email.delivery_delayed",
                "email.bounced",
                "email.complained",
                "email.opened",
                "email.clicked",
                "email.failed",
                "email.scheduled",
                "email.suppressed"
              ],
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "status": {
            "enum": [
              "enabled",
              "disabled"
            ],
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "update_webhook"
    },
    {
      "description": "Verify a domain.\n\nRe-checks DNS now. Retrieve the domain afterwards to read the new `status` and per-record statuses.\n\nRequires a `full_access` API key. API: `POST /domains/{id}/verify` (operationId `verifyDomain`, Domains).",
      "inputSchema": {
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "verify_domain"
    }
  ]
}

What the leaf hashes

{"body":"f731362ad859d143d8fdb4902abb58c70c8082c7ee20f15995ac7c712feba67e","id":1475070,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793413175065096,"prev":null,"subject":"d62c4077-ef68-40c9-9c81-6e940c7223ef","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (246033 rows).

  1. 0x44cf5c035fd835254c4a2ebbcc749d8b74327f2cf1ad059d7cf9a3d33982df1c
  2. 0x907117fe95745ad909598934927cf36cd7f2f7c960196f22d7c164a75b81a8c1
  3. 0xb4171fd9ee29fefeac5220a1c9247c4c781f2839a357e9787653b6ec9d27c7af
  4. 0xbb0ce44607f015480181f5ee7ba8145979f4e26802f13b4457cb2cd3dac3a217
  5. 0xb7e8dea68e587ced15c26502893f490c6a776672fbbbe7a4f147fe928ee77723
  6. 0x423cae2c6e1d3c453a1db672ae3c2ca6f5f58ed5552a28abd6ed844d63c72cdd
  7. 0xa2429c9557a3efdf30b4015ff20fcd67ae5d9a70af26df307dae4b6459dd333a
  8. 0x7a5186a5b6eeb897a7d72eb5e06fd62f186a239337e8f14a86c82a1c0eb31c8f
  9. 0x483dd9af5c4d28ee581ae867cf54a4974cf32777d47870cd88dde9cce23934b6
  10. 0x3eac085be9a10b1b97a6e99044df6a0f0088eec8f40b10806df4f49cd94c32f5
  11. 0xf2e5844e588be189569a62529f168dfa66549f89fbe8651bc620e31964e9c81f
  12. 0x67e3e3d14cfabb7d190a721cea14bee6febdc558ec7baf590086cfbe92e2ec91
  13. 0xbcc832f9404b5d1b302f3d3e15636212c98af90872d1174ace425ce5359d5599
  14. 0xc248f3640ff2a9c77f3134397896f3ef7b260859179e2912c528542dff5a29d2
  15. 0x37f0ccf90cd9ba8759ef0154382593820880794592760020f095a3628e43fc3f
  16. 0xad4540f06e3fdfe46524d8592f8d854d4849e16217bc047eaf024f0abebe34b0
  17. 0xa00a931d72706fa2402bfc9b441a12eb7c6a61ff42a542916106e3637177f101
  18. 0x59f83f7228f07febe2780660e422e171b0359b8aa031ee3be07e991118130c15
Day root
0x24463725d1c0d9894bd6123691d532547aaa79f0762c0e45aa6a68acf1fd71ab
Chained
0x7d4824ff313dee7252a46f9d5c37b452851deb6c9f24a40c2f74ee0e53c82980
Published
On Arc Testnet, block 70093156: 0xedb7b832f4ebf6781b5ecd2ed241c435b862f4d3761541fa31adc1831b8c44a0

How to check it · This row as JSON