{
  "markdown": "# assistantmail-mcp\n\nMCP server for [AssistantMail](https://assistant-mail.ai) — give AI agents a managed mailbox to send and receive email.\n\nBuilt for personal and small-team OpenClaw / Hermes operators who want agent email with allowlist, consent, retention, and spend caps you control. Listed on ClawHub for easy install — not an official OpenClaw endorsement.\n\n[Get Free](https://app.assistant-mail.ai/?utm_source=github&utm_medium=readme&utm_campaign=clawhub_readme_amplify) · [Docs](https://assistant-mail.ai/docs) · [Website](https://assistant-mail.ai) · [Privacy](https://assistant-mail.ai/privacy.html) · [Terms](https://assistant-mail.ai/terms.html) · [Contributing](./CONTRIBUTING.md)\n\n## OpenClaw / ClawHub\n\n```bash\nopenclaw skills install @assistantmail/assistant-mail\n```\n\nThen configure your MCP client to run this server and set `ASSISTANT_MAIL_API_KEY` (Claude Desktop and Cursor examples below). Skill: [assistant-mail on ClawHub](https://clawhub.ai/assistantmail/skills/assistant-mail). Same MCP works with Hermes.\n\n## Installation\n\n```bash\nnpx -y @assistantmail/assistantmail-mcp\n```\n\nNode 24+.\n\n### Claude Desktop\n\n```json\n{\n  \"mcpServers\": {\n    \"assistantmail\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@assistantmail/assistantmail-mcp\"],\n      \"env\": {\n        \"ASSISTANT_MAIL_API_KEY\": \"amk_...\"\n      }\n    }\n  }\n}\n```\n\n### Cursor / VS Code (`.cursor/mcp.json` or `.vscode/mcp.json`)\n\n```json\n{\n  \"servers\": {\n    \"assistantmail\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@assistantmail/assistantmail-mcp\"],\n      \"env\": {\n        \"ASSISTANT_MAIL_API_KEY\": \"amk_...\"\n      }\n    }\n  }\n}\n```\n\n## Prerequisites\n\n1. Create a free account via the [Get Free](https://app.assistant-mail.ai/?utm_source=github&utm_medium=readme&utm_campaign=clawhub_readme_amplify) link above (1 agent, 25/day; current limits: [Docs](https://assistant-mail.ai/docs)).\n2. Go to **API Keys** and create a key (`amk_...`). Copy it immediately — it is only shown once.\n3. Set `ASSISTANT_MAIL_API_KEY`; call `assistantmail_list_mailboxes` to get your `mailboxId` UUID. Mail API routes use that UUID, not an email address.\n\nPaid plans: upgrade in-app only (not Payment Links). Use **Upgrade** in the AssistantMail app — checkout is not sold via Stripe Payment Links. Docs: [assistant-mail.ai/docs](https://assistant-mail.ai/docs)\n\n## Official MCP Registry\n\nThe listing is **live** as [`io.github.AssistantMail/assistantmail-mcp`](https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.AssistantMail/assistantmail-mcp) on the Official MCP Registry. Product docs: [assistant-mail.ai/docs](https://assistant-mail.ai/docs).\n\nPackaging lives in [`server.json`](./server.json). After a version bump, republish with `mcp-publisher` — see [docs/MCP_REGISTRY.md](./docs/MCP_REGISTRY.md).\n\n## Environment variables\n\n| Variable | Default | Description |\n|---|---|---|\n| `ASSISTANT_MAIL_API_KEY` | _(none)_ | API key (`amk_...`). Can be omitted if passed per-tool. |\n| `ASSISTANT_MAIL_API_BASE_URL` | `https://api.assistant-mail.ai` | The public API for the AssistantMail service |\n\n## Tools\n\n### Diagnostics\n| Tool | Description |\n|---|---|\n| `assistantmail_health` | Check that the MCP server is running and confirm the API base URL. No API key required. |\n\n### Account\n| Tool | Description |\n|---|---|\n| `assistantmail_get_me` | Get account profile and plan tier. |\n| `assistantmail_get_inbound_policy` | Get the current inbound email policy (who can send to this account's mailboxes). |\n| `assistantmail_update_inbound_policy` | Update the inbound policy (if allowed by selected account tier). Accepted values: `owner`, `list`, `sent`. Use `allowedSenders` with `list`. |\n\n### Mailboxes\n| Tool | Description |\n|---|---|\n| `assistantmail_list_mailboxes` | List all mailboxes on the account. Returns `mailboxId` needed for message operations. |\n| `assistantmail_create_mailbox` | Create a new mailbox (if allowed by selected account tier), optionally specifying `displayName` and `address`. |\n| `assistantmail_get_mailbox` | Get metadata for a single mailbox by `mailboxId`. |\n| `assistantmail_update_mailbox` | Update a mailbox's display name. |\n| `assistantmail_delete_mailbox` | Permanently delete a mailbox and all its messages. THIS ACTION HAS NO CONFIRMATION. USE CAREFULLY. |\n\n### Messages\n| Tool | Description |\n|---|---|\n| `assistantmail_list_messages` | List inbound and outbound messages for a mailbox. Supports `since` (ISO timestamp) and `limit` (max 100). |\n| `assistantmail_get_message` | Fetch a single message including `textBody` and `htmlBody`. Bodies are only returned within the plan's retention window; `bodyExpired: true` is set if the window has elapsed. |\n| `assistantmail_send_email` | Queue an outbound email. Requires `to`, `subject`, and at least one of `text` or `html`. |\n| `assistantmail_reply_message` | Reply to an existing message. Requires `messageId` and at least one of `text` or `html`; recipients and subject are derived automatically. |\n| `assistantmail_delete_messages` | Delete messages by `messageIds` array, or pass `deleteAll: true` to clear the mailbox. |\n| `assistantmail_get_usage` | Get daily and monthly send quota usage for a mailbox. A `null` limit means unlimited. |\n\n### Recipients\n| Tool | Description |\n|---|---|\n| `assistantmail_list_recipients` | List approved and pending recipients for the account. |\n| `assistantmail_add_recipient` | Add a recipient. Sends a consent invitation email when required by the account's plan. |\n| `assistantmail_remove_recipient` | Remove a recipient from the allowed list. |\n\n### Reference tools\nThese return raw REST endpoint details rather than calling the API. Use them when you need to construct a request manually or inspect the exact URL and response schema.\n\n| Tool | Description |\n|---|---|\n| `assistantmail_send_email_reference` | Endpoint, headers, and body fields for `POST /v1/mailboxes/{mailboxId}/messages`. |\n| `assistantmail_list_messages_reference` | Endpoint and query params for `GET /v1/mailboxes/{mailboxId}/messages`. |\n| `assistantmail_get_message_reference` | Endpoint and response schema for `GET /v1/mailboxes/{mailboxId}/messages/{messageId}`. |\n| `assistantmail_get_usage_reference` | Endpoint and response schema for `GET /v1/mailboxes/{mailboxId}/usage`. |\n\n## Quick start\n\n```bash\nAPI_KEY=\"amk_...\"\nBASE=\"https://api.assistant-mail.ai\"\n\n# 1) Discover your mailboxId\ncurl \"$BASE/v1/mailboxes\" -H \"x-api-key: $API_KEY\"\n\n# 2) Send an email\ncurl -X POST \"$BASE/v1/mailboxes/<mailboxId>/messages\" \\\n  -H \"x-api-key: $API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"to\":\"recipient@example.com\",\"subject\":\"Hello\",\"text\":\"Hi there\"}'\n\n# 3) Read inbox\ncurl \"$BASE/v1/mailboxes/<mailboxId>/messages\" -H \"x-api-key: $API_KEY\"\n```\n\n## Tool call examples\n\n```json\n{ \"tool\": \"assistantmail_list_mailboxes\", \"input\": { \"apiKey\": \"amk_...\" } }\n```\n\n```json\n{\n  \"tool\": \"assistantmail_list_messages\",\n  \"input\": { \"mailboxId\": \"<uuid>\", \"limit\": 20, \"since\": \"2026-01-01T00:00:00.000Z\" }\n}\n```\n\n```json\n{\n  \"tool\": \"assistantmail_get_message\",\n  \"input\": { \"mailboxId\": \"<uuid>\", \"messageId\": \"<uuid>\" }\n}\n```\n\n```json\n{\n  \"tool\": \"assistantmail_send_email\",\n  \"input\": {\n    \"mailboxId\": \"<uuid>\",\n    \"to\": \"recipient@example.com\",\n    \"subject\": \"Hello\",\n    \"text\": \"Hi there\"\n  }\n}\n```\n\n```json\n{\n  \"tool\": \"assistantmail_reply_message\",\n  \"input\": {\n    \"mailboxId\": \"<uuid>\",\n    \"messageId\": \"<uuid>\",\n    \"text\": \"Thanks for the update.\"\n  }\n}\n```\n\nIf `ASSISTANT_MAIL_API_KEY` is set in the server environment, `apiKey` can be omitted from all tool inputs.\n\n---\n\n[AssistantMail](https://assistant-mail.ai) · [Privacy Policy](https://assistant-mail.ai/privacy.html) · [Terms of Use](https://assistant-mail.ai/terms.html)",
  "bytes": 7760,
  "sha": "817e987c88ae2e2e4a1aa922ddf3f4a02be44efe798099595171d1d04f178862",
  "repo_slug": "assistantmail/assistantmail-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_assistantmail_assistantmail_mc_d819b1ec/readme"
}