mcpField
J
JMAP Email

JMAP Email

本地服务
github.com/mikluko通信协作217 周前更新

关于 JMAP Email

JMAP Email 是面向 JMAP 邮件服务的 MCP 服务,可供邮件管理场景使用。它提供邮箱、邮件、发件人身份和 Sieve 脚本操作,并可选择启用邮件发送及脚本管理功能。

主要功能

  1. 01查询、读取和创建邮件草稿
  2. 02移动、标记或删除邮件
  3. 03查看及管理邮箱
  4. 04列出发件人身份
  5. 05验证和管理 Sieve 脚本
  6. 06按需启用邮件发送

适用场景

  1. 01按条件搜索并读取邮件
  2. 02整理邮件并管理标记
  3. 03创建邮件草稿并按需提交发送
  4. 04检查或更新邮件过滤脚本

MCP 相关

该 MCP 服务将 JMAP 邮件及 Sieve 脚本操作作为工具提供给 MCP 客户端;邮件发送和 Sieve 工具可通过功能开关启用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mikluko-jmap": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"JMAP_SESSION_URL",
"-e",
"JMAP_AUTH_TOKEN",
"ghcr.io/mikluko/jmap-mcp:0.10.0"
],
"env": {
"JMAP_SESSION_URL": "<JMAP_SESSION_URL>",
"JMAP_AUTH_TOKEN": "<JMAP_AUTH_TOKEN>"
}
}
}
}
启动命令docker run -i --rm -e JMAP_SESSION_URL -e JMAP_AUTH_TOKEN ghcr.io/mikluko/jmap-mcp:0.10.0
需要配置的环境变量
JMAP_SESSION_URLJMAP session endpoint URL (e.g. https://api.fastmail.com/jmap/session)
JMAP_AUTH_TOKEN密钥JMAP bearer token for authentication

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/mikluko/jmap-mcp:0.10.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

jmap-mcp

将 JMAP 邮件和 Sieve 脚本操作作为工具提供的 MCP 服务。

使用 Go MCP SDK(go-sdk) 和 go-jmap 库构建。

工具

工具与 JMAP 方法紧密对应。邮件修改工具为 Email/set 补丁提供了结构化的便捷封装。

邮箱(RFC 8621)
工具JMAP 方法描述
mailbox_getMailbox/get按 ID 获取邮箱,或列出所有邮箱
mailbox_setMailbox/set创建、更新或销毁邮箱
邮件(RFC 8621)
工具JMAP 方法描述
email_queryEmail/query使用筛选条件搜索邮件,返回 ID 和总数
email_getEmail/get按 ID 获取邮件的完整内容
email_createEmail/set在“草稿”邮箱中创建新的邮件草稿
email_moveEmail/set将邮件移至其他邮箱
email_flagEmail/set设置或移除标记(已读、已加旗标、已回复、草稿)
email_deleteEmail/set删除邮件(移至“废纸篓”或永久销毁)
email_attachment_urlBlob 下载用于流式传输附件的签名 URL,有效期为 30 秒(仅限 HTTP 模式)
身份
工具JMAP 方法描述
identity_getIdentity/get列出发件人身份(电子邮件地址)
提交(需启用功能)
工具JMAP 方法描述
email_submission_setEmailSubmission/set提交草稿以供发送(需要 -enable-send)
Sieve 脚本(RFC 9661,需启用功能)
工具JMAP 方法描述
sieve_getSieveScript/get列出所有脚本,或获取某个脚本的完整内容(需要 -enable-sieve)
sieve_setSieveScript/set创建、更新或销毁 Sieve 脚本(需要 -enable-sieve)
sieve_validateSieveScript/validate验证 Sieve 脚本但不保存(需要 -enable-sieve)

配置

环境变量必需说明
JMAP_SESSION_URL始终需要JMAP 会话端点(例如 https://api.fastmail.com/jmap/session)
JMAP_AUTH_TOKENstdio 模式用于 JMAP 身份验证的 Bearer 令牌
ATTACHMENT_URL_SECRET否用于密封已签名附件 URL 的密钥;多副本部署时请设置(默认:每个进程随机生成密钥)
标志默认值说明
-modestdio服务模式:stdio 或 http
-listen:8080HTTP 监听地址(仅限 http 模式)
-enable-sendfalse启用 email_submission_set 工具(默认关闭)
-enable-sievefalse启用 Sieve 脚本工具(默认关闭,需要 JMAP 服务支持)
-external-urlderived已签名附件链接的外部基础 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

参考资料

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。