Token导航 LogoToken导航TokenDH.com
Mailbridge MCP logo
办公协作stdio官方级别未说明来源级核验

Mailbridge MCP

MCP Server

一个自托管的MCP服务器,为Claude.ai提供通过流式HTTP协议对IMAP/SMTP电子邮件账户的读写访问。

工具数

11

提示词数

0

GitHub Stars

0

资源数

0
邮件管理PythonClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

L3DigitalNet

提供方

L3DigitalNet

最后核验

2026/5/17 20:23

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m mailbridge_mcp.server

详细介绍

Mailbridge MCP

自托管的MCP服务器,允许Claude.ai通过可流式HTTP对IMAP/SMTP电子邮件帐户进行读/写访问。

Claude.ai ──HTTPS──> Nginx (Proxmox host) ──HTTP:8765──> mailbridge-mcp (LXC)
                                                            ├── IMAP/TLS ──> mail servers
                                                            └── SMTP/TLS ──> mail servers

Python 3.13、FastMCP 3.x、GitHub OAuth(用于Claude.ai web访问)、structlog JSON日志。在专用的Proxmox LXC容器(Debian 13 Trixie)中作为systemd服务运行,通过Nginx使用TLS代理。

工具

11个MCP工具,跨越多个电子邮件帐户的读写操作:

工具说明
imap_list_accounts列出带有ID和标签的已配置帐户
imap_list_folders列出所有包含邮件/未读计数的IMAP文件夹
imap_list_messages分页消息摘要(JSON或markdown)
imap_get_message完整消息内容,HTML转明文,50K正文截断
imap_search_messages按文本、发件人、日期范围、标志搜索
imap_get_thread通过消息ID/References标头进行线程重建
imap_send_email编写和发送带有地址验证和速率限制
imap_reply回复正确 In-Reply-To/References 穿线
imap_move_message在文件夹之间移动(复制+删除模式)
imap_delete_message移动到垃圾桶(自动检测);永不删除
imap_set_flags标记已读/未读、标记/未标记

所有工具在失败时都会返回结构化JSON错误。附件内容永远不会返回到模型(仅元数据)。

快速开始

git clone https://github.com/L3DigitalNet/mailbridge-mcp.git
cd mailbridge-mcp
uv venv --python 3.13 .venv
source .venv/bin/activate
uv pip install -e ".[dev]"

复制并编辑配置文件:

cp .env.example .env
cp config/accounts.yaml.example config/accounts.yaml
# Edit both files with your credentials

服务器需要GitHub OAuth凭据才能启动(它拒绝在没有身份验证的情况下运行):

# Set these in .env:
# GITHUB_OAUTH_CLIENT_ID=
# GITHUB_OAUTH_CLIENT_SECRET=
# MCP_PUBLIC_HOST=

运行服务器:

python -m mailbridge_mcp.server
# Listening on http://0.0.0.0:8765
# Health check: curl http://localhost:8765/health

认证

Claude.ai的web界面要求远程MCP服务器使用OAuth 2.1(它不支持原始Bearer令牌)。此服务器使用FastMCP的内置 GitHubProvider 以处理OAuth流。

