mailmate-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mailmate-mcpsearch for recent emails from Bob about the quarterly report"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mailmate-mcp
An MCP server that gives Claude (and other MCP clients) direct access to MailMate, the macOS email client. Search, read, move, tag, and link emails without leaving your conversation.
Requirements
macOS (MailMate is Mac-only)
MailMate installed and configured with at least one IMAP account
Python 3.11+
Related MCP server: mcp-imap-server
Installation
git clone https://github.com/huckncatch/mailmate-mcp
cd mailmate-mcp
uv syncMCP Registration
Claude Code (global, all projects)
claude mcp add --scope user mailmate /path/to/mailmate-mcp/.venv/bin/mailmate-mcpOr add manually to ~/.claude.json under "mcpServers":
"mailmate": {
"type": "stdio",
"command": "/path/to/mailmate-mcp/.venv/bin/mailmate-mcp",
"args": [],
"env": {}
}Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"mailmate": {
"command": "/path/to/mailmate-mcp/.venv/bin/mailmate-mcp"
}
}
}Restart Claude Desktop after any change to server code or config.
Tools
Tool | Description |
| Search by query string, tag, account, or mailbox. Supports body search. |
| Fetch full details and body for a message by its |
| List all mailboxes across all configured accounts with message counts. |
| List all tags defined in MailMate Preferences → Tags. |
| Get the |
| Navigate MailMate to a specific message. |
| Move a message to a different mailbox (syncs via IMAP). |
| Add or remove tags on a message (syncs as IMAP keywords). |
Messages are identified by message:// URLs derived from the RFC 2822 Message-ID header, e.g. message://%3Cabc123@example.com%3E. Use search_messages to find them.
How It Works
The server reads MailMate's on-disk message store at:
~/Library/Application Support/MailMate/Messages.noindex/IMAP/
<account>/
<mailbox>.mailbox/
Messages/
<uid>.emlmailstore.py — filesystem and parsing layer. Walks the store, parses .eml files, and maintains an in-memory index for fast search. No MCP or AppleScript dependencies.
server.py — MCP boundary. Defines all tools via fastmcp and issues AppleScript calls to MailMate for actions that require IMAP sync (open, tag, activate).
Development
# Run the server directly (stdio transport)
uv run mailmate-mcp
# Or via the module
uv run python -m mailmate_mcp.serverThere is no automated test suite. Manual testing is done by registering the server with Claude Desktop or Claude Code and exercising the tools in a conversation.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/huckncatch/mailmate-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server