电子邮件管理协议服务器

一个基于JMAP协议的电子邮件交互服务器,专为AI代理设计,提供有限的电子邮件操作功能。

  • by erict-dev
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 erict-dev/fastmail-mcp

使用说明

fastmail mcp

MCP(模型上下文协议)服务器,用于通过JMAP协议与电子邮件交互。专为Fastmail构建,但与任何符合JMAP标准的电子邮件提供商兼容。

此服务器是 固执己见的:它为AI代理提供了一组合理、有限的电子邮件操作,而不是所有JMAP功能的完整MCP接口。故意排除删除邮件等破坏性操作。该服务器完全按照JMAP标准构建,但只公开了对代理辅助电子邮件工作流有意义的功能子集。

工具

工具 说明
get_mailboxes 列出带有分页的邮箱/文件夹
search_emails 使用过滤器(文本、发件人、日期、关键字等)搜索电子邮件
get_emails 按ID获取完整的电子邮件详细信息
get_threads 按ID获取电子邮件线程
mark_emails 将电子邮件标记为已读/未读或标记/未标记
move_emails 在邮箱之间移动电子邮件
reply_to_email 回复电子邮件并立即发送
draft_reply 在不发送的情况下创建答复草稿
send_email 撰写并发送一封新电子邮件

设置

1.获取API令牌

快速邮件: 设置>隐私与安全>API令牌。使用创建令牌 Mail 范围。

其他JMAP提供商: 有关API访问权限,请参阅提供商的文档。

2.配置环境变量

复制示例并填写您的值:

cp .env.example .env
变量 必填 描述
JMAP_SESSION_URL 是 JMAP会话URL(例如。 https://api.fastmail.com/jmap/session)
JMAP_BEARER_TOKEN 是 您的API代币
JMAP_ACCOUNT_ID 否 帐户ID(如果省略,则自动检测)

3.添加到您的MCP客户端

克劳德桌面 (claude_desktop_config.json):

{
  "mcpServers": {
    "fastmail": {
      "command": "deno",
      "args": ["run", "--allow-env", "--allow-net", "/path/to/fastmail-mcp/src/mod.ts"],
      "env": {
        "JMAP_SESSION_URL": "https://api.fastmail.com/jmap/session",
        "JMAP_BEARER_TOKEN": "your-api-token"
      }
    }
  }
}

克劳德代码:

claude mcp add fastmail -- deno run --allow-env --allow-net /path/to/fastmail-mcp/src/mod.ts

在运行之前在shell中设置环境变量,或者内联传递它们。

发展

# Run the server
deno task start

# Run tests
deno task test

# Type check
deno task check

JMAP兼容性

此服务器使用标准JMAP(RFC 8620/RFC 8621),应该与任何兼容的提供商一起工作,而不仅仅是Fastmail。经过测试的提供商:

  • 快速邮件

安全

  • JMAP_BEARER_TOKEN 授予对邮箱的完全访问权限。 把它当作密码。永远不要将其提交到版本控制或共享。
  • 此MCP服务器通过以下方式进行通信 标准 并且只应与受信任的MCP客户端一起使用。在没有额外身份验证的情况下,不要通过HTTP或不受信任的网络暴露它。

许可证

麻省理工学院