IMAP邮件管理服务器

一个提供IMAP电子邮件功能的模型上下文协议(MCP)服务器,具有全面的电子邮件管理能力,包括自动连接、邮件过滤、附件下载和邮件移动等功能。

  • by Finomosec
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 Finomosec/imap_mcp

使用说明

IMAP MCP服务器

一种模型上下文协议(MCP)服务器,提供IMAP电子邮件功能和全面的电子邮件管理功能。服务器使用YAML配置进行IMAP连接设置。

特性

  • 自动IMAP连接 使用具有TLS加密支持的YAML配置
  • 加载电子邮件 具有高级过滤功能:
    • 按发件人电子邮件地址筛选
    • 按文件夹筛选(收件箱、已发送等)
    • 按已读/未读状态筛选
    • 过滤带/不带附件的电子邮件
    • 分页支持,页面大小可配置
  • 下载附件 (所有或特定的)
  • 移动电子邮件 文件夹之间

安装

npm install

配置

复制 config.example.yaml 向 config.yaml 并使用您的IMAP设置进行更新:

cp config.example.yaml config.yaml

然后编辑 config.yaml:

imap:
  host: imap.gmail.com
  port: 993
  username: your-email@gmail.com
  password: your-app-password
  use_ssl: true

必填字段:

  • host:IMAP服务器主机名
  • username:电子邮件用户名
  • password:电子邮件密码

可选字段:

  • port:IMAP服务器端口(默认值:993)
  • use_ssl:使用SSL/TLS加密(默认值:true)

用法

服务器在stdio上运行,并通过模型上下文协议进行通信。您可以指定自定义配置文件路径:

# Use default config.yaml
node src/server.js

# Use custom config file
node src/server.js /path/to/your/config.yaml

可用工具

1.加载电子邮件

加载具有各种过滤选项的电子邮件。

参数:

  • folder (可选):文件夹名称(默认:“收件箱”)
  • sender (可选):按发件人电子邮件地址筛选
  • read_status (可选):“已读”、“未读”或“全部”(默认值:“全部”)
  • has_attachment (可选):过滤带附件的电子邮件(布尔值)
  • page (可选):页码,从0开始(默认值:0)
  • page_size (可选):每页电子邮件数(默认值:20)

退货:

  • 电子邮件对象数组 email_id、发件人、主题、日期等。
  • 分页信息: has_more_pages, total_count, page, page_size

2.下载_附件

从特定电子邮件下载附件。

参数:

  • email_id (必填):来自load_emails的电子邮件UID
  • download_dir (可选):保存附件的目录。仅指定是否需要自定义位置。如果省略,则使用第一个配置的允许路径。相对路径相对于第一个配置的允许路径进行解析。
  • filter (可选):要下载的附件文件名或索引数组。仅指定是否要下载特定附件。如果省略,则下载所有附件。

将电子邮件移动到目标文件夹。

参数:

  • email_ids (必填):要移动的电子邮件UID数组
  • target_folder (必填):目标文件夹名称

示例用法

  1. 使用过滤器加载电子邮件:
{
  "tool": "load_emails",
  "arguments": {
    "sender": "important@company.com",
    "has_attachment": true,
    "page_size": 10
  }
}
  1. 从电子邮件中下载所有附件(使用第一个配置的目录):
{
  "tool": "download_attachments",
  "arguments": {
    "email_id": 12345
  }
}
  1. 按文件名下载特定附件(到第一个配置的目录):
{
  "tool": "download_attachments",
  "arguments": {
    "email_id": 12345,
    "filter": ["document.pdf", "image.jpg"]
  }
}
  1. 按索引将特定附件下载到自定义目录:
{
  "tool": "download_attachments",
  "arguments": {
    "email_id": 12345,
    "filter": [0, 2],
    "download_dir": "/home/user/downloads/email_attachments"
  }
}
  1. 将所有附件下载到子目录(相对于第一个配置的路径):
{
  "tool": "download_attachments",
  "arguments": {
    "email_id": 12345,
    "download_dir": "important_emails"
  }
}
  1. 将电子邮件移动到文件夹:
{
  "tool": "move_emails",
  "arguments": {
    "email_ids": [12345, 12346],
    "target_folder": "Processed"
  }
}

配置

服务器使用YAML配置文件。对于Gmail,您需要:

  1. 启用双因素身份验证
  2. 生成应用程序密码
  3. 使用 imap.gmail.com 作为config.yaml中的主机

安全说明

  • 服务器默认支持TLS加密
  • 凭据存储在YAML配置文件中-确保其安全

MCP集成

要将此IMAP服务器与MCP客户端(如Claude Desktop)集成,请将以下内容添加到您的 mcp.json 配置文件:

{
  "mcpServers": {
    "imap-server": {
      "command": "node",
      "args": ["/path/to/your/imap-mcp-server/src/server.js"],
      "env": {}
    }
  }
}

自定义配置文件路径

如果要使用自定义配置文件位置:

{
  "mcpServers": {
    "imap-server": {
      "command": "node",
      "args": [
        "/path/to/your/imap-mcp-server/src/server.js",
        "/path/to/your/custom-config.yaml"
      ],
      "env": {}
    }
  }
}

Claude桌面集成

对于Claude Desktop来说 mcp.json 文件应位于:

macOS:

~/Library/Application Support/Claude/mcp.json

窗户:

%APPDATA%\Claude\mcp.json

Linux:

~/.config/Claude/mcp.json

添加配置后,重新启动Claude Desktop以加载IMAP服务器。然后,您应该能够在与Claude的对话中直接使用与电子邮件相关的命令。