邮件管理服务器

Fastmail MCP Server是一个基于Model Context Protocol(MCP)的服务器,允许兼容MCP的AI助手通过JMAP协议读取、搜索、发送和管理Fastmail账户中的电子邮件、日历和联系人。

  • by Jordonh18
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Jordonh18/fastmail-mcp-server

使用说明

快速邮件MCP服务器

Fastmail的模型上下文协议(MCP)服务器。允许任何兼容MCP的AI助手通过JMAP协议读取、搜索、发送和管理Fastmail帐户中的电子邮件、日历和联系人。

先决条件

  • Node.js 18或更高版本
  • Fastmail帐户(标准或专业计划)
  • 具有JMAP访问权限的Fastmail API令牌

设置

1.生成Fastmail API令牌

  1. 登录 快速邮件
  2. 首选 设置→ 隐私和安全→ 管理API令牌
  3. 点击 新API令牌
  4. 授予访问权限 邮件, 日历,以及 联系人 (读写)
  5. 复制生成的令牌

2.安装

npm install @jordonh19/fastmail-mcp-server

或者直接运行:

npx @jordonh19/fastmail-mcp-server

3.配置

此MCP服务器可与支持模型上下文协议的任何AI助手配合使用。以下是流行的MCP客户端示例。

克劳德桌面

添加到您的Claude Desktop配置(claude_desktop_config.json):

{
  "mcpServers": {
    "fastmail": {
      "command": "npx",
      "args": ["@jordonh19/fastmail-mcp-server"],
      "env": {
        "FASTMAIL_API_TOKEN": "your-api-token-here"
      }
    }
  }
}

克劳德代码CLI

export FASTMAIL_API_TOKEN="your-api-token-here"
claude mcp add fastmail -- npx @jordonh19/fastmail-mcp-server

光标

添加到光标MCP配置(.cursor/mcp.json):

{
  "mcpServers": {
    "fastmail": {
      "command": "npx",
      "args": ["@jordonh19/fastmail-mcp-server"],
      "env": {
        "FASTMAIL_API_TOKEN": "your-api-token-here"
      }
    }
  }
}

帆板运动

添加到您的Windsurf MCP配置(~/.codeium/windsurf/mcp_config.json):

{
  "mcpServers": {
    "fastmail": {
      "command": "npx",
      "args": ["@jordonh19/fastmail-mcp-server"],
      "env": {
        "FASTMAIL_API_TOKEN": "your-api-token-here"
      }
    }
  }
}

VS Code

添加到您的VS代码MCP配置中(.vscode/mcp.json):

{
  "servers": {
    "fastmail": {
      "command": "npx",
      "args": ["@jordonh19/fastmail-mcp-server"],
      "env": {
        "FASTMAIL_API_TOKEN": "your-api-token-here"
      }
    }
  }
}

其他MCP客户端

对于任何兼容MCP的客户端,请使用以下命令运行服务器 FASTMAIL_API_TOKEN 环境变量集:

FASTMAIL_API_TOKEN="your-api-token-here" npx @jordonh19/fastmail-mcp-server

默认情况下,服务器通过stdio进行通信,遵循标准的MCP传输协议。要改为通过HTTP运行,请使用 --transport 标志:

FASTMAIL_API_TOKEN="your-api-token-here" npx @jordonh19/fastmail-mcp-server --transport http --port 3000

工具

电子邮件

  • search_emails:按邮箱、文本、发件人、日期范围、附件等搜索电子邮件。
  • get_email:按ID获取完整的电子邮件内容。
  • get_email_headers:获取选定的电子邮件标题,但不返回完整的邮件正文。
  • get_thread:在对话线程中获取所有电子邮件。
  • get_unread_emails:快速检索未读电子邮件,可选择按邮箱过滤。
  • get_latest_emails:从所有邮箱或特定邮箱获取最新电子邮件。
  • get_mailbox_emails:按页码列出特定邮箱中的电子邮件。
  • get_email_attachments:列出电子邮件中的附件,但不返回完整的邮件正文。
  • send_email:撰写并发送一封新电子邮件。
  • reply_email:回复或全部回复电子邮件。
  • forward_email:将电子邮件转发给新收件人。
  • create_draft:将电子邮件另存为草稿,不发送。
  • send_draft:发送以前保存的草稿电子邮件。
  • move_email:将电子邮件移动到其他邮箱。
  • add_labels:向电子邮件添加邮箱标签,同时保留现有的邮箱分配。
  • remove_labels:从电子邮件中删除邮箱标签,同时保留其他邮箱分配。
  • update_email_flags:将电子邮件标记为已读/未读或标记/未标记。
  • delete_email:移动到废纸篓或永久删除。
  • bulk_email_action:同时对多封电子邮件执行操作。
  • bulk_add_labels:一次为多封电子邮件添加邮箱标签。
  • bulk_remove_labels:一次从多封电子邮件中删除邮箱标签。
  • archive_email:将一封或多封电子邮件移动到存档邮箱。
  • mark_mailbox_read:将邮箱中的所有电子邮件标记为已读。
  • get_mailbox_stats:获取紧凑的邮箱级别未读、电子邮件和线程数。
  • get_account_summary:通过独特的电子邮件总数和顶级邮箱获得简洁的帐户概述。
  • download_attachment:通过blob ID下载电子邮件附件。
  • one_click_unsubscribe:发送电子邮件的一键取消订阅请求。

