JMAP MCP服务器
基于Rust的MCP服务器,通过stdio/JSON-RPC公开JMAP电子邮件操作。掉落 它可以通过任何MCP感知工具进行搜索、管理和发送邮件 JMAP兼容提供程序。
亮点
- 邮件搜索、检索、线程、移动、删除和关键字更新
- 具有层次结构感知的邮箱发现
- 电子邮件的撰写和提交(包括全部回复)
- 使用JSON模式元数据进行功能驱动的工具注册
- 单静态二进制;JMAP服务器之外没有运行时依赖关系
快速开始
- 安装 防锈工具链 (建议1.75+)。
- 构建二进制文件:
cargo build --release- 将MCP客户端指向生成的可执行文件,例如:
{
"mcpServers": {
"fastmail": {
"type": "stdio",
"command": "/home/richard/Projects/rdh-jmap-mcp/target/release/rdh-jmap-mcp",
"env": {
"JMAP_SESSION_URL": "https://api.fastmail.com/jmap/session",
"JMAP_BEARER_TOKEN": "API_TOKEN"
}
}
}
}配置
| 变量 | 必需 | 目的 |
|---|---|---|
JMAP_SESSION_URL | 是 | 会话发现端点(通常 /.well-known/jmap) |
JMAP_BEARER_TOKEN | 是 | 用于API访问的OAuth/Bearrer令牌 |
JMAP_ACCOUNT_ID | 否 | 显式帐户选择(省略时自动检测) |
服务器检查所通告的功能。写入操作消失 只读帐户和提交工具需要 urn:ietf:params:jmap:submission.
可用工具
search_emails, get_emails, get_threads, get_mailboxes, mark_emails, move_emails, delete_emails, send_email,以及 reply_to_email每个工具都是 通过向MCP客户端显示的JSON模式进行描述,包括参数 类型、边界和可选字段。
建筑
tokio用于异步stdio和HTTPreqwest用于JMAP呼叫schemars用于JSON模式生成- 反映JMAP故障详细信息的严格错误传播
发展
cargo run # start in debug mode
cargo test # run the Rust test suite安全说明
- 在发出请求之前验证工具输入
- 仅从环境变量中使用凭据
- 避免记录令牌或敏感有效载荷
- 遵守JMAP安全指南
兼容性
用Stalwart测试;设计用于与Cyrus IMAP、Fastmail、Apache James、, 以及任何其他符合JMAP的实现。
贡献
分叉仓库、分支、实现、测试并打开一个获得MIT许可的PR。
