IMAP MCP Server
一个模型上下文协议服务器,使 AI 助手能够通过 IMAP 访问和管理电子邮件,支持浏览、搜索、阅读和组织电子邮件,同时随着时间的推移学习用户偏好。
README
IMAP MCP 服务器
一个模型上下文协议 (MCP) 服务器,使 AI 助手能够通过交互来检查电子邮件、处理消息并学习用户偏好。
概述
本项目实现了一个 MCP 服务器,该服务器与 IMAP 电子邮件服务器交互,以提供以下功能:
- 电子邮件浏览和搜索
- 电子邮件组织(移动、标记)
- 电子邮件撰写和回复
- 交互式电子邮件处理和学习用户偏好
- 自动电子邮件摘要和分类
- 支持多个 IMAP 提供商
IMAP MCP 服务器旨在与 Claude 或任何其他 MCP 兼容的助手一起使用,允许它们充当智能电子邮件助手,随着时间的推移学习您的偏好。
特性
- 电子邮件身份验证:通过各种身份验证方法安全访问 IMAP 服务器
- 电子邮件浏览:列出文件夹和消息,并提供过滤选项
- 电子邮件内容:读取消息内容,包括文本、HTML 和附件
- 电子邮件操作:移动、删除、标记为已读/未读、标记消息
- 电子邮件撰写:起草和保存消息回复,并具有适当的格式
- 支持纯文本和 HTML 回复
- 支持抄送的全部回复功能
- 使用 In-Reply-To 和 References 标头进行正确的线程处理
- 将草稿保存到适当的文件夹
- 搜索:跨文件夹的基本搜索功能
- 交互模式:用于处理电子邮件和学习偏好的结构化模式(计划中)
- 学习层:记录和分析用户决策以预测未来操作(计划中)
当前项目结构
该项目目前的组织结构如下:
.
├── examples/ # 示例配置
│ └── config.yaml.example
├── imap_mcp/ # 源代码
│ ├── __init__.py
│ ├── config.py # 配置处理
│ ├── imap_client.py # IMAP 客户端实现
│ ├── models.py # 数据模型
│ ├── resources.py # MCP 资源实现
│ ├── server.py # 主服务器实现
│ └── tools.py # MCP 工具实现
├── tests/ # 测试套件
│ ├── __init__.py
│ └── test_models.py
├── INSTALLATION.md # 详细安装指南
├── pyproject.toml # 项目配置
└── README.md # 本文件
入门
前提条件
- Python 3.8 或更高版本
- 启用 IMAP 的电子邮件帐户(推荐 Gmail)
- uv 用于包管理和运行 Python 脚本
安装
-
如果您尚未安装 uv,请安装它:
curl -LsSf https://astral.sh/uv/install.sh | sh -
克隆并安装软件包:
git clone https://github.com/non-dirty/imap-mcp.git cd imap-mcp uv venv source .venv/bin/activate # 在 Windows 上:.venv\Scripts\activate uv pip install -e ".[dev]"
Gmail 配置
-
创建一个配置文件:
cp config.sample.yaml config.yaml -
设置 Gmail OAuth2 凭据:
- 转到 Google Cloud Console
- 创建一个新项目或选择现有项目
- 启用 Gmail API
- 创建 OAuth2 凭据(桌面应用程序类型)
- 下载客户端配置
-
使用您的 Gmail 设置更新
config.yaml:imap: host: imap.gmail.com port: 993 username: your-email@gmail.com use_ssl: true oauth2: client_id: YOUR_CLIENT_ID client_secret: YOUR_CLIENT_SECRET refresh_token: YOUR_REFRESH_TOKEN
用法
检查电子邮件
要列出收件箱中的电子邮件:
uv run list_inbox.py --config config.yaml --folder INBOX --limit 10
可用选项:
--folder:指定要检查的文件夹(默认:INBOX)--limit:要显示的最大电子邮件数量(默认:10)--verbose:启用详细的日志输出
启动 MCP 服务器
要启动 IMAP MCP 服务器:
uv run imap_mcp.server --config config.yaml
对于带有调试功能的开发模式:
uv run imap_mcp.server --dev
管理 OAuth2 令牌
要刷新您的 OAuth2 令牌:
uv run imap_mcp.auth_setup refresh-token --config config.yaml
要生成新的 OAuth2 令牌:
uv run imap_mcp.auth_setup generate-token --config config.yaml
开发
设置开发环境
# 设置虚拟环境
python -m venv venv
source venv/bin/activate # 在 Windows 上:venv\Scripts\activate
# 安装开发依赖项
pip install -e ".[dev]"
运行测试
pytest
安全注意事项
此 MCP 服务器需要访问您的电子邮件帐户,其中包含敏感的个人信息。 请注意以下安全注意事项:
- 使用环境变量或安全凭据存储安全地存储电子邮件凭据
- 考虑使用应用专用密码而不是您的主帐户密码
- 限制文件夹访问权限,仅限于您的用例所需的内容
- 查看您在电子邮件提供商设置中授予服务器的权限
项目路线图
- [x] 项目初始化和存储库设置
- [x] 基本 IMAP 集成
- [x] 电子邮件资源实现
- [x] 电子邮件工具实现
- [x] 电子邮件回复和草稿功能
- [ ] 用户偏好学习实现
- [ ] 高级搜索功能
- [ ] 多帐户支持
- [ ] 与主要电子邮件提供商集成
贡献
欢迎贡献! 请参阅 CONTRIBUTING.md 了解指南。
许可证
该项目已获得 MIT 许可证的许可 - 有关详细信息,请参阅 LICENSE 文件。
致谢
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。