streamable-httpMITupdated 14d ago
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.
O que dá para fazer com MinuteMail?
MinuteMail MCP Server
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.
- Endpoint:
https://mcp.minutemail.co/mcp(Streamable HTTP, protocol revision2025-06-18) - Auth: your MinuteMail API key (
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. - Also listed in the official MCP Registry
as
io.github.minutemailco/mcp-serverand on Smithery.
Get an API key
-
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
Authorizationheader:Authorization: Bearer mmak_XXXXXXXX
Connect your MCP client
Claude Code / Claude Desktop / Cursor / any Streamable HTTP client:
- URL:
https://mcp.minutemail.co/mcp - Header:
Authorization: Bearer mmak_...
Claude Code CLI:
claude mcp add --transport http minutemail https://mcp.minutemail.co/mcp \
--header "Authorization: Bearer mmak_XXXXXXXX"
Claude Desktop / clients with an mcpServers JSON config (e.g.
claude_desktop_config.json / ~/.cursor/mcp.json):
{
"mcpServers": {
"minutemail": {
"type": "http",
"url": "https://mcp.minutemail.co/mcp",
"headers": {
"Authorization": "Bearer mmak_XXXXXXXX"
}
}
}
}
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:{ "mcpServers": { "minutemail": { "command": "npx", "args": [ "mcp-remote", "https://mcp.minutemail.co/mcp", "--header", "Authorization: Bearer mmak_XXXXXXXX" ] } } }
For a guided walkthrough, see the docs: docs.minutemail.co/mcp/getting-started.
Raw JSON-RPC (what the clients do under the hood):
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}}}'
Tools (39)
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 (mailboxes scope)
| Tool | Purpose |
|---|---|
mailboxes.list |
List active mailboxes (optional exact-address lookup) |
mailboxes.create |
Create a mailbox (optional TTL, domain, recovery tag) |
mailboxes.get / mailboxes.delete |
Fetch / delete one mailbox |
mailboxes.delete_bulk |
Delete several mailboxes by ID |
mails.list / mails.inject |
List mails / simulate an inbound email (multipart, with attachments) |
mails.get / mails.delete / mails.delete_bulk |
Read / delete mails |
attachments.list / attachments.add / attachments.get / attachments.delete / attachments.delete_bulk |
Attachment CRUD |
Archived mailboxes (mailboxes scope)
archived.list, archived.get,
archived.delete, archived.reactivate.
Custom domains (domains scope)
domains.list, domains.register, domains.verify, domains.delete.
Team (team scope)
team.members.list, team.members.add, team.members.get, team.members.delete,
team.invitations.create, team.invitations.list, team.invitations.delete.
Mock identities & OAuth clients (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).
Typical agent workflow
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 own
Self-hosting
The server is a single static Go binary in a scratch image (~7 MB):
docker 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:latest
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.
| Env var | Default | Purpose |
|---|---|---|
PORT |
8080 |
Listen port |
API_BASE |
http://api-gateway:80 |
MinuteMail API base URL (use https://api.minutemail.co outside the cluster) |
LOG_LEVEL |
warn |
debug/info/warn/error |
LOG_FORMAT |
json |
json/text |
PROFILE |
dev |
Deployment profile label |
GET /health for liveness; GET /metrics for Prometheus counters.
API-key management is not exposed via MCP — manage keys from the web app.
Development
Go 1.23, stdlib plus prometheus/client_golang.
go test ./... # unit tests
go vet ./...
go run . # local server on :8080
License
MIT — © MinuteMail.co
Instalação
Adicione MinuteMail ao seu cliente. Escolha o que você usa.
claude mcp add --transport http minutemail https://mcp.minutemail.co/mcpcodex mcp add minutemail --url https://mcp.minutemail.co/mcp{
"mcpServers": {
"minutemail": {
"url": "https://mcp.minutemail.co/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"minutemail": {
"type": "http",
"url": "https://mcp.minutemail.co/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"minutemail": {
"url": "https://mcp.minutemail.co/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"minutemail": {
"serverUrl": "https://mcp.minutemail.co/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
Pontuação
39 / 100
Incompleta
- Documentação25/25
- Manutenção19/25
- Confiança13/20
- Capacidade0/15
- Instalação12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 7 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Histórico de versões
| Versões | Publicada |
|---|---|
| 1.1.3Mais recente | 24 de ago. de 2026 |
| 1.1.0 | 23 de ago. de 2026 |