JMAP邮件服务工具

一个基于JMAP协议的邮件和Sieve脚本操作服务工具,支持邮件的查询、创建、移动、标记和删除等功能。

  • by mikluko
  • Go
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 mikluko/jmap-mcp

使用说明

jmap mcp

MCP服务器将JMAP电子邮件和Sieve脚本操作作为工具公开。

使用Go MCP SDK构建(去sdk) 和 转到jmap 图书馆。

工具

工具与JMAP方法紧密对应。电子邮件变异工具提供结构化的便利包装 Email/set 补丁。

邮箱(RFC 8621)

工具 JMAP方法 说明
mailbox_get Mailbox/get 按ID获取邮箱,或列出所有邮箱
mailbox_set Mailbox/set 创建、更新或销毁邮箱

电子邮件(RFC 8621)

工具 JMAP方法 说明
email_query Email/query 使用过滤器、返回ID和总计数搜索电子邮件
email_get Email/get 通过ID获取电子邮件的完整内容
email_create Email/set 在草稿邮箱中创建新的电子邮件草稿
email_move Email/set 将电子邮件移动到其他邮箱
email_flag Email/set 设置或删除标记(看到、标记、回答、草稿)
email_delete Email/set 删除电子邮件(移至垃圾箱或永久销毁)
email_attachment_url Blob下载 流式传输附件的签名URL将在30秒后过期(仅限HTTP模式)

身份

工具 JMAP方法 说明
identity_get Identity/get 列出发件人身份(电子邮件地址)

提交(功能门控)

工具 JMAP方法 说明
email_submission_set EmailSubmission/set 提交草稿以供交付(需要 -enable-send)

筛选脚本(RFC 9661,功能门控)

工具 JMAP方法 说明
sieve_get SieveScript/get 列出所有脚本,或获取一个包含完整内容的脚本(需要 -enable-sieve)
sieve_set SieveScript/set 创建、更新或销毁Sieve脚本(需要 -enable-sieve)
sieve_validate SieveScript/validate 验证Sieve脚本而不保存(需要 -enable-sieve)

配置

Env-var 必填 描述
JMAP_SESSION_URL 始终 JMAP会话端点(例如。 https://api.fastmail.com/jmap/session)
JMAP_AUTH_TOKEN stdio模式 JMAP身份验证的承载令牌
ATTACHMENT_URL_SECRET 无 秘密密封签名的附件URL;为多副本部署设置(默认值:每个进程随机密钥)
标志 默认值 描述
-mode stdio 服务器模式: stdio 或 http
-listen :8080 HTTP侦听地址(仅限HTTP模式)
-enable-send false 启用 email_submission_set 工具(默认关闭)
-enable-sieve false 启用Sieve脚本工具(默认情况下关闭,需要JMAP服务器支持)
-external-url 派生 已签名附件链接的外部基础URL;默认值来源于请求(X-Forwarded-Proto/X-Forwarded-Host 意识到)

在HTTP模式下,每个请求都可以通过以下方式传递令牌 Authorization: Bearer <token> 标题或 jmap_token 查询参数(查询参数优先)。

在HTTP模式下, email_attachment_url 返回从提供的链接 /attachments/ 在发布后30秒到期。该链接是一种AES-GCM密封功能:它嵌入了JMAP令牌、帐户和blob ID,因此端点无需任何额外的身份验证即可从JMAP服务器流式传输附件,并且不会在磁盘上存储任何内容。

安装

Kubernetes(Helm)

helm install jmap-mcp oci://ghcr.io/mikluko/helm-charts/jmap-mcp \
  --version 0.1.0 \
  --set jmap.sessionURL="https://api.fastmail.com/jmap/session"

在HTTP模式下,每个请求通过以下方式传递JMAP身份验证令牌 Authorization: Bearer 标题或 ?jmap_token= 查询参数——集群中不存储静态令牌。

二进制

go install github.com/mikluko/jmap-mcp@latest

来源

git clone https://github.com/mikluko/jmap-mcp.git
cd jmap-mcp
make install

用法

# stdio mode (default)
export JMAP_SESSION_URL=https://api.fastmail.com/jmap/session
export JMAP_AUTH_TOKEN=your-token
./jmap-mcp

# HTTP mode
./jmap-mcp -mode http -listen :8080

构建

make build # Build and push container image + Helm chart
make image # Build and push container image with ko
make package # Package and push Helm chart to OCI registry
make test # Run tests
make install # Install binary locally

参考文献