Vexa
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Description from the maker (original English)
Governed email for AI agents: a sandbox inbox to read and send from, human approval to go external.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
MAILBUTTONS_API_KEY, MAILBUTTONS_API_URL, AuthorizationValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"mailbuttons": {
"command": "npx",
"args": [
"-y",
"@mailbuttons/mcp-server"
],
"env": {
"MAILBUTTONS_API_KEY": "your-value",
"MAILBUTTONS_API_URL": "your-value"
}
}
}
}Run this in your terminal
claude mcp add --transport http mailbuttons https://mailbuttons.com/api/v1/mcp/rpc --header 'Authorization: your-value'claude mcp add mailbuttons --env MAILBUTTONS_API_KEY=your-value --env MAILBUTTONS_API_URL=your-value -- npx -y @mailbuttons/mcp-serverFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"mailbuttons": {
"url": "https://mailbuttons.com/api/v1/mcp/rpc",
"headers": {
"Authorization": "your-value"
}
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"mailbuttons": {
"command": "npx",
"args": [
"-y",
"@mailbuttons/mcp-server"
],
"env": {
"MAILBUTTONS_API_KEY": "your-value",
"MAILBUTTONS_API_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"mailbuttons": {
"type": "http",
"url": "https://mailbuttons.com/api/v1/mcp/rpc",
"headers": {
"Authorization": "your-value"
}
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"mailbuttons": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@mailbuttons/mcp-server"
],
"env": {
"MAILBUTTONS_API_KEY": "your-value",
"MAILBUTTONS_API_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Your choice stays on this device in a cookie; no account needed.
MAILBUTTONS_API_URL envAuthorization secret required HTTP headerThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified against the domain mailbuttons.com (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: MAILBUTTONS_API_KEY, Authorization
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (0.1.4) reached the registry 9 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Vexa, emailmd, MCP WhatsApp Cloud
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.
MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
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](https://mailbuttons.com) — docs at
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.
This server is sandbox-by-default and never lets an agent expand its own authority:
send_external, promotes sandbox → production, or adds an inbox. Escalation is only ever a *request* for human approval.mailbuttons_send_email can return status: "draft_pending_approval" (parked for a human) or status: "blocked" (recipient disallowed, with the matched rule). These are expected, normal outcomes — not errors. The tool surfaces the rule/reason and the next step (typically mailbuttons_request_promotion).mailbuttons_audit_tail.| 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.
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.
# 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"}'
curl -s -X POST https://mailbuttons.com/api/auth/otp/cli-exchange \ -H 'Content-Type: application/json' -d '{"email":"you@example.com","code":"123456"}'
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
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_....
{
"mcpServers": { "mailbuttons": { "command": "npx", "args": ["-y", "@mailbuttons/mcp-server"], "env": { "MAILBUTTONS_API_KEY": "mb_sandbox_..." } } } }
| 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.
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.
MIT. Mailbuttons is a trading name of Code Cutter Limited (UK).