一个模型上下文协议(MCP)服务器,使AI助手能够检查电子邮件、处理消息并通过交互学习用户偏好。
该项目实现了一个与IMAP邮件服务器接口的MCP服务器,提供以下功能:
IMAP MCP服务器旨在与Claude或其他兼容MCP的助手一起工作,允许它们作为智能邮件助手,随着时间推移学习您的偏好。
项目当前组织如下:
.
├── 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 # 本文件
如果尚未安装,请安装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]"
创建配置文件:
cp config.sample.yaml config.yaml
设置Gmail OAuth2凭证:
更新config.yaml中的Gmail设置:
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:启用详细日志输出要启动IMAP MCP服务器:
uv run imap_mcp.server --config config.yaml
对于调试的开发模式:
uv run imap_mcp.server --dev
刷新您的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服务器需要访问您的电子邮件帐户,其中包含敏感个人信息。请注意以下安全注意事项:
欢迎贡献!请参阅CONTRIBUTING.md获取指南。
本项目根据MIT许可证发布 - 详情见LICENSE文件。