Skip to main content
Glama

Server Details

Test-inbox API for email and SMS: create inboxes, long-poll messages, extract OTPs and links.

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A3.9/5.0

Scored across 41 tools

Disambiguation5/5

Every tool targets a distinct resource-action pair (domain, inbox, hook, webhook, key, phone number, message, SMS, link, OTP, etc.), and the verbs clearly separate create/list/get/wait/clear/delete/follow/verify operations. There is no overlap or ambiguity between tools.

Naming Consistency4/5

The overwhelming majority of tools follow a consistent verb_noun pattern (create_inbox, list_messages, wait_for_otp, etc.), but 'webhook_deliveries' is a noun phrase rather than a verb_noun command, which is a minor deviation.

Tool Count2/5

With 41 tools, the server exceeds the 25+ threshold for 'too many' tools. While each tool is justifiable for the comprehensive email/SMS/webhook testing domain, the sheer number makes the surface feel heavy and harder to navigate.

Completeness5/5

The tool set covers full lifecycles for all major resources—create, list, get, wait, clear, delete—and includes specialized operations like verify_domain, follow_link, and webhook_deliveries. There are no obvious gaps or dead ends for the stated purpose of testing email, SMS, and webhooks.

Available Tools

41 tools
clear_hookAInspect

Delete a hook's captured requests but keep the hook and its ingest URL — rerun hygiene between test runs.

Inputs: hook_id (required).

clear_inboxAInspect

Delete all messages in an inbox but keep the address receiving. Use to reset state between test steps that reuse one inbox.

Inputs: inbox_id (required).

create_domainAInspect

Register a custom domain for receiving test mail. Returns the DNS records (TXT challenge + MX) to publish; the domain accepts mail only after verify_domain passes.

Inputs: fqdn (required).

create_hookAInspect

Create a capture hook: a public HTTPS URL that records every HTTP request sent to it (webhook capture). Point the app under test's webhook config at the returned ingest_url, then call wait_for_hook_request. Receive-only: mailfixture answers a fixed 200 and never forwards or replays. Returns {id, token, ingest_url, label, ttl_expires_at}.

Inputs: label, ttl_seconds.

create_inboxAInspect

Create a programmatic email inbox and get its address. Call this at the start of a test flow, then drive the app under test with the returned email_address. Use one inbox per test for isolation.

Inputs: domain, local_part, ttl_seconds.

create_keyAInspect

Create a new API key. The raw key is in this response ONLY — it is stored hashed and can never be shown again. Handle it as a secret.

Inputs: label.

create_phone_numberAInspect

Provision a dedicated US phone number for receiving SMS (paid plans only; numbers are receive-only — mailfixture never sends). Returns {id, phone_number, status}. If status is 'pending', call list_phone_numbers until it becomes 'active' before using the number in the flow under test; then call wait_for_sms_otp.

Inputs: no named parameters.

create_webhookAInspect

Create a webhook endpoint (paid plans) receiving signed message.received and domain.verified events. The signing secret is in this response ONLY. Message bodies are never delivered over webhooks.

Inputs: url (required), description.

delete_domainAInspect

Delete a custom domain and every inbox and message on it. Irreversible.

Inputs: domain_id (required).

delete_hookAInspect

Delete a capture hook and all its captured requests. The ingest URL answers 404 afterwards. Irreversible.

Inputs: hook_id (required).

delete_inboxAInspect

Delete an inbox and all its messages. Mail to the address is rejected afterwards. Use as test teardown.

Inputs: inbox_id (required).

delete_webhookAInspect

Delete a webhook endpoint. Pending deliveries to it are dropped.

Inputs: webhook_id (required).

enable_webhookAInspect

Re-enable a webhook endpoint that was auto-disabled after repeated failed deliveries.

Inputs: webhook_id (required).

get_attachmentAInspect

One attachment's decoded bytes, base64-encoded (up to 1 MiB — larger files must be fetched from GET /v1/messages/{id}/attachments/{index}). Index against the attachments array on get_message.

Inputs: index (required), message_id (required).

get_hook_requestAInspect

Full detail of one captured request: method, path, headers (names lowercased; same-name duplicates keep their order, cross-name order not preserved), body as text (body_base64 rides along only when the raw bytes were not valid UTF-8 — signature checks need exact bytes), remote_ip, expiry.

Inputs: request_id (required).

get_messageAInspect

Full detail of one message: text/html bodies, headers, extracted OTP candidates and classified links, attachment metadata.

Inputs: message_id (required).

get_otpAInspect

The OTP/verification code extracted from one message: best candidate plus ranked alternatives. If you are still waiting for the email, prefer wait_for_otp.