设置:

  1. 创建一个 回调URL设置为 https:///auth/callback
  2. GITHUB_OAUTH_CLIENT_IDGITHUB_OAUTH_CLIENT_SECRET.env
  3. 当从Claude.ai连接时,只需输入基本URL(例如。, https://mcp.example.com)-没有 /mcp 后缀
  4. Claude.ai通过GitHub重定向您进行授权,然后您就连接了

克劳德代码: 使用 claude mcp add 随着 --transport http--header 用于直接访问承载令牌。

配置

环境变量(.env)

变量默认值用途
GITHUB_OAUTH_CLIENT_ID(必填)GitHub OAuth应用程序客户端ID
GITHUB_OAUTH_CLIENT_SECRET(必填)GitHub OAuth应用程序客户端密码
MCP_PUBLIC_HOST(必填)OAuth回调的公共主机名
MCP_HOST0.0.0.0收听地址
MCP_PORT8765监听端口
IMAP_TIMEOUT30超时前每个IMAP操作的秒数
SMTP_TIMEOUT30超时前每次SMTP发送的秒数
LOG_LEVELINFODEBUG, INFO, WARNING,或 ERROR
SMTP_RATE_LIMIT10所有工具每分钟的最大发送次数(0=无限制)
ACCOUNTS_CONFIG_PATH/etc/mailbridge-mcp/accounts.yaml帐户定义路径

账户定义(accounts.yaml)

每个帐户指定IMAP和SMTP连接详细信息。密码使用 ${VAR} 启动时从环境变量解析占位符;它们从未出现在YAML中。

accounts:
  - id: personal
    label: "Personal (me@example.com)"
    imap:
      host: mail.example.com
      port: 993
      tls: true
      username: me@example.com
      password: "${PERSONAL_IMAP_PASSWORD}"
    smtp:
      host: mail.example.com
      port: 587
      starttls: true
      username: me@example.com
      password: "${PERSONAL_SMTP_PASSWORD}"
    default_from: "My Name "

部署

设计文件(docs/mailbridge-mcp-design.md)有完整的部署说明。简短版本:

  1. LXC容器: 在Proxmox上使用静态IP和Python 3.13创建一个无特权的Debian 13容器。
  1. 安装: 将仓库克隆到 /opt/mailbridge-mcp,创建一个venv, pip install -e .,部署 .envaccounts.yaml 随着 chmod 600.
  1. 系统服务: 该装置作为专用设备运行 mailbridge 用户:
   ExecStart=/opt/mailbridge-mcp/.venv/bin/python -m mailbridge_mcp.server
  1. Nginx反向代理 Proxmox主机上的HTTPS将转发到容器。禁用此vhost的全局速率限制(OAuth流是突发的):
   location / {
       limit_req zone=api burst=200 nodelay;
       proxy_pass http://:8765;
       proxy_buffering off;
       proxy_read_timeout 300s;
   }
  1. 连接Claude.ai: 设置>集成>添加自定义集成。输入您的基本URL(例如。, https://mcp.example.com).Claude.ai重定向到GitHub OAuth进行授权。

CI/CD

GitHub操作运行 ruff check, mypy,以及 pytest 每一次推。部署工作流SSH在合并时部署到LXC main.

发展

ruff check .                          # lint
ruff format .                         # format
mypy mailbridge_mcp/                  # type check
pytest                                # run tests
pytest tests/test_config.py           # single file
pytest -k "test_send"                 # single test by name
pytest --cov=mailbridge_mcp           # coverage report

108个测试,涵盖配置、IMAP客户端、SMTP客户端、格式化程序、身份验证中间件、工具行为、MCP合约验证和输入验证。

安全

  • 通过FastMCP的GitHub OAuth 2.1 GitHubProvider (适用于Claude.ai网络访问)
  • 未配置身份验证,服务器拒绝启动
  • 凭据仅存在于环境变量中,从不存在于代码或YAML中
  • 对错误消息进行清理:在返回模型之前,删除电子邮件地址、主机名和IP
  • 根据安全字符正则表达式验证IMAP文件夹名称;搜索查询长度有限
  • 阻止电子邮件头注入:主题和回复_拒绝CR/LF
  • SMTP速率限制可防止发送失控(默认为10/min)
  • 删除操作移至回收站; EXPUNGE 从未被召唤
  • 电子邮件正文截断为50000个字符以保护上下文窗口
  • 附件二进制内容永远不会返回(仅元数据)
  • UID字段已验证(仅限正整数;列表上限为1000)

安全.md 用于漏洞报告。

许可证

麻省理工学院

目录标签

目录标签

邮件管理PythonClaude本地部署自托管服务IMAP/SMTP集成HTTP流式传输GitHubOAuth

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

11

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP