邮件全文搜索服务

mailprobe是一款IMAP电子邮件MCP服务器,采用混合全文搜索技术解决传统IMAP服务器无法搜索邮件正文的问题,适用于需要高效可靠邮件搜索的场景。

  • by frederikb96
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 frederikb96/mailprobe

使用说明

邮件探测器

IMAP电子邮件MCP服务器,具有混合全文正文搜索功能。

大多数IMAP服务器(包括Posteo,许多自托管设置)不支持服务器端全文正文搜索。现有的电子邮件MCP服务器在搜索这些服务器上的电子邮件正文时,会自动返回空结果。mailprobe通过一种混合方法解决了这个问题:对元数据(日期、发件人、主题)进行快速的服务器端过滤,并结合可靠的客户端正文内容搜索。

快速开始

uvx --from git+https://github.com/frederikb96/mailprobe.git mailprobe

克劳德代码

添加到MCP配置中:

{
  "mailprobe": {
    "type": "stdio",
    "command": "uvx",
    "args": ["--from", "git+https://github.com/frederikb96/mailprobe.git", "mailprobe"],
    "env": {
      "IMAP_HOST": "your-imap-server.com",
      "IMAP_USER": "your@email.com",
      "IMAP_PASSWORD": "your-password"
    }
  }
}

工具

工具 说明
search 具有正文内容+元数据过滤的混合电子邮件搜索
get_email 按UID获取完整的电子邮件内容
download_attachment 将电子邮件附件下载到磁盘
list_folders 列出所有邮箱文件夹
list_accounts 列出已配置的帐户(无密码)

配置

单一账户

IMAP_HOST=mail.example.com
IMAP_USER=user@example.com
IMAP_PASSWORD=secret
IMAP_PORT=993  # optional, default 993

多账户

IMAP_PERSONAL_HOST=posteo.de
IMAP_PERSONAL_USER=me@posteo.net
IMAP_PERSONAL_PASSWORD=...

IMAP_WORK_HOST=mail.company.com
IMAP_WORK_USER=user@company.com
IMAP_WORK_PASSWORD=...

指定 account: "personal" 或 account: "work" 在工具调用中。忽略第一个帐户的默认值。

运作原理

search(body_contains="invoice", date_from="2025-01-01", date_to="2025-06-01")

    ┌──────────────────────────┐
    │  Server-side (fast)      │  IMAP SEARCH: date range, sender, subject
    │  → narrows to ~200 msgs  │
    └──────────┬───────────────┘
               │
    ┌──────────▼───────────────┐
    │  Client-side (reliable)  │  Download & scan body text
    │  → finds 3 matches       │
    └──────────────────────────┘

带有全文搜索索引的IMAP服务器(Gmail、Outlook)在服务器端处理正文搜索。没有它的服务器(Posteo,许多自托管)默默地返回0个结果。mailprobe的混合方法适用于这两种情况。

正文匹配会下载每条候选消息,因此它会先扫描最新消息,然后停止 max_scan 消息(默认值2000),返回 scan_truncated: true 当它提前停止时。窄与 date_from/date_to 或 folders 覆盖旧邮件而不触及盖子。

许可证

麻省理工学院