Inputs: message_id (required).

get_smsAInspect

Full detail of one SMS: text, sender, extracted OTP candidates and classified links, expiry.

Inputs: sms_id (required).

list_domainsAInspect

List the account's domains (custom ones with verification state and pending DNS setup records, plus the shared domains).

Inputs: no named parameters.

list_hook_requestsAInspect

List requests captured by a hook (id, method, path, content_type, body_size, received_at per request; bodies stay on get_hook_request). Set wait to long-poll for new requests; use since as a cursor.

Inputs: hook_id (required), wait, match, since.

list_hooksAInspect

List the account's capture hooks with id, ingest_url, label, ttl_expires_at, created_at.

Inputs: no named parameters.

list_inboxesAInspect

List the account's active inboxes with their addresses and message counts.

Inputs: no named parameters.

list_keysAInspect

List the account's API keys (metadata only — never the key material).

Inputs: no named parameters.

list_messagesAInspect

List messages in an inbox (id, from, subject, received_at, tls per message). Set wait to long-poll for new mail; use since as a cursor to skip messages you already processed. Returns summaries — call get_message for bodies and extracted data.

Inputs: inbox_id (required), wait, match, since.

list_phone_numbersAInspect

List the account's active phone numbers with id, phone_number (E.164), status, created_at, and release_after (non-null when a plan downgrade scheduled the number for auto-release; upgrading before that date keeps it).

Inputs: no named parameters.

list_smsAInspect

List SMS received on a phone number (id, from_number, text, received_at per message — the text rides in the summary). Set wait to long-poll for new messages; use since as a cursor.

Inputs: phone_number_id (required), wait, match, since.

list_webhooksAInspect

List the account's webhook endpoints (secrets masked to a hint).

Inputs: no named parameters.

release_phone_numberAInspect

Release a phone number back to the provider and delete its messages. Irreversible — the number returns to the provider pool and may be assigned elsewhere.

Inputs: phone_number_id (required).

revoke_keyAInspect

Revoke an API key immediately. Revoking the key this session authenticated with locks this MCP connection out.

Inputs: key_id (required).

test_webhookAInspect

Queue a test event to a webhook endpoint to confirm it receives and verifies signed deliveries.

Inputs: webhook_id (required).

verify_domainAInspect

Run the TXT + MX DNS checks for a pending custom domain right now and return the result. Call after publishing the records from create_domain.

Inputs: domain_id (required).

wait_for_hook_requestAInspect

Block until a matching HTTP request is captured by the hook (or timeout_seconds elapses), then return its full detail. The one-call answer to 'trigger the flow under test, then assert its webhook fired'.

Inputs: hook_id (required), match, since, timeout_seconds.

wait_for_messageAInspect

Block until a matching message arrives in the inbox (or timeout_seconds elapses), then return its full detail. Call this right after triggering an email flow in the app under test.

Inputs: inbox_id (required), match, since, timeout_seconds.

wait_for_otpBInspect

Block until a message with an extracted OTP/verification code arrives, then return the code. The one-call answer to 'trigger signup, read the OTP, type it in'. Returns {message_id, best, candidates}.

Inputs: inbox_id (required), match, since, timeout_seconds.

wait_for_smsAInspect

Block until a matching SMS arrives on the phone number (or timeout_seconds elapses), then return its full detail including extracted data. Call this right after triggering an SMS flow in the app under test.

Inputs: phone_number_id (required), match, since, timeout_seconds.

wait_for_sms_otpAInspect

Block until an SMS with an extracted OTP/verification code arrives on the phone number, then return the code. The one-call answer to 'trigger SMS verification, read the code, type it in'. Returns {sms_id, best, candidates}.

Inputs: phone_number_id (required), match, since, timeout_seconds.

webhook_deliveriesAInspect

Recent delivery attempts for one webhook endpoint (status, attempts, last error) — the first place to look when events aren't arriving.

Inputs: webhook_id (required), limit.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      Enables AI coding agents to create disposable test inboxes, wait for and read incoming email, and extract confirmation links and one-time codes for sign-up, password-reset, and magic-link flows.
      6
      86 npm
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Create disposable email inboxes, extract OTP codes in 15 languages, and receive webhooks — all from your AI agent. One call: create inbox → wait for email → get the verification code. Supports 7 domains, email forwarding, and HMAC-signed webhooks with OTP included in payload. Free tier available.
      8
      6 npm
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Ephemeral mailboxes and a mock OAuth IdP for testing email and auth flows — 39 API-driven tools covering mailboxes, mails, attachments, domains, teams, and mock identities.
      MIT
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.

    Resources