JMAP Email

io.github.mikluko由 GitHub 账号 mikluko 发布v0.10.0更新于 Oct 24, 2026

Email management via JMAP — mailboxes, messages, identities, and Sieve scripts

已验证STDIO仅桌面效率与工作流沟通与协作

概览

AI 生成的概览

一个本地 MCP 服务器,让助手连接 JMAP 邮箱账户,浏览邮箱文件夹、搜索和读取邮件,并管理标记、移动和草稿。

可以做什么
列出、创建、更新和删除邮箱文件夹,并列出可用于发信的寄件人身份。按条件搜索邮件,并按 ID 获取完整邮件内容。创建草稿、在文件夹间移动邮件、设置或清除已读、加星、已回复、草稿等标记,并将邮件移入垃圾箱或永久删除。可选地提交草稿发送,以及管理 Sieve 过滤脚本,包括在不保存的情况下校验脚本。
适用场景
适合让助手处理基于 JMAP 的邮箱(例如 Fastmail),用于邮件分类、搜索、起草回复或整理文件夹。发送和 Sieve 脚本工具默认关闭,需要主动启用。
运行要求
以本地进程(Go 二进制或容器镜像)通过 stdio 运行。需要 JMAP 会话端点地址(JMAP_SESSION_URL)和 bearer 令牌(JMAP_AUTH_TOKEN)。需要能访问 JMAP 服务器的网络。发送功能需 -enable-send 标志;Sieve 工具需 -enable-sieve 且服务器支持。
安装前请注意
该 bearer 令牌可访问整个邮箱,请避免写入日志或共享配置。工具可创建、移动、标记和永久删除邮件,邮箱工具还可销毁邮箱文件夹。发送功能默认关闭,需显式启用。在 HTTP 模式下,签名附件链接内嵌 JMAP 令牌,30 秒内无需额外认证即可访问。

安装

在 SourceWeft 中

  1. 打开 控制台中的 JMAP Email,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

jmap-mcp

MCP server exposing JMAP email and Sieve script operations as tools.

Built with the Go MCP SDK (go-sdk) and go-jmap library.

Tools

Tools map closely to JMAP methods. Email mutation tools provide structured convenience wrappers over Email/set patches.

Mailbox (RFC 8621)

ToolJMAP MethodDescription
mailbox_getMailbox/getGet mailboxes by ID, or list all
mailbox_setMailbox/setCreate, update, or destroy mailboxes

Email (RFC 8621)

ToolJMAP MethodDescription
email_queryEmail/querySearch emails with filters, returns IDs and total count
email_getEmail/getGet full content of emails by ID
email_createEmail/setCreate a new email draft in the Drafts mailbox
email_moveEmail/setMove emails to a different mailbox
email_flagEmail/setSet or remove flags (seen, flagged, answered, draft)
email_deleteEmail/setDelete emails (move to Trash or permanently destroy)
email_attachment_urlBlob downloadSigned URL streaming an attachment, expires in 30 s (HTTP mode only)

Identity

ToolJMAP MethodDescription
identity_getIdentity/getList sender identities (email addresses)

Submission (feature-gated)

ToolJMAP MethodDescription
email_submission_setEmailSubmission/setSubmit a draft for delivery (requires -enable-send)

Sieve Scripts (RFC 9661, feature-gated)

ToolJMAP MethodDescription
sieve_getSieveScript/getList all scripts, or get one with full content (requires -enable-sieve)
sieve_setSieveScript/setCreate, update, or destroy Sieve scripts (requires -enable-sieve)
sieve_validateSieveScript/validateValidate a Sieve script without saving (requires -enable-sieve)

Configuration

Env varRequiredDescription
JMAP_SESSION_URLalwaysJMAP session endpoint (e.g. https://api.fastmail.com/jmap/session)
JMAP_AUTH_TOKENstdio modeBearer token for JMAP authentication
ATTACHMENT_URL_SECRETnoSecret sealing signed attachment URLs; set for multi-replica deployments (default: random per-process key)
FlagDefaultDescription
-modestdioServer mode: stdio or http
-listen:8080HTTP listen address (http mode only)
-enable-sendfalseEnable the email_submission_set tool (off by default)
-enable-sievefalseEnable Sieve script tools (off by default, requires JMAP server support)
-external-urlderivedExternal base URL for signed attachment links; default derives from the request (X-Forwarded-Proto/X-Forwarded-Host aware)

In HTTP mode, the token can be passed per-request via Authorization: Bearer <token> header or jmap_token query parameter (query parameter takes precedence).

In HTTP mode, email_attachment_url returns a link served from /attachments/ that expires 30 seconds after issuance. The link is an AES-GCM sealed capability: it embeds the JMAP token, account, and blob IDs, so the endpoint streams the attachment from the JMAP server without any additional authentication and stores nothing on disk.

Installation

Kubernetes (Helm)

bash
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"

In HTTP mode, JMAP auth tokens are passed per-request via Authorization: Bearer header or ?jmap_token= query parameter — no static tokens are stored in the cluster.

Binary

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

From source

bash
git clone https://github.com/mikluko/jmap-mcp.gitcd jmap-mcpmake install

Usage

bash
# stdio mode (default)export JMAP_SESSION_URL=https://api.fastmail.com/jmap/sessionexport JMAP_AUTH_TOKEN=your-token./jmap-mcp
# HTTP mode./jmap-mcp -mode http -listen :8080

Build

bash
make build # Build and push container image + Helm chartmake image # Build and push container image with komake package # Package and push Helm chart to OCI registrymake test # Run testsmake install # Install binary locally

References

来源:README.md,提交 c0bcbf9

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.10.0最新Sep 16, 2026

评分

已满足适用检查项的 40%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。