真实邮件MCP服务器
这是一个用于管理Gmail电子邮件的FastMCP服务器。它提供了发送、阅读(收件箱/已发送)、搜索、转发、回复和使用SMTP发送电子邮件和IMAP接收电子邮件的基本分类的工具。该服务器支持丰富的HTML电子邮件格式,用于发送复杂的样式化电子邮件。
设置
- 先决条件:
- Python 3.11+ - 安装依赖项: pip install fastmcp python-dotenv
- 配置:
- 创建一个 .env 使用您的Gmail凭据文件:
SMTP_HOST=smtp.gmail.com
SMTP_PORT=465
SMTP_USER=your-email@gmail.com
SMTP_PASS=your-app-password # Use Gmail App Password, not regular password
SMTP_FROM=your-email@gmail.com- 对于Gmail,启用2FA并为SMTP/IMAP访问生成应用程序密码。
- 运行服务器:
- fastmcp run server.py - 这将使用stdio传输启动MCP服务器,以便与AI代理集成。
可用工具
服务器通过FastMCP公开这些工具:
- send_email(收件人:str,主题:str,正文:str,is_html:bool=False,附件:list=None)\
发送电子邮件。支持HTML格式(颜色、大小、粗体、列表、链接、表格)。
- HTML正文示例:请参见 prompt.txt 了解详情。
- get_emails(文件夹:str='收件箱',限制:int=10,开始:int=0,未读:bool=False)\
从指定文件夹(例如“收件箱”或“\[Mail\]/已发送邮件”)获取电子邮件。返回带有id、主题、从/到、日期、正文预览的字典。
- get_unread_count(文件夹:str='收件箱')\
返回文件夹中未读电子邮件的计数。
- 删除电子邮件(电子邮件ID:STR,文件夹:STR='收件箱')\
从文件夹中按ID永久删除电子邮件(小心使用)。
- search_emails(关键字:list,date_from:str=None,date_to:str=None,发件人:str=None,文件夹:str='收件箱')\
在电子邮件正文中搜索关键字,包括可选的日期范围(DD-MMM-YYYY)、发件人筛选器和文件夹(前10个)。
- forward_email(email_id:str,to:str,custom_subject:str=None,custom_body_prefix:str=None,is_html:bool=False,文件夹:str='收件箱')\
从文件夹转发具有可选自定义前缀/主题的电子邮件。
- reply_to_email(email_id:str,reply_body:str,is_html:bool=False,subject_prefix:str=“Re:”,文件夹:str='收件箱')\
从文件夹向电子邮件发送回复。
- 创建标签(标签名称:str)\
用于创建Gmail标签的占位符(需要Gmail API才能获得完全支持)。
- delete_label(标签名称:str)\
用于删除标签的占位符。
- add_label_to_email(电子邮件id:str,标签名称:str,文件夹:str='收件箱')\
限制:设置IMAP标志(不是真正的Gmail标签;完整版需要API)。
测试
- 跑
python test_functions.py用于基本工具测试(发送、获取、搜索等)。 - 跑
python test_html_email.py用于HTML电子邮件测试。 - 跑
python test_forward_reply.py用于转发/回复和增强搜索测试。 - 跑
python test_sent_emails.py用于获取已发送的电子邮件。 - 测试发送给自我,跳过删除等破坏性操作以确保安全。
局限性
- 标签管理是占位符/受限的(IMAP不完全支持Gmail标签;集成Gmail API进行生产)。
- HTML呈现因电子邮件客户端而异;使用内联样式以获得最佳兼容性。
- 除了基本登录之外没有身份验证;添加OAuth以提高安全性。
- 仅使用基本过滤器进行正文搜索;如果需要,可以进一步扩展。
- 转发包括文本形式的原件;对于富前锋,API可能更好。
- 文件夹名称是特定于Gmail的;为其他供应商进行调整。
待办事项
未来改进:
- 集成Gmail API以获得全标签支持(创建、删除、应用)。
- 添加OAuth2身份验证,而不是应用程序密码。
- 支持从电子邮件中提取附件。
- 通过API实现电子邮件规则/过滤器创建。
- 使用更高级的查询(附件、标签)增强搜索。
- 添加对多个电子邮件帐户的支持。
- 包括带模拟的单元测试。
- 添加日志记录和错误度量。
- 完全支持HTML电子邮件(CID附件)中的嵌入式图像。
- 批量操作(转发多个、删除多个)。
有关代理集成,请参阅 prompt.txt 了解使用说明和示例。
许可证
MIT许可证(或根据您的喜好)。
