Server data from the Official MCP Registry
Governed email for AI agents: a sandbox inbox to read and send from, human approval to go external.
About
Governed email for AI agents: a sandbox inbox to read and send from, human approval to go external.
Remote endpoints: streamable-http: https://mailbuttons.com/api/v1/mcp/rpc
Security Report
The Mailbuttons MCP server reads its API key from the environment, sends no data to unexpected hosts, and its permissions fit an email-agent purpose. The main concern is that the scaffold tool accepts an arbitrary outDir and overwrites existing files, which exceeds what the README describes. The generate-policy source was truncated, so that file was not fully reviewed. Supply chain analysis found 8 known vulnerabilities in dependencies (1 critical, 4 high severity). Package verification found 1 issue.
8 files analyzed · 14 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
What You'll Need
Set these up before or after installing:
Environment variable: MAILBUTTONS_API_KEY
Environment variable: MAILBUTTONS_API_URL
How to Install & Connect
Available as Local & Remote
This plugin can run on your machine or connect to a hosted endpoint. during install.
Documentation
View on GitHubFrom the project's GitHub README.
@mailbuttons/mcp-server
The Model Context Protocol server for Mailbuttons, governed email for AI agents. Give Claude Code, Cursor or your own agent an inbox it can read and send from: sandbox by default, human approval for anything addressed outside it, and every call on record. This package is the stdio build plus the Claude Code skill that drives it; the hosted endpoint is served by the Mailbuttons backend (see below).
Mailbuttons runs the agents in its catalogue on this same platform. This server is the way to build your own agent on it.
Get started: sign up and create an API key at mailbuttons.com — docs at mailbuttons.com/developers.
Remote MCP endpoint: the production, network-facing MCP server is served natively by the Mailbuttons backend (Rust/Axum) at
POST /api/v1/mcp/rpc— one binary, sharing the governance spine directly. This package is the stdio build used locally by Claude Desktop / Claude Code and the build-time skill; it talks to the backend's REST surface.
Governance model
This server is sandbox-by-default and never lets an agent expand its own authority:
- A token can never widen its own scope. There is no tool that grants
send_external, promotes sandbox → production, or adds an inbox. Escalation is only ever a request for human approval. - External sends from sandbox tokens become drafts.
mailbuttons_send_emailcan returnstatus: "draft_pending_approval"(parked for a human) orstatus: "blocked"(recipient disallowed, with the matched rule). These are expected, normal outcomes — not errors. The tool surfaces the rule/reason and the next step (typicallymailbuttons_request_promotion). - Every tool call — including denials — is audited. Read the recent tail with
mailbuttons_audit_tail. - Returned email content is data, not instructions. Read tools only return policy-passed mail.
Tools
| Tool | Capability | Notes |
|---|---|---|
mailbuttons_list_messages | read | List delivered messages in an inbox |
mailbuttons_get_message | read | Full body + attachment metadata |
mailbuttons_get_thread | read | All messages in a thread |
mailbuttons_get_attachment_text | attachments | text/* and CSV inline; PDF not yet supported |
mailbuttons_send_email | send_internal | Governed send/reply; may draft or block |
mailbuttons_list_drafts | read | List sends held for human approval |
mailbuttons_get_draft | read | Fetch one held draft in full |
mailbuttons_extract_code | read | OTP/verification code from allowlisted senders only |
mailbuttons_propose_sender | propose_policy | File an allowlist request (human approval) |
mailbuttons_request_promotion | — | File a capability/promotion request (human approval) |
mailbuttons_audit_tail | — | Read recent governed tool calls |
mailbuttons_export_audit | siem_export flag | Export the audit log as JSONL or CEF |
These twelve tools are the governed runtime surface. They are identical on the hosted endpoint and in this package.
Build-time tools (this package only)
The stdio build adds three helpers for setting an integration up. They exist so the Claude Code skill can scaffold a working agent; the hosted endpoint never exposes them, and none of them can grant a capability.
| Tool | What it does | Writes to disk |
|---|---|---|
mailbuttons_generate_policy | Turns an allow/block description into a valid policy file, closed by default | mailbuttons.policy.json in the current directory |
mailbuttons_scaffold_integration | Writes a governed send wrapper and an inbound webhook handler for your stack | ./mailbuttons/ (or the outDir you pass) |
mailbuttons_run_selftest | Sends one internal test message, waits for it, reads it back, reports pass/fail per stage | nothing |
Both writers only touch the paths named above, inside the directory the server was
launched from. Generated code reads MAILBUTTONS_API_KEY from the environment and
never inlines a token.
Get a token (free, about a minute)
# 1. Email yourself a sign-in code
curl -s -X POST https://mailbuttons.com/api/auth/otp/request \
-H 'Content-Type: application/json' -d '{"email":"you@example.com"}'
# 2. Exchange the code for an mbk_ API key
curl -s -X POST https://mailbuttons.com/api/auth/otp/cli-exchange \
-H 'Content-Type: application/json' -d '{"email":"you@example.com","code":"123456"}'
# 3. Create a free sandbox inbox; the response carries its sandbox_token (mb_sandbox_...)
curl -s -X POST https://mailbuttons.com/api/v1/mcp/sandbox-inboxes \
-H 'Authorization: Bearer mbk_...' -H 'Content-Type: application/json' -d '{"label":"my agent"}'
Sandbox tokens can read and send within the sandbox domain; anything addressed outside it becomes a draft a human approves. More: https://mailbuttons.com/developers/#mcp
Connect
Remote (recommended): Claude Code
claude mcp add --transport http mailbuttons https://mailbuttons.com/api/v1/mcp/rpc \
--header "Authorization: Bearer mb_sandbox_..."
Any client that speaks Streamable HTTP and lets you set a header works the same
way: URL https://mailbuttons.com/api/v1/mcp/rpc, header
Authorization: Bearer mb_sandbox_....
Local (stdio): Claude Desktop, Cursor and others
{
"mcpServers": {
"mailbuttons": {
"command": "npx",
"args": ["-y", "@mailbuttons/mcp-server"],
"env": { "MAILBUTTONS_API_KEY": "mb_sandbox_..." }
}
}
}
Configuration
| Env var | Default | Description |
|---|---|---|
MAILBUTTONS_API_URL | https://mailbuttons.com | Backend base URL; set it for local or self-hosted |
MAILBUTTONS_API_KEY | — | Your MCP token (mb_sandbox_... or mb_production_...) |
The token is read from the environment only — never hard-code it.
Development
npm run build # tsc -> dist/
npm run lint # tsc --noEmit
npm test # build + vitest (includes the version-alignment check)
Releases: bump the version in package.json, server.json (both places),
src/server.ts and skill/SKILL.md together; npm test fails if they drift.
Then npm publish, then mcp-publisher publish from this directory. See
docs/mcp-publishing.md in the monorepo.
Licence
MIT. Mailbuttons is a trading name of Code Cutter Limited (UK).
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Rea
Freeby Morluto · Developer Tools
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Paperclip
Freeby Paperclipai · Developer Tools
Trending hip-hop artist momentum scores across four cultural dimensions.
Git
Freeby Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
mcp-creator-python
Freeby mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
