mailboxes.list
List mailboxes
List the tenant's active mailboxes (owner is derived from the API key). Optionally look up a single mailbox by exact address.
address
io.github.minutemailcoPublished by GitHub account minutemailcov1.1.3Updated Oct 24, 2026
Ephemeral mailboxes and a mock OAuth IdP for testing email and auth flows — 39 API-driven tools
Remote MCP server for MinuteMail that lets an assistant create ephemeral mailboxes, read test emails, and manage mock OAuth identities for testing email andauth
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.minutemailco%2Fmcp-server/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"minutemail": {
"type": "http",
"url": "https://mcp.minutemail.co/mcp",
"headers": {
"Authorization": "Bearer <YOUR_TOKEN>"
}
}
}
}MinuteMail as MCP (Model Context Protocol) tools: let AI agents and MCP clients operate ephemeral mailboxes, emails, attachments, custom domains, teams, and mock OAuth identities for testing email and auth flows.
[License: MIT] [Docker] [smithery badge]
https://mcp.minutemail.co/mcp (Streamable HTTP, protocol
revision 2025-06-18)Bearer mmak_...). The server is a
stateless proxy — it holds no credentials, sessions, or local storage of
its own; your key is forwarded verbatim to the MinuteMail API, where scopes
and quotas are enforced. All state (mailboxes, mails, identities) lives in
the MinuteMail platform behind it.io.github.minutemailco/mcp-server and on
Smithery.Sign up at minutemail.co (free during early access)
Create an API key in the dashboard
Configure your MCP client to send it as the Authorization header:
Authorization: Bearer mmak_XXXXXXXX
Claude Code / Claude Desktop / Cursor / any Streamable HTTP client:
https://mcp.minutemail.co/mcpAuthorization: Bearer mmak_...Claude Code CLI:
Claude Desktop / clients with an mcpServers JSON config (e.g.
claude_desktop_config.json / ~/.cursor/mcp.json):
Some clients (older Claude Desktop builds) only support local
stdioservers in their JSON config. If yours rejectstype: "http", use the built-in remote/connectors UI with the URL and header above, or run mcp-remote as a stdio bridge:
For a guided walkthrough, see the docs: docs.minutemail.co/mcp/getting-started.
Raw JSON-RPC (what the clients do under the hood):
Every tool maps 1:1 to a route of the MinuteMail API. All calls require the
Bearer API key; write operations require the matching scope (mailboxes,
domains, team, identities).
mailboxes scope)mailboxes scope)archived.list, archived.get,
archived.delete, archived.reactivate.
domains scope)domains.list, domains.register, domains.verify, domains.delete.
team scope)team.members.list, team.members.add, team.members.get, team.members.delete,
team.invitations.create, team.invitations.list, team.invitations.delete.
identities scope)identities.list, identities.create, identities.update, identities.get,
identities.delete, oauth.clients.list, oauth.clients.create,
oauth.clients.get, oauth.clients.delete, oauth.clients.rotate_secret.
identities.update patches profile fields, isActive (activate/deactivate),
emailVerified (drives the email_verified claim), and custom claims
merged into issued ID tokens and userinfo responses.
Tool results are returned as MCP text content carrying the API's JSON
response. Non-2xx responses become isError: true results with the HTTP
status and body (401 invalid key, 403 scope/domain, 429 quota with remaining
count, 502 upstream down).
The server is a single static Go binary in a scratch image (~7 MB):
Self-hosting still requires MinuteMail API keys — the server is a stateless proxy over the hosted API, not a standalone implementation. It keeps no sessions or local data; every mailbox, mail, and identity is stored by the MinuteMail API it forwards to.
GET /health for liveness; GET /metrics for Prometheus counters.
API-key management is not exposed via MCP — manage keys from the web app.
Go 1.23, stdlib plus prometheus/client_golang.
MIT — © MinuteMail.co
Source: README.md at commit 7a24b24
List mailboxes
List the tenant's active mailboxes (owner is derived from the API key). Optionally look up a single mailbox by exact address.
addressCreate mailbox
Create a new temporary mailbox. The domain defaults to the tenant's default domain; the owner is always the API key's owner.
tagdomainexpiresInrecoverablenoExpirationGet mailbox
Fetch a single mailbox by ID.
mailboxIdrequiredDelete mailbox
Delete a mailbox and its contents by ID.
mailboxIdrequiredBulk delete mailboxes
Delete several mailboxes at once by ID.
idsrequiredList mails
List the emails in a mailbox, newest first.
mailboxIdrequiredInject test mail
Inject a simulated inbound email into a mailbox (multipart upload). No external mail is sent; use this to simulate inbound mail for flow testing.
bodyrequiredsenderrequiredsubjectrequiredexpiresInmailboxIdrequiredattachmentsGet mail
Fetch a single email by ID, including body and attachment metadata.
mailIdrequiredmailboxIdrequiredDelete mail
Delete a single email.
mailIdrequiredmailboxIdrequiredBulk delete mails
Delete several emails of one mailbox at once.
idsrequiredmailboxIdrequiredList attachments
List the attachments of an email (metadata only).
mailIdrequiredmailboxIdrequiredAdd attachment
Attach a file to a test-injected email (base64 payload).
datarequiredmailIdrequiredfilenamerequiredexpiresInmailboxIdrequiredsizeBytescontentTypeGet attachment
Download an attachment. The file contents are returned base64-encoded in the JSON "data" field.
mailIdrequiredmailboxIdrequiredattachmentIdrequiredDelete attachment
Delete a single attachment.
mailIdrequiredmailboxIdrequiredattachmentIdrequiredBulk delete attachments
Delete several attachments of one email at once.
idsrequiredmailIdrequiredmailboxIdrequiredList archived mailboxes
List the tenant's archived (expired but recoverable) mailboxes.
Takes no parameters.
Get archived mailbox
Fetch a single archived mailbox by ID.
mailboxIdrequiredDelete archived mailbox
Permanently delete an archived mailbox.
mailboxIdrequiredReactivate archived mailbox
Reactivate an archived mailbox back to active state.
expiresInmailboxIdrequiredList domains
List the tenant's custom domains with their DNS verification status.
Takes no parameters.
Register domain
Register a new custom domain. DNS records (TXT token + MX) must then be added before verification can succeed.
namerequiredVerify domain
Trigger DNS verification (TXT + MX) of a registered domain.
domainIdrequiredDelete domain
Delete a registered custom domain.
domainIdrequiredList team members
List the tenant's team members.
Takes no parameters.
Add team member
Add a team member directly (no invitation flow).
emailrequiredstatusrequireduser_idrequiredusernamerequiredGet team member
Fetch a single team member by ID.
memberIdrequiredDelete team member
Remove a team member.
memberIdrequiredCreate invitation
Create a team invitation for an email address (SMTP invite is sent by the team service).
emailrequiredList invitations
List the tenant's team invitations.
Takes no parameters.
Delete invitation
Revoke a team invitation.
invitationIdrequiredList identities
List the tenant's mock identities, optionally filtered by OAuth client or mailbox address.
clientIdmailboxAddressCreate identity
Create a mock identity bound to a mailbox for OAuth flow testing.
nameclaimsclientIdrequiredusernameavatarUrlemailVerifiedmailboxAddressrequiredGet identity
Fetch a single mock identity by ID.
identityIdrequiredUpdate identity
Update a mock identity: profile fields, isActive (activate/deactivate), emailVerified, and custom claims merged into the ID token and userinfo.
nameclaimsisActiveusernameavatarUrlidentityIdrequiredemailVerifiedDelete identity
Delete a mock identity.
identityIdrequiredList OAuth clients
List the tenant's OAuth clients for mock identity testing.
Takes no parameters.
Create OAuth client
Register an OAuth client for mock identity flows. The plaintext clientSecret is returned once at creation.
namerequiredproviderTyperedirectUrisrequiredproviderLabelGet OAuth client
Fetch a single OAuth client by its public client ID.
clientIdrequiredDelete OAuth client
Delete an OAuth client by its public client ID.
clientIdrequiredRotate client secret
Rotate an OAuth client's secret. The new plaintext secret is returned once.
clientIdrequired100% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
claude mcp add --transport http minutemail https://mcp.minutemail.co/mcp \ --header "Authorization: Bearer mmak_XXXXXXXX"{ "mcpServers": { "minutemail": { "type": "http", "url": "https://mcp.minutemail.co/mcp", "headers": { "Authorization": "Bearer mmak_XXXXXXXX" } } }}{ "mcpServers": { "minutemail": { "command": "npx", "args": [ "mcp-remote", "https://mcp.minutemail.co/mcp", "--header", "Authorization: Bearer mmak_XXXXXXXX" ] } }}curl -s https://mcp.minutemail.co/mcp \ -H 'Authorization: Bearer mmak_XXXXXXXX' \ -H 'Content-Type: application/json' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call", "params":{"name":"mailboxes.create","arguments":{"expiresIn":30}}}'mailboxes.create (expiresIn 30) ↓your app under test sends a verification email to the mailbox address ↓mails.list → mails.get (extract the code / link) ↓assert the flow completed — the mailbox expires on its owndocker run -p 8080:8080 \ -e API_BASE=https://api.minutemail.co \ ghcr.io/minutemailco/mcp-server:latest# or from Docker Hub:docker run -p 8080:8080 \ -e API_BASE=https://api.minutemail.co \ chrptvn/minutemail-mcp:latestgo test ./... # unit testsgo vet ./...go run . # local server on :8080