.kilo — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited .kilo (MCP Server) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
一个基于 FastMCP 框架的邮件服务器,支持 IMAP 和 SMTP 协议,提供邮件收发、搜索、附件处理等功能的 MCP (Model Context Protocol) 服务。
pip install fastmcp python-dotenv创建 .env 文件:
# IMAP 服务器配置
IMAP_HOST=imap.qiye.aliyun.com
IMAP_PORT=993
IMAP_USE_SSL=true
[email protected]
IMAP_PASSWORD=your_password
# SMTP 服务器配置
SMTP_HOST=smtp.qiye.aliyun.com
SMTP_PORT=465
SMTP_USE_SSL=true
[email protected]
SMTP_PASSWORD=your_password
# 服务器配置
SERVER_HOST=localhost
SERVER_PORT=8080
LOG_LEVEL=INFO以下是常见邮箱服务商的配置:
#### 阿里云企业邮箱
IMAP_HOST=imap.qiye.aliyun.com
IMAP_PORT=993
SMTP_HOST=smtp.qiye.aliyun.com
SMTP_PORT=465#### 腾讯企业邮箱
IMAP_HOST=imap.exmail.qq.com
IMAP_PORT=993
SMTP_HOST=smtp.exmail.qq.com
SMTP_PORT=465#### 网易企业邮箱
IMAP_HOST=imap.ym.163.com
IMAP_PORT=993
SMTP_HOST=smtp.ym.163.com
SMTP_PORT=465#### Gmail
IMAP_HOST=imap.gmail.com
IMAP_PORT=993
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USE_SSL=false # Gmail 使用 STARTTLS# 方法1: 直接运行主程序
python main.py
# 方法2: 使用模块方式
python -m mail_mcp.main
# 方法3: 如果安装了包
mail-mcp#### 邮件接收工具
list_messages - 获取邮件列表
await list_messages(
folder="INBOX", # 邮件文件夹,默认 INBOX
limit=20, # 返回邮件数量,默认 20
offset=0 # 偏移量,用于分页
)get_message - 获取邮件详情
await get_message(
message_id="123", # 邮件 ID
folder="INBOX" # 邮件文件夹
)search_messages - 搜索邮件(简化接口)
await search_messages(
query="搜索关键词", # 搜索关键词(在主题、发件人、收件人、正文中搜索)
folder="INBOX", # 邮件文件夹,默认 INBOX
unread_only=False, # 是否只搜索未读邮件,默认 false
limit=20 # 返回结果数量限制,默认 20
)mark_as_read - 标记邮件已读(支持批量操作)
await mark_as_read(
message_ids=["123", "456", "789"] # 邮件 ID 列表(支持单个或批量)
)#### 邮件发送工具
send_email - 发送邮件
await send_email(
to=["[email protected]"], # 收件人列表
subject="邮件主题", # 邮件主题
body_text="邮件正文", # 纯文本正文
body_html="<p>HTML 正文</p>", # HTML 正文(可选)
cc=["[email protected]"], # 抄送列表(可选)
bcc=["[email protected]"] # 密送列表(可选)
)send_email_with_attachments - 发送带附件的邮件
await send_email_with_attachments(
to=["[email protected]"], # 收件人列表
subject="带附件的邮件", # 邮件主题
body_text="请查看附件", # 纯文本正文
attachments=["/path/to/file1.pdf", "/path/to/file2.jpg"], # 附件路径列表
body_html="<p>HTML 正文</p>", # HTML 正文(可选)
cc=["[email protected]"], # 抄送列表(可选)
bcc=["[email protected]"] # 密送列表(可选)
)#### 服务器管理工具
test_smtp_connection - 测试 SMTP 连接
await test_smtp_connection()get_server_info - 获取服务器信息
await get_server_info()health_check - 健康检查
await health_check()系统定义了以下错误类型:
{
"success": false,
"error": {
"code": "NETWORK_CONNECT_FAILED",
"category": "network",
"message": "连接超时",
"details": {
"host": "imap.example.com",
"port": 993,
"timeout": 30
}
}
}#### 认证失败
[AUTH_FAILED] 认证失败:用户名或密码错误解决方案: 检查用户名和密码是否正确,确认开启了 IMAP/SMTP 服务。
#### 网络连接失败
[NETWORK_CONNECT_FAILED] 连接超时解决方案: 检查网络连接,确认防火墙设置,验证服务器地址和端口。
#### 文件不存在
[VALIDATION_FILE_NOT_FOUND] 文件不存在: /path/to/file.pdf解决方案: 检查文件路径是否正确,确认文件存在且有读取权限。
#### 文件过大
[VALIDATION_FILE_TOO_LARGE] 文件大小超过限制 (26214400 > 25165824 bytes)解决方案: 压缩文件或分割成多个小文件发送。
mail-mcp/
├── mail_mcp/ # 主模块
│ ├── __init__.py
│ ├── main.py # MCP 服务器入口
│ ├── config.py # 配置管理
│ ├── imap_service.py # IMAP 服务实现
│ ├── smtp_service.py # SMTP 服务实现
│ ├── models.py # 数据模型
│ ├── utils.py # 工具函数
│ └── errors.py # 错误处理
├── tests/ # 测试文件
├── .env # 环境变量
├── pyproject.toml # 项目配置
└── README.md # 项目文档运行所有测试:
pytest运行特定测试:
pytest tests/test_imap_service.py生成测试覆盖率报告:
pytest --cov=mail_mcp --cov-report=html# 类型检查
mypy mail_mcp/
# 代码格式化
ruff check mail_mcp/
ruff format mail_mcp/
# 导入排序
ruff check --select I mail_mcp/在 .env 中设置日志级别:
LOG_LEVEL=INFO或指定日志文件:
LOG_FILE=/var/log/mail-mcp.logA: 参考"配置示例"部分,根据你的邮箱服务商设置正确的服务器地址、端口和 SSL 配置。
A: 支持所有标准 IMAP/SMTP 协议的邮箱,包括阿里云企业邮箱、腾讯企业邮箱、网易企业邮箱、Gmail、Outlook 等。
A: 默认限制为 25MB,可以在代码中修改 MAX_ATTACHMENT_SIZE 常量调整。
A: 系统自动处理邮件编码,支持 UTF-8、GBK 等多种编码格式。
A: 系统内置重试机制和连接池管理,如需进一步优化可调整重试次数和延迟时间。
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
欢迎提交 Issue 和 Pull Request!
如果你在使用过程中遇到问题,请:
Mail MCP Server - 让邮件操作更简单!
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.