Add Email to Your Claude Code Workflow with MultiMail

Connect MultiMail via MCP to Claude Code so your terminal-based AI assistant can send, read, and manage email with full oversight controls.


Claude Code is Anthropic's terminal-native CLI for working with Claude directly in your development environment. By adding MultiMail as an MCP server, Claude Code gains the ability to send emails, manage inboxes, handle contacts, and orchestrate email workflows without leaving your terminal.

Claude Code supports both global and project-scoped MCP configurations. You can add MultiMail globally in ~/.claude.json so it's available in every session, or scope it to a specific project using .mcp.json in your project root. This flexibility lets you use different API keys or mailboxes per project.

MultiMail's oversight modes pair naturally with Claude Code's agentic workflow. Set mailboxes to gated_send during development and testing, then move to monitored or autonomous for production automation.

Get started

1

Get your MultiMail API key

Sign up at multimail.dev and generate an API key from the dashboard. You'll need this to authenticate the MCP server.

2

Create an agent mailbox

Create a mailbox for Claude Code to use. Set the initial oversight mode to gated_send so all outbound emails require your approval during setup.

3

Add MultiMail to your MCP config

For global access, add the MultiMail server to ~/.claude.json. For project-specific access, add it to .mcp.json in your project root.

json
# Global config (~/.claude.json)
# Or project config (.mcp.json)
{
  "mcpServers": {
    "multimail": {
      "command": "npx",
      "args": ["-y", "@multimail/mcp-server"],
      "env": {
        "MULTIMAIL_API_KEY": "mm_live_your_key_here"
      }
    }
  }
}
4

Verify the connection

Start a new Claude Code session and ask Claude to list your mailboxes. If the MCP server is connected correctly, it will return your MultiMail mailboxes.

json
claude
> List my MultiMail mailboxes

Available MCP tools

ToolDescriptionExample
send_emailSend an email from your agent mailbox to any recipient.Send a deployment notification to the team after a successful release.
reply_emailReply to a received email, maintaining the thread context.Reply to a bug report email with the fix details and commit hash.
check_inboxCheck a mailbox for new or unread messages.Check if the CI pipeline sent any failure notification emails.
read_emailRead the full content of a specific email including headers and body.Read a detailed error report email from a monitoring system.
create_mailboxCreate a new agent mailbox on your MultiMail account.Create a project-specific mailbox for automated notifications.
list_mailboxesList all mailboxes on your MultiMail account.Check which mailboxes are available before sending a message.
get_threadRetrieve an entire email thread to see the full conversation history.Review the full thread of a client discussion before replying.
search_contactsSearch your contact list by name, email, or tags.Find the email address of a team member by name.
add_contactAdd a new contact to your MultiMail contact list.Save a new collaborator's email after they contribute to the project.
tag_emailTag or categorize an email for organization and filtering.Tag deployment-related emails with 'devops' for later filtering.
list_pendingList all emails currently awaiting human approval.Review pending outbound emails before batch-approving them.
decide_emailApprove or reject a pending email in the oversight queue.Approve a drafted client email after verifying its content.

Usage examples

Global MCP configuration
json
{
  "mcpServers": {
    "multimail": {
      "command": "npx",
      "args": ["-y", "@multimail/mcp-server"],
      "env": {
        "MULTIMAIL_API_KEY": "mm_live_your_key_here"
      }
    }
  }
}

Add MultiMail to your global Claude Code config so it's available in every terminal session.

Project-scoped configuration
json
{
  "mcpServers": {
    "multimail": {
      "command": "npx",
      "args": ["-y", "@multimail/mcp-server"],
      "env": {
        "MULTIMAIL_API_KEY": "mm_live_project_specific_key"
      }
    }
  }
}

Add MultiMail to a specific project by creating a .mcp.json file in the project root. This is useful when different projects need different API keys or mailboxes.

Send a deployment notification
text
Send an email to [email protected] from my agent mailbox.
Subject: Deployment v2.3.1 Complete
Body: The latest deployment to production completed successfully at 14:32 UTC. Changes include the new authentication flow and dashboard redesign. All health checks passing. See the changelog at https://example.com/changelog.

Use Claude Code to send a deployment notification email after a successful build.

Inbox triage workflow
text
Check my MultiMail inbox. For any unread messages:
1. Give me a summary of each with sender and subject
2. Tag anything from @client.com as 'client-priority'
3. Draft a reply to any that need a response, and I'll review them in the pending queue

Ask Claude Code to check your inbox, summarize messages, and draft replies to important ones.


Best practices

Use project-scoped config for team projects

Place a .mcp.json file in your project root and commit it to version control (with the API key excluded via .env or secrets). This ensures everyone on the team has the same MCP setup when using Claude Code in that project.

Combine email with code context

Claude Code has full access to your codebase. Ask it to read a file, generate a changelog, then email it to stakeholders. The combination of code context and email tools makes Claude Code powerful for developer communication workflows.

Use gated mode for iterative drafting

With gated_send mode, you can ask Claude to draft an email, review it in the pending queue, reject it with feedback, and ask for a revised draft. This iterative loop helps you get the tone and content right before anything is sent.

Pipe output into email context

Since Claude Code runs in your terminal, you can pipe command output into your prompts. Run your tests, then ask Claude to email the results to the team. Claude can reference the terminal output when composing the email body.


Common questions

What's the difference between global and project-scoped config?
Global config in ~/.claude.json makes the MultiMail MCP server available in every Claude Code session. Project-scoped config in .mcp.json only activates when you run Claude Code from that project directory. Project config takes precedence if both define the same server name.
Does Claude Code support SSE transport for MCP?
Claude Code primarily uses stdio transport for MCP servers. The MultiMail MCP server runs over stdio by default, so it works seamlessly with Claude Code without any transport configuration.
Can I use Claude Code to automate email workflows in CI/CD?
Yes, you can invoke Claude Code in non-interactive mode from CI/CD pipelines. Combined with MultiMail, this enables automated email notifications for deployment status, test results, or incident alerts. Set the mailbox to autonomous mode for fully automated sending.
How do I manage multiple mailboxes from Claude Code?
Use the list_mailboxes tool to see all available mailboxes, then specify which mailbox to use when sending or checking email. You can also create new mailboxes on the fly with create_mailbox. Each mailbox can have its own oversight mode.
Can I use hooks with MultiMail tools?
Yes, Claude Code supports hooks that run before or after tool calls. You could set up a hook that logs every email sent through MultiMail, or one that requires confirmation before the send_email tool executes. Configure hooks in your .claude/settings.json file.
How do I update the MultiMail MCP server?
The npx -y command fetches the latest version automatically when starting a new session. To force an immediate update, restart Claude Code. You can pin a specific version by using @multimail/[email protected] in your config args.

More MCP clients

The only agent email with a verifiable sender

Email infrastructure built for AI agents. Verifiable identity, graduated oversight, and a 38-tool MCP server. Formally verified in Lean 4.