邮件管理服务器

一个为Claude和其他MCP客户端提供直接访问MailMate(macOS电子邮件客户端)的服务器,支持搜索、阅读、移动、标记和链接电子邮件。

  • by huckncatch
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 huckncatch/mailmate-mcp

使用说明

邮递员mcp

一 主控程序 允许Claude(和其他MCP客户端)直接访问的服务器 MailMate,macOS电子邮件客户端。在不离开对话的情况下搜索、阅读、移动、标记和链接电子邮件。

需求

  • macOS(MailMate仅适用于Mac)
  • MailMate 已安装并配置了至少一个IMAP帐户
  • Python 3.11+
  • 紫外线

安装

git clone https://github.com/huckncatch/mailmate-mcp
cd mailmate-mcp
uv sync

MCP注册

Claude Code(全球,所有项目)

claude mcp add --scope user mailmate /path/to/mailmate-mcp/.venv/bin/mailmate-mcp

或手动添加到 ~/.claude.json 在...之下 "mcpServers":

"mailmate": {
  "type": "stdio",
  "command": "/path/to/mailmate-mcp/.venv/bin/mailmate-mcp",
  "args": [],
  "env": {}
}

克劳德桌面

添加 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "mailmate": {
      "command": "/path/to/mailmate-mcp/.venv/bin/mailmate-mcp"
    }
  }
}

更改服务器代码或配置后重新启动Claude Desktop。

工具

工具 说明
search_messages 按查询字符串、标记、帐户或邮箱搜索。支持身体搜索。
get_message 按以下方式获取消息的完整细节和正文 message:// URL。
list_mailboxes 列出所有已配置帐户中的所有邮箱及其邮件计数。
list_tags 列出MailMate首选项中定义的所有标签→ Tags.
get_message_link 拿到 message:// 链接一条消息,并在MailMate中打开它。
open_message_in_mailmate 将MailMate导航到特定邮件。
move_message 将邮件移动到其他邮箱(通过IMAP同步)。
tag_message 添加或删除邮件上的标签(作为IMAP关键字同步)。

消息由以下标识 message:// 源自RFC 2822的URL Message-ID 标题,例如。 message://%3Cabc123@example.com%3E.使用 search_messages 找到他们。

运作原理

服务器读取MailMate的磁盘消息存储:

~/Library/Application Support/MailMate/Messages.noindex/IMAP/
  <account>/
    <mailbox>.mailbox/
      Messages/
        <uid>.eml

mailstore.py --文件系统和解析层。逛商店,解析 .eml 并维护内存索引以进行快速搜索。无MCP或AppleScript依赖关系。

server.py --MCP边界。通过以下方式定义所有工具 fastmcp 并向MailMate发出AppleScript调用,以执行需要IMAP同步的操作(打开、标记、激活)。

发展

# Run the server directly (stdio transport)
uv run mailmate-mcp

# Or via the module
uv run python -m mailmate_mcp.server

没有自动化测试套件。手动测试是通过在Claude Desktop或Claude Code中注册服务器并在对话中使用这些工具来完成的。