Assistant Mail MCP

io.github.AssistantMailPublished by GitHub account AssistantMailv1.3.1Updated Oct 24, 2026

Agent email with allowlist and consent via AssistantMail.

Overview

AI-generated overview

Gives an AI assistant a managed AssistantMail mailbox to send, read, reply to, and delete email under account-level allowlists and consent rules.

What you can do
Connects an assistant to the AssistantMail service so it can list and create mailboxes, list and fetch inbound and outbound messages, queue outbound email, reply to existing messages, and delete messages or whole mailboxes. It also manages recipients (approved and pending), reads and updates the inbound policy, and reports daily and monthly send quota usage. A few reference tools return raw REST endpoint details instead of calling the API.
When to use it
Worth adding when an assistant needs its own email identity for sending and receiving on behalf of a person or small team, with allowlist, consent, retention, and spend caps controlled by the account. Less useful if you only need to read an existing personal mailbox, since this is a separate managed mailbox service.
Requirements
Runs locally over stdio via npx (Node 24+). Needs an AssistantMail account and an API key (amk_...) supplied as the ASSISTANT_MAIL_API_KEY environment variable or per tool call; the optional ASSISTANT_MAIL_API_BASE_URL overrides the default API base URL. Network access to the AssistantMail API is required.
Before you install
The API key is a secret and is shown only once at creation; store it in the environment rather than in shared config. Deleting a mailbox permanently removes it and all its messages with no confirmation, and delete-messages can clear an entire mailbox. Sending email and adding recipients contact third parties, and adding a recipient may send a consent invitation. Paid tiers are upgraded in-app and involve spending.

Installation

In SourceWeft

  1. Open Assistant Mail MCP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

assistantmail-mcp

MCP server for AssistantMail — give AI agents a managed mailbox to send and receive email.

Built 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.

Get Free · Docs · Website · Privacy · Terms · Contributing

OpenClaw / ClawHub

bash
openclaw skills install @assistantmail/assistant-mail

Then 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. Same MCP works with Hermes.

Installation

bash
npx -y @assistantmail/assistantmail-mcp

Node 24+.

Claude Desktop

json
{  "mcpServers": {    "assistantmail": {      "command": "npx",      "args": ["-y", "@assistantmail/assistantmail-mcp"],      "env": {        "ASSISTANT_MAIL_API_KEY": "amk_..."      }    }  }}

Cursor / VS Code (.cursor/mcp.json or .vscode/mcp.json)

json
{  "servers": {    "assistantmail": {      "command": "npx",      "args": ["-y", "@assistantmail/assistantmail-mcp"],      "env": {        "ASSISTANT_MAIL_API_KEY": "amk_..."      }    }  }}

Prerequisites

  1. Create a free account via the Get Free link above (1 agent, 25/day; current limits: Docs).
  2. Go to API Keys and create a key (amk_...). Copy it immediately — it is only shown once.
  3. Set ASSISTANT_MAIL_API_KEY; call assistantmail_list_mailboxes to get your mailboxId UUID. Mail API routes use that UUID, not an email address.

Paid 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

Official MCP Registry

The listing is live as io.github.AssistantMail/assistantmail-mcp on the Official MCP Registry. Product docs: assistant-mail.ai/docs.

Packaging lives in server.json. After a version bump, republish with mcp-publisher — see docs/MCP_REGISTRY.md.

Environment variables

VariableDefaultDescription
ASSISTANT_MAIL_API_KEY(none)API key (amk_...). Can be omitted if passed per-tool.
ASSISTANT_MAIL_API_BASE_URLhttps://api.assistant-mail.aiThe public API for the AssistantMail service

Tools

Diagnostics

ToolDescription
assistantmail_healthCheck that the MCP server is running and confirm the API base URL. No API key required.

Account

