MailFixture

by Unknown

Not rated
Website

About

Receive-only email and SMS inboxes for automated testing, with wait-for-OTP and wait-for-link tools that let agents complete verification flows.

Details

Author
Unknown
Categories
Developer Tools, Other, Automation

MCP email testing: Quickstart — mailfixture

Quickstart: PlaywrightQuickstart: CypressQuickstart: pytestQuickstart: SMSQuickstart: MCP agents

Automated email testingParallel email testingFake SMTP vs. test inboxPlaywright email testingCypress email testingpytest email testingSelenium email testingTesting OTP flowsTesting email verificationTesting magic linksTesting password resetTesting login alertsTesting SMS OTP flowsTesting phone verificationTransactional email testingTesting SPF/DKIM/DMARCTesting spam scoreTesting attachmentsHTML email testing“Disposable email detected”Webhook testingEmail-event webhooksAI agents & emailOTP with Playwright + MCP

Inboxes & TTLsMessagesExtractionCustom domainsAttachmentsWebhooksCapture hooks

Overview & auth/inboxes/messages/phone-numbers · /sms/hooks/domains/keys/webhooks

mailfixture ships a remoteMCPserver athttps://mailfixture.com/mcp. Point an agent at it — Claude Code, or any client that speaks Streamable HTTP — and it can create real inboxes, trigger your app's email flows, and read the OTP back by itself. Nothing to install, no glue code to write.

Create a key inDashboard → API keys. The agent authenticates with a normalmfx_key — same permissions as the REST API, revocable any time. Give agents their own key (label itmcp-agent) so you can pull it without breaking your test suites.

MAILFIXTURE_API_KEY=mfx_••••••••••••••••••••

Claude Code can store a project-scoped server definition while leaving the key in the environment:

$ claude mcp add --transport http mailfixture --scope projecthttps://mailfixture.com/mcp
--header 'Authorization: Bearer ${MAILFIXTURE_API_KEY}'

The single quotes are deliberate: the project config keeps an environment placeholder instead of expanding and writing the secret into.mcp.json. Other clients use the same Streamable HTTP shape, but their environment-variable syntax and top-level key vary; this generic example uses the same placeholder convention:

{ "mcpServers": { "mailfixture": { "type": "http", "url": "https://mailfixture.com/mcp", "headers": { "Authorization": "Bearer ${MAILFIXTURE_API_KEY}" } } } }

Discovery for clients that look before they connect: the server card (v1 Server Card schema — transport URL, the Bearer header it needs, supported protocol versions) is served at/.well-known/mcp/server-card.json,/.well-known/mcp-server-card, and/mcp/server-card; theapi-cataloglinks it, and/llms.txtsays when to reach for the server at all. An unauthenticated call answers 401 with aWWW-Authenticate: Bearerchallenge, and every authenticated response carries the sameRateLimitheaders as theREST API.

That's the whole setup. Ask the agent to exercise a signup flow and it chains the tools itself:

Sign up a fresh account on staging and verify the OTP email works.

create_inbox(ttl_seconds=900) →k2x9v04qtr@mxsink.sh… agent drives the signup form with that address … wait_for_otp(inbox_id=…, timeout_seconds=45) → { message_id: "…", best: "482913", candidates: […] } … agent submits the code, asserts the account is verified …

tipwait_for_otp,wait_for_link, andwait_for_messagelong-poll on the server (up to 60s per call) — the agent never writes a sleep-and-retry loop. Racing emails? They take the samematchfilter as the REST API:subject:,from:,to:.

41 tools — full parity with the/v1 REST API, email, SMS, and webhook capture, plus the wait helpers. The high-traffic ones:

A fresh address for the flow under test; optional TTL cleans up after crashed runs.

Block until a message with an extracted verification code arrives; returns{message_id, best, candidates}.

Server-side click of an extracted link (the verify link by default): we GET it, chase redirects, and return status + final URL — no browser needed.

Block until a matching message arrives; returns full detail with bodies and extraction.

Cursor-based listing and full detail — headers, bodies, attachments metadata.

The same loop for texts (paid plans, US numbers): provision, uselist_phone_numbersuntil status is active, then block for the code. See theSMS quickstart.

Inbox clear/delete, SMS listing + release, attachments (base64 ≤1 MiB), custom domains with DNS verification, API keys, webhooks.

The MCP server is the API — the key is the only credential, and everything the agent does is attributable to it. Three things to know: the tool set includes account administration (keys, domains, webhooks), so treat the key like the secret it is; message bodies flow into the agent's context, so don't point production traffic at inboxes an agent reads; and errors come back structured (status/title/detail, same vocabulary as theREST API) so agents can react instead of guessing.

Agent hands now, frozen Playwright suite for CI.

Why the inbox belongs in the agent's toolbox.

Was this page useful?yesnoGuide: OTP with Playwright + MCP →

1 · Get a key2 · Connect a client3 · Let the agent testThe tool surfaceScope and security

This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.

MCP server for e-mail testing: create disposable inboxes, wait for delivery, and extract e-mail content or links - all from your AI agent or test automation workflow.

1001SMS MCP Server helps developers give AI agents access to temporary phone numbers for account registrations, OTP verifications, SMS code receiving, and automated signup workflows. Easy integration for MCP-compatible tools and custom agents.

Gives an AI agent a disposable email and a real UK phone number to test signup/verification flows end to end

Free disposable email for AI—check any @mailinator.com inbox, retrieve messages in multiple formats, and extract verification codes for automated workflows.

Agents make claims. Reelier writes receipts — record an agent's tool-call workflow once, replay it deterministically at 0 tokens, and diff runs to catch drift.

Equip AI agents with evaluation and self-improvement capabilities with Root Signals.

Remote MCP server that gives your AI agent a dead-man's-switch: it calls create_heartbeat, pings on schedule, and emails you the instant an agent or cron loop stops checking in.

fable-discipline is a Claude Code plugin that makes agentic software work follow repeatable working patterns: design before code, verify after edits, separate author from reviewer, preserve verified state between sessions, and report uncertainty honestly.

An MCP server for Factifai, enabling integration with any MCP-compatible AI tool to create and retrieve test results asynchronously.

Preflight checks for paid x402 and MCP tools before marketplace listing.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.