邮件访问服务器

一个通过JMAP API为AI助手提供安全访问Fastmail邮件的MCP服务器。

  • by NOVA-3951
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 NOVA-3951/Fastmail-MCP

使用说明

快速邮件MCP服务器

MCP(模型上下文协议)服务器,通过JMAP API为AI助手提供对您的Fastmail电子邮件的安全访问。

特性

  • 🔍 搜索电子邮件:通过文本查询搜索您的电子邮件,并按邮箱筛选
  • 📧 获取电子邮件详细信息:检索完整的电子邮件内容,包括正文和附件
  • 📁 列出邮箱:查看所有包含电子邮件计数的邮箱
  • 🔒 安全:使用具有正确身份验证的Fastmail API令牌

先决条件

  • Python 3.12+
  • Fastmail帐户
  • Fastmail API令牌(说明如下)

获取您的Fastmail API代币

  1. 登录您的Fastmail帐户
  2. 首选 设置→ 隐私和安全→ 集成→ API令牌
    • 或访问:https://app.fastmail.com/settings/security/tokens/new
  3. 创建具有以下作用域的新API令牌:
    • urn:ietf:params:jmap:core (必填)
    • urn:ietf:params:jmap:mail (访问电子邮件时需要)
  4. 复制生成的令牌-您需要它进行设置

安装

  1. 克隆或下载此存储库

  2. 安装依赖项:

pip install -r requirements.txt
  1. 创建一个 .env 项目根目录中的文件:
cp .env.example .env
  1. 编辑 .env 并添加您的Fastmail API令牌:
FASTMAIL_API_TOKEN=your_actual_token_here

AI客户端的配置

克劳德桌面版

将此添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "fastmail": {
      "command": "python",
      "args": ["/absolute/path/to/fastmail_mcp.py"],
      "env": {
        "FASTMAIL_API_TOKEN": "your_fastmail_api_token_here"
      }
    }
  }
}

替换 /absolute/path/to/ 与这个项目的实际路径。

其他MCP客户端

对于其他兼容MCP的客户端(VS Code、Cursor等),将其配置为运行:

python /path/to/fastmail_mcp.py

确保设置 FASTMAIL_API_TOKEN 环境变量。

Smithery部署

此服务器已配置为在上部署 铁匠铺,一个用于托管和共享MCP服务器的平台。当部署到Smithery时,用户通过Smithery的配置流提供他们的Fastmail API令牌-在构建时不需要令牌。

部署到Smithery:

  1. 将此存储库推送到GitHub
  2. 转到Smithery仪表板并单击 “部署”
  3. 选择 “来自GitHub” 并连接您的存储库
  4. Smithery将自动构建和托管您的服务器

当用户从Smithery安装服务器时,系统将提示他们通过Smithery的安全配置界面输入Fastmail API令牌。

通过Smithery CLI使用:

# Install Smithery CLI
npm install -g @smithery/cli

# Run the server (you'll be prompted for your API token)
smithery run @your-username/fastmail-mcp --config '{"FASTMAIL_API_TOKEN":"your_token"}'

通过Smithery添加到克劳德桌面:

{
  "mcpServers": {
    "fastmail": {
      "command": "npx",
      "args": [
        "-y",
        "@smithery/cli@latest",
        "run",
        "@your-username/fastmail-mcp",
        "--config",
        "{\"FASTMAIL_API_TOKEN\":\"your_token_here\"}"
      ]
    }
  }
}

HTTP模式(用于Smithery/远程部署):

服务器支持stdio(本地)和HTTP(远程)传输:

# Run in HTTP mode on port 8000
python fastmail_mcp.py --http

# Run in stdio mode (default, for local use)
python fastmail_mcp.py

可用工具

1.搜索邮件

在您的Fastmail帐户中搜索电子邮件。

参数:

  • query (字符串,可选):搜索文本(搜索主题、正文、发件人、收件人)
  • limit (数量,可选):要返回的最大电子邮件数(默认值:10,最大值:50)
  • mailbox (字符串,可选):按邮箱筛选(例如,“收件箱”、“已发送”、“存档”)

Claude中的示例用法:

“在我的电子邮件中搜索有关“项目截止日期”的消息” “显示收件箱中的最后5封电子邮件” “查找来自的电子邮件john@example.com"

2.获取电子邮件

获取特定电子邮件的完整内容。

参数:

  • email_id (字符串,必填):搜索结果中的电子邮件ID

Claude中的示例用法:

“显示电子邮件ID abc123的完整内容” “获取该邮件的电子邮件正文”

3.列表_邮箱

列出所有邮箱及其电子邮件计数。

Claude中的示例用法:

“我有哪些邮箱?” “显示我的文件夹以及每个文件夹中有多少封电子邮件”

测试

您可以使用MCP检查器测试MCP服务器:

npx @modelcontextprotocol/inspector python fastmail_mcp.py

这将打开一个web UI,您可以在其中手动测试工具。

安全说明

  • 您的API令牌授予对您的Fastmail帐户的完全访问权限-确保其安全
  • 永远不要承诺你的 .env 文件或公开您的API令牌
  • MCP服务器仅具有读取权限(不发送或删除电子邮件)
  • 考虑仅为此MCP服务器创建一个专用的API令牌

故障排除

“必须设置FASTMAIL_API_TOKEN环境变量”

  • 确保你的 .env 文件存在并且包含您的API令牌
  • 对于Claude Desktop,确保令牌在配置文件中

“401未经授权”

  • 检查您的API令牌是否正确并且尚未被吊销
  • 确保令牌具有所需的作用域

未返回电子邮件

  • 尝试扩大搜索范围
  • 检查邮箱名称是否正确(使用 list_mailboxes 查看可用邮箱)

API费率限制

Fastmail对API请求有速率限制。MCP服务器优雅地处理了这一点,但避免在短时间内发出过多的请求。

许可证

MIT许可证-可根据需要自由修改和使用。

贡献

欢迎投稿!请随时打开问题或提交pull请求。

资源