邮件摘要工具

一款通过IMAP协议连接用户邮箱并基于指定条件检索和摘要邮件的工具,适用于个人邮件管理和团队协作场景。

  • by Karopatu
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Karopatu/email-management-mcp

使用说明

电子邮件管理

该项目旨在设计一个自定义IMAP客户端,用于连接用户的电子邮件收件箱,并根据指定的标准检索相关邮件,从而对邮件进行总结。

特点/功能

  • 连接到IMAP服务器以获取电子邮件。
  • 可以按以下方式过滤电子邮件:
    • 主题
    • 日期范围
    • 发送者电子邮件地址
    • 邮箱(默认为“收件箱”)

调试

  • Stdio:如果您以STDIO模式运行此服务器,所有日志都将保存在 server.log 文件,在你运行命令的位置。你可以通过设置来更改这个(默认)位置 DEBUG_LOG_FILE 将环境变量设置为自定义路径(绝对路径)。
  • Docker:此模式使用STDIO模式,因此所有日志都保存在 server.log 文件,位于你运行命令的位置。你可以通过设置来更改这一点 DEBUG_LOG_FILE 将环境变量设置为自定义路径(绝对路径)。
  • 流模式:如果你以流模式运行此服务器,所有日志都将打印到控制台。

可用工具

  • search-emails从用户的收件箱中获取电子邮件。
  • mark-emails-as-read马克将邮件标记为已读。

使用方法

命令(NPM)

  1. 安装依赖项 pnpm install -g @cardor/email-summarizer
  2. 将配置添加到您的应用客户端中。
"email-summarizer": {
  "type": "stdio", // Maybe your client MCP require specific type, like 'stdio'
  "command": "cardor-email-summarizer",
  "env": {
    // Your email address.
    "EMAIL_USERNAME": "<your-email>", 
    // Your email app password.
    "EMAIL_PASSWORD": "<your-app-password>",
    // The port for the IMAP server (default is 993).
    "EMAIL_PORT": "993",  
    // The type of email client: gmail, outlook, yahoo, etc (default is 'gmail').
    "EMAIL_CLIENT_TYPE": "gmail", 
    // Custom prompt for summarization. Must include `{{emails}}` to insert the email content.
    "EMAIL_PROMPT": "Summarize the following emails: {{emails}}", 
    // You can also use a file path to load the prompt content. You must use absolute path.
    // The file types supported are: .txt, .md, .json or .pdf.
    // "EMAIL_PROMPT": "file://Absolute/Path/To/Prompt.txt"
    // Also you can define a URL to load the prompt content. The URL must return a text content.
    // The file types supported are: .txt, .md, .json or .pdf.
    // "EMAIL_PROMPT": "https://example.com/path/to/prompt.txt"
  }
}

命令(使用 Docker)

  1. 克隆仓库 git clone <repository-url>
  2. 构建Docker镜像 pnpm run docker:build
  3. 将配置添加到您的应用客户端中。
"email-dock": {
  "command": "docker",
  "args": [
    "run",
    "-i",
    "--rm",
    "-e",
    "EMAIL_USERNAME=<your-email>",
    "-e",
    "EMAIL_PASSWORD=<your-app-password>",
    "-e",
    "EMAIL_PORT=993",
    "-e",
    "EMAIL_CLIENT_TYPE=gmail",
    "-e",
    // Custom prompt for summarization. Must include `{{emails}}` to insert the email content.
    // As above, you can use a file path or a URL.
    "EMAIL_PROMPT=Summarize the following emails: {{emails}}", 
    "email-summarizer",
  ]
}

流式HTTP请求

您也可以使用HTTP API与电子邮件摘要工具进行交互。API期望的请求头如下:

  1. 克隆仓库 git clone <repository-url>
  2. 安装依赖项 pnpm install
  3. 构建MCP(多项目管理计划/多控制器协议等,具体含义根据上下文确定) pnpm run build
  4. 启动MCP pnpm run start
  5. 使用MCP服务器来 http://localhost:5555/mcp
  • 在请求头中发送:
    • email-username您的电子邮件地址。
    • email-password你的电子邮件应用密码。
    • email-portIMAP服务器的端口(默认为993)。
    • email-client-type电子邮件客户端的类型(默认为“gmail”)。
    • email-prompt自定义摘要提示(默认为“摘要以下邮件:{{emails}}”)。必须包含 {{emails}} 插入电子邮件内容。如上所述,您可以使用文件路径或URL。

未来的工作

我将致力于:

  • [x] 允许执行操作,如将邮件标记为已读、删除等。
  • [x] 允许覆盖默认的摘要提示。
  • [ ] 为电子邮件检索添加更多过滤器和选项。
  • [ ] 允许获取电子邮件的全部信息(文本、HTML、附件等)。