项目简介
IMAP MCP服务器是一个基于Model Context Protocol(MCP)构建的应用后端,旨在为AI助手(如Claude)提供访问和操作电子邮件的能力。通过与IMAP邮件服务器交互,该服务器允许AI助手浏览、搜索、读取和管理用户的电子邮件,从而实现智能化的邮件处理和用户偏好学习。
主要功能点
- 邮件账户认证: 支持多种IMAP服务器的安全访问认证方式。
- 邮件浏览与搜索: 允许AI助手列出文件夹和邮件,并支持邮件内容过滤和基本搜索。
- 邮件内容访问: 提供邮件文本、HTML内容以及附件的读取能力。
- 邮件操作: 支持移动、删除、标记邮件已读/未读、添加标记等邮件管理操作。
- 交互模式: (计划中)支持结构化模式,用于处理邮件和学习用户偏好。
- 学习层: (计划中)记录和分析用户决策,以预测未来操作。
核心特点:
- MCP兼容性: 完全兼容Model Context Protocol,可与任何MCP客户端协同工作,例如Claude。
- 安全访问: 安全地连接和访问IMAP服务器,保护用户邮件隐私。
- 可扩展性: 框架设计支持未来功能的扩展,如高级搜索和多账户支持。
安装步骤
-
环境准备:
- 确保已安装 Python 3.8 或更高版本。
- 确保已安装 'uv' Python 包安装工具 ('pip install uv'),或者使用 'pip'。
- 拥有一个启用了 IMAP 的邮箱账户。
- 建议安装 Claude Desktop 或其他 MCP 兼容的客户端。
-
克隆仓库:
git clone https://github.com/non-dirty/imap-mcp.git cd imap-mcp -
安装依赖:
pip install -e .或使用 'uv':
uv pip install -e . -
配置邮箱账户: 复制示例配置文件并进行编辑:
cp examples/config.yaml.example config.yaml # 编辑 config.yaml 文件,填入您的邮箱设置请务必配置 'config.yaml' 文件,填入您的 IMAP 服务器地址、端口、用户名和密码等信息。
服务器配置
要将 IMAP MCP 服务器集成到 MCP 客户端(例如 Claude Desktop),您需要配置客户端以连接到该服务器。以下是 Claude Desktop 的 'mcpServers' 配置示例,请添加到您的 Claude Desktop 配置文件中:
{ "mcpServers": { "imap": { "command": "python", "args": ["-m", "imap_mcp.server", "--config", "/path/to/config.yaml"], "env": { "IMAP_PASSWORD": "your_secure_password" } } } }
配置参数说明:
- server name: 'imap' - 服务器在 MCP 客户端中显示的名称,可以自定义。
- command: 'python' - 启动服务器的命令解释器,确保您的系统可以执行 'python' 命令。
- args: '["-m", "imap_mcp.server", "--config", "/path/to/config.yaml"]' - 启动服务器的参数。
- '-m imap_mcp.server': 指定运行 'imap_mcp.server' 模块作为服务器。
- '--config /path/to/config.yaml': 指定服务器配置文件的路径。请替换 '/path/to/config.yaml' 为您实际的 'config.yaml' 文件路径。
- env: '{"IMAP_PASSWORD": "your_secure_password"}' - 环境变量配置。
- 'IMAP_PASSWORD': (可选)如果您选择使用环境变量而不是在 'config.yaml' 中直接写入密码,可以在这里配置邮箱密码。请替换 '"your_secure_password"' 为您的实际邮箱密码。建议使用更安全的方式管理密码,如密钥管理工具。
请根据您的实际环境和 'config.yaml' 文件路径调整上述配置。
基本使用方法
-
启动服务器: 在仓库根目录下,使用以下命令启动 IMAP MCP 服务器:
python -m imap_mcp.server --config config.yaml或者,如果使用开发模式启动,可以使用 '--dev' 参数:
python -m imap_mcp.server --dev --config config.yaml -
连接客户端: 配置并启动您的 MCP 客户端(如 Claude Desktop),客户端将根据您在 'mcpServers' 中配置的命令和参数连接到 IMAP MCP 服务器。
-
通过客户端与邮件互动: 使用 MCP 客户端的功能,例如在 Claude 中,您可以指示 Claude 使用 'imap' 服务器来检查邮件、搜索邮件或执行其他邮件操作。具体的交互方式取决于您的 MCP 客户端的功能。
请参考仓库中的 'read_inbox.py' 和 'list_inbox.py' 脚本,了解如何通过 HTTP 请求或直接使用 IMAP 客户端与服务器进行交互。
信息
分类
通信与社交