邮箱

  • list_mailboxes:列出所有具有角色和电子邮件计数的邮箱或文件夹。
  • create_mailbox:创建新邮箱或文件夹。
  • rename_mailbox:重命名现有邮箱或文件夹。
  • delete_mailbox:删除邮箱或文件夹,可选择强制删除。

日历

  • list_calendars:列出所有带有名称、颜色和可见性的日历。
  • get_calendar_events:按日期范围、日历或标题搜索或列出日历事件。
  • get_calendar_event:获取特定日历事件的完整详细信息。
  • create_calendar_event:创建一个包含位置、参与者和警报的新日历事件。
  • update_calendar_event:更新现有日历事件。
  • delete_calendar_event:删除日历事件。

联系人

  • list_address_books:列出所有通讯簿或联系人组。
  • search_contacts:按姓名、电子邮件或其他条件搜索联系人。
  • get_contact:获取特定联系人的完整详细信息。
  • create_contact:使用电子邮件、电话、组织等创建新联系人。
  • update_contact:更新现有联系人的信息。
  • delete_contact:删除联系人。

身份

  • get_identities:列出可用的发件人身份。

诊断

  • check_function_availability:检查哪些Fastmail功能组和MCP客户端功能可用,并提供缺失访问的设置指南。

运输方式

服务器支持两种传输模式:

stdio(默认)

标准输入/输出传输。大多数MCP客户端(Claude Desktop、Cursor、VS Code等)使用:

FASTMAIL_API_TOKEN="your-token" npx @jordonh19/fastmail-mcp-server

HTTP(流式HTTP)

作为HTTP服务器运行,用于远程访问或多客户端场景:

FASTMAIL_API_TOKEN="your-token" npx @jordonh19/fastmail-mcp-server --transport http --port 3000

HTTP传输公开了一个 /mcp 支持MCP Streamable HTTP协议的端点。

Web UI仪表板

在HTTP模式下运行时,服务器根目录下有一个内置的web仪表板。它提供:

  • 实时工具调用日志 --通过SSE实时查看每个MCP工具调用
  • 连接跟踪 --监视活动的MCP客户端连接
  • 服务器正常运行时间 --健康状况一览

启动时,服务器会向控制台打印一个一次性访问令牌。打开 http://localhost:<port>/ 在浏览器中输入令牌以登录。令牌绑定到HttpOnly cookie,因此它永远不会出现在URL中。

克劳德桌面扩展(DXT)

预包装 .dxt 扩展可以在Claude Desktop中一键安装:

npm run build:dxt

这产生 fastmail-mcp-server-v<version>.dxt 在项目根中。双击该文件(或将其拖动到Claude Desktop)进行安装。Claude将在首次使用时提示您的Fastmail API令牌。

配置

服务器可以通过环境变量或JSON配置文件进行配置。

环境变量

  • FASTMAIL_API_TOKEN:必填。具有JMAP访问权限的Fastmail API令牌。

配置文件

创建一个 .fastmail-mcp.json 项目根目录或主目录中的文件:

{
  "transport": "stdio",
  "port": 3000
}

服务器按以下顺序搜索配置文件:

  1. ./.fastmail-mcp.json (当前目录)
  2. ~/.fastmail-mcp.json (主目录)

环境变量和CLI标志始终优先于配置文件值。

发展

看 贡献.md 详细的开发指南。

git clone https://github.com/Jordonh18/fastmail-mcp-server.git
cd fastmail-mcp-server
npm install
npm run build
npm test

脚本

命令 描述
npm run build TypeScript编译
npm run build:dxt 构建+包作为克劳德桌面 .dxt 扩展
npm run dev 观看模式构建
npm test 运行测试(Vitest)
npm run test:coverage v8覆盖率测试
npm run typecheck 不发射的类型检查

在本地运行:

FASTMAIL_API_TOKEN="your-token" node dist/index.js

许可证

麻省理工学院