ToolDescription
assistantmail_get_meGet account profile and plan tier.
assistantmail_get_inbound_policyGet the current inbound email policy (who can send to this account's mailboxes).
assistantmail_update_inbound_policyUpdate the inbound policy (if allowed by selected account tier). Accepted values: owner, list, sent. Use allowedSenders with list.

Mailboxes

ToolDescription
assistantmail_list_mailboxesList all mailboxes on the account. Returns mailboxId needed for message operations.
assistantmail_create_mailboxCreate a new mailbox (if allowed by selected account tier), optionally specifying displayName and address.
assistantmail_get_mailboxGet metadata for a single mailbox by mailboxId.
assistantmail_update_mailboxUpdate a mailbox's display name.
assistantmail_delete_mailboxPermanently delete a mailbox and all its messages. THIS ACTION HAS NO CONFIRMATION. USE CAREFULLY.

Messages

ToolDescription
assistantmail_list_messagesList inbound and outbound messages for a mailbox. Supports since (ISO timestamp) and limit (max 100).
assistantmail_get_messageFetch 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.
assistantmail_send_emailQueue an outbound email. Requires to, subject, and at least one of text or html.
assistantmail_reply_messageReply to an existing message. Requires messageId and at least one of text or html; recipients and subject are derived automatically.
assistantmail_delete_messagesDelete messages by messageIds array, or pass deleteAll: true to clear the mailbox.
assistantmail_get_usageGet daily and monthly send quota usage for a mailbox. A null limit means unlimited.

Recipients

ToolDescription
assistantmail_list_recipientsList approved and pending recipients for the account.
assistantmail_add_recipientAdd a recipient. Sends a consent invitation email when required by the account's plan.
assistantmail_remove_recipientRemove a recipient from the allowed list.

Reference tools

These 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.

ToolDescription
assistantmail_send_email_referenceEndpoint, headers, and body fields for POST /v1/mailboxes/{mailboxId}/messages.
assistantmail_list_messages_referenceEndpoint and query params for GET /v1/mailboxes/{mailboxId}/messages.
assistantmail_get_message_referenceEndpoint and response schema for GET /v1/mailboxes/{mailboxId}/messages/{messageId}.
assistantmail_get_usage_referenceEndpoint and response schema for GET /v1/mailboxes/{mailboxId}/usage.

Quick start

bash
API_KEY="amk_..."BASE="https://api.assistant-mail.ai"
# 1) Discover your mailboxIdcurl "$BASE/v1/mailboxes" -H "x-api-key: $API_KEY"
# 2) Send an emailcurl -X POST "$BASE/v1/mailboxes/<mailboxId>/messages" \  -H "x-api-key: $API_KEY" \  -H "Content-Type: application/json" \  -d '{"to":"[email protected]","subject":"Hello","text":"Hi there"}'
# 3) Read inboxcurl "$BASE/v1/mailboxes/<mailboxId>/messages" -H "x-api-key: $API_KEY"

Tool call examples

json
{ "tool": "assistantmail_list_mailboxes", "input": { "apiKey": "amk_..." } }
json
{  "tool": "assistantmail_list_messages",  "input": { "mailboxId": "<uuid>", "limit": 20, "since": "2026-01-01T00:00:00.000Z" }}
json
{  "tool": "assistantmail_get_message",  "input": { "mailboxId": "<uuid>", "messageId": "<uuid>" }}
json
{  "tool": "assistantmail_send_email",  "input": {    "mailboxId": "<uuid>",    "to": "[email protected]",    "subject": "Hello",    "text": "Hi there"  }}
json
{  "tool": "assistantmail_reply_message",  "input": {    "mailboxId": "<uuid>",    "messageId": "<uuid>",    "text": "Thanks for the update."  }}

If ASSISTANT_MAIL_API_KEY is set in the server environment, apiKey can be omitted from all tool inputs.


AssistantMail · Privacy Policy · Terms of Use

Source: README.md at commit 16a3f92

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.3.1LatestSep 16, 2026

Score

50% 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.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts