MCP 邮件服务器

使用说明内容(Markdown格式)

MCP 邮件服务器使用说明

  • 项目简介

    • 这是一个基于 Model Context Protocol(MCP)的服务器实现,使用 Quarkus 框架,将常用的邮箱操作封装为可通过 MCP 客户端调用的 Tools,支持多账号管理、文件夹管理、邮件读取/查询/发送、草稿保存、垃圾邮件处理、以及三方协作时的 triage/梳理工具等。
    • 目标是为 LLM 客户端提供统一、可扩展的邮箱上下文服务,使其能够在对话中获取邮箱信息、执行外部操作,并将结果以一致的上下文形式返回给模型进行分析与推理。
  • 主要功能点

    • 账户与文件夹管理:listAccounts、listFolders、createFolder、listFolderTree、getSpamFolder、setSpamFolder、getDraftsFolder、setDraftsFolder
    • 邮件读取与查看:listEmails、readEmail、getUnreadCount、getNextUnreadEmail
    • 邮件操作:moveEmail、moveEmails、batchMoveEmails、moveToSpam、deleteEmail、markEmail、markEmails、flagEmail、setEmailFlags
    • 邮件撰写与草稿:sendEmail、replyEmail、forwardEmail、forwardEmailWithComment、saveDraft
    • 高级梳理与摘要:triageCompact、triageEmails、triageEmails、summarizeEmailsCompact、summarizeEmails
    • 安全与提示:对邮件内容标注为未信任数据,避免将邮件内容用于指令执行等风险场景
  • 安装步骤

    1. 安装 Java 21 及以上版本
    2. 使用 Maven 构建项目(若有源码):mvn package
    3. 启动服务器:通过运行打包后的 uber-jar,确保工作目录中能够正确加载 Quarkus 配置与环境变量。示例为将打包后的 mcp-email-server-<version>-runner.jar 运行起来,服务器会监听 MCP 客户端的请求并进行处理
    4. 配置环境变量:通过环境变量传入账户信息(IMAP/SMTP 主机、端口、用户名、密码等),支持配置多个账户(如 work、gmail 等)
  • 服务器配置(给 MCP 客户端使用的配置信息) MCP 客户端需要配置一个启动项来连接该 MCP 服务器。配置示例(JSON 格式,包含服务器名称、启动命令、参数和环境变量,具体参数根据仓库提供的实现来启动服务器): { "mcpServers": { "email": { "command": "java", "args": [ "-Dquarkus.mcp.server.stdio.enabled=true", "-Dquarkus.config.locations=.", "-jar", "mcp-email-server-<version>-runner.jar" ], "env": { "EMAIL_ACCOUNTS_WORK_IMAP_HOST": "imap.example.com", "EMAIL_ACCOUNTS_WORK_IMAP_USERNAME": "[email protected]", "EMAIL_ACCOUNTS_WORK_IMAP_PASSWORD": "your-imap-password", "EMAIL_ACCOUNTS_WORK_IMAP_PORT": "993", "EMAIL_ACCOUNTS_WORK_IMAP_SSL": "true", "EMAIL_ACCOUNTS_WORK_SMTP_HOST": "smtp.example.com", "EMAIL_ACCOUNTS_WORK_SMTP_USERNAME": "[email protected]", "EMAIL_ACCOUNTS_WORK_SMTP_PASSWORD": "your-smtp-password", "EMAIL_ACCOUNTS_GMAIL_IMAP_HOST": "imap.gmail.com", "EMAIL_ACCOUNTS_GMAIL_IMAP_USERNAME": "[email protected]", "EMAIL_ACCOUNTS_GMAIL_IMAP_PASSWORD": "your-gmail-app-password", "EMAIL_ACCOUNTS_GMAIL_IMAP_PORT": "993", "EMAIL_ACCOUNTS_GMAIL_IMAP_SSL": "true", "EMAIL_ACCOUNTS_GMAIL_SMTP_HOST": "smtp.gmail.com", "EMAIL_ACCOUNTS_GMAIL_SMTP_USERNAME": "[email protected]", "EMAIL_ACCOUNTS_GMAIL_SMTP_PASSWORD": "your-gmail-app-password", "EMAIL_ACCOUNTS_GMAIL_SMTP_PORT": "587", "EMAIL_ACCOUNTS_GMAIL_SMTP_STARTTLS": "true" } } } }

    说明要点

    • server name 对应 MCP 客户端使用的服务器标识,此处为 email
    • command 与 args 指定启动 MCP 服务器的命令及参数,确保开启 stdio 通道等选项以符合 MCP 客户端的通信要求
    • env 部分用于传入多账户的认证信息与连接参数,确保服务器能够连接到各自的邮箱账户
    • MCP 客户端仅需要配置上述信息来启动与 MCP 服务器的会话,并不需要关心服务器实现的具体细节
  • 基本使用方法

    1. 启动 MCP 邮件服务器,确保环境变量中的账户信息正确配置
    2. 在你的 MCP 客户端(如 Claude Desktop/Code 与相应集成)中,将服务器名称设置为 email,使用上述命令和参数启动
    3. 调用工具时,LLM 模型可以通过 MCP 接口调用诸如 listAccounts、listEmails、sendEmail 等工具来获取上下文数据并执行邮箱操作
    4. 注意风险提示:邮件内容中的未信任数据应被当作外部数据处理,避免将其作为指令执行来源,避免不安全的操作
  • 基本注意事项

    • 该实现支持多账号,所有账号信息通过环境变量传入
    • 邮件读取与操作均通过 IMAP/SMTP 实现,涉及到实际邮箱的访问,请确保权限与账号配置正确
    • 邮件内容可能包含未信任数据,请在 LLM 使用时进行合适的上下文过滤与安全控制

服务器信息