邮件管理服务器

一个基于FastMCP的Gmail邮件管理服务器,支持发送、接收、搜索、转发、回复和基本分类邮件。

  • by qxZap
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 qxZap/real-mail-mcp

使用说明

真实邮件MCP服务器

这是一个用于管理Gmail电子邮件的FastMCP服务器。它提供了发送、阅读(收件箱/已发送)、搜索、转发、回复和使用SMTP发送电子邮件和IMAP接收电子邮件的基本分类的工具。该服务器支持丰富的HTML电子邮件格式,用于发送复杂的样式化电子邮件。

设置

  1. 先决条件:

    • Python 3.11+
    • 安装依赖项: pip install fastmcp python-dotenv
  2. 配置:

    • 创建一个 .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访问生成应用程序密码。
  3. 运行服务器:

    • fastmcp run server.py
    • 这将使用stdio传输启动MCP服务器,以便与AI代理集成。

可用工具

服务器通过FastMCP公开这些工具:

  1. send_email(收件人:str,主题:str,正文:str,is_html:bool=False,附件:list=None)
    发送电子邮件。支持HTML格式(颜色、大小、粗体、列表、链接、表格)。

    • HTML正文示例:请参见 prompt.txt 了解详情。
  2. get_emails(文件夹:str='收件箱',限制:int=10,开始:int=0,未读:bool=False)
    从指定文件夹(例如“收件箱”或“[Mail]/已发送邮件”)获取电子邮件。返回带有id、主题、从/到、日期、正文预览的字典。

  3. get_unread_count(文件夹:str='收件箱')
    返回文件夹中未读电子邮件的计数。

  4. 删除电子邮件(电子邮件ID:STR,文件夹:STR='收件箱')
    从文件夹中按ID永久删除电子邮件(小心使用)。

  5. search_emails(关键字:list,date_from:str=None,date_to:str=None,发件人:str=None,文件夹:str='收件箱')
    在电子邮件正文中搜索关键字,包括可选的日期范围(DD-MMM-YYYY)、发件人筛选器和文件夹(前10个)。

  6. forward_email(email_id:str,to:str,custom_subject:str=None,custom_body_prefix:str=None,is_html:bool=False,文件夹:str='收件箱')
    从文件夹转发具有可选自定义前缀/主题的电子邮件。

  7. reply_to_email(email_id:str,reply_body:str,is_html:bool=False,subject_prefix:str=“Re:”,文件夹:str='收件箱')
    从文件夹向电子邮件发送回复。

  8. 创建标签(标签名称:str)
    用于创建Gmail标签的占位符(需要Gmail API才能获得完全支持)。

  9. delete_label(标签名称:str)
    用于删除标签的占位符。

  10. 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许可证(或根据您的喜好)。