返回市场
邮件捕获-mcp

邮件捕获-mcp

作者:mailtrap50 星标更新:2025-11-19

项目介绍

TypeScript test NPM

MCP Mailtrap Server

一个通过Mailtrap提供发送事务邮件和管理邮件模板工具的MCP服务器。

使用前提

在使用此MCP服务器之前,您需要完成以下步骤:

  1. 创建一个Mailtrap账户
  2. 验证您的域名
  3. Mailtrap API设置获取您的API令牌
  4. Mailtrap账户管理获取您的账户ID

必需的环境变量:

  • MAILTRAP_API_TOKEN - 所有功能都需要
  • DEFAULT_FROM_EMAIL - 发送邮件操作都需要
  • MAILTRAP_ACCOUNT_ID - 模板管理操作都需要
  • MAILTRAP_TEST_INBOX_ID - 用于沙盒邮件功能

快速安装

在Cursor中安装

在VS Code中使用Node安装

Smithery CLI

Smithery是一个适用于所有AI客户端的MCP服务器注册表安装程序和管理器。

npx @smithery/cli install mailtrap

Smithery会自动处理客户端配置,并提供交互式设置过程。这是本地开始使用MCP服务器最简单的方法。

配置

Claude Desktop

使用MCPB安装Mailtrap服务器。您可以在发布页面找到这些文件。<br>下载.MCPB文件并打开它。如果您有Claude Desktop,它会打开并建议进行配置。

Claude Desktop或Cursor

添加以下配置:

{
  "mcpServers": {
    "mailtrap": {
      "command": "npx",
      "args": ["-y", "mcp-mailtrap"],
      "env": {
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "your_sender@example.com",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
      }
    }
  }
}

如果您使用asdf来管理Node.js,必须使用可执行文件的绝对路径(例如Mac):

{
  "mcpServers": {
    "mailtrap": {
      "command": "/Users/<username>/.asdf/shims/npx",
      "args": ["-y", "mcp-mailtrap"],
      "env": {
        "PATH": "/Users/<username>/.asdf/shims:/usr/bin:/bin",
        "ASDF_DIR": "/opt/homebrew/opt/asdf/libexec",
        "ASDF_DATA_DIR": "/Users/<username>/.asdf",
        "ASDF_NODEJS_VERSION": "20.6.1",
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "your_sender@example.com",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
      }
    }
  }
}

Claude Desktop配置文件位置

Mac: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

Cursor配置文件位置

Mac: ~/.cursor/mcp.json

Windows: %USERPROFILE%\.cursor\mcp.json

VS Code

手动更改配置

在命令面板中运行:Preferences: Open User Settings (JSON)

然后,在设置文件中添加以下配置:

{
  "mcp": {
    "servers": {
      "mailtrap": {
        "command": "npx",
        "args": ["-y", "mcp-mailtrap"],
        "env": {
          "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
          "DEFAULT_FROM_EMAIL": "your_sender@example.com",
          "MAILTRAP_ACCOUNT_ID": "your_account_id",
          "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
        }
      }
    }
  }
}

[!TIP] 修改“env”部分后,请记得重启您的MCP服务器。

MCP Bundle (MCPB)

为了在支持MCP捆绑包的主机上轻松安装,您可以分发一个.mcpb捆绑包文件。

# 构建TypeScript并打包MCPB捆绑包
npm run mcpb:pack

# 查看捆绑包元数据
npm run mcpb:info

# 签署捆绑包以供分发(可选)
npm run mcpb:sign

这将使用仓库中的manifest.json和构建的工件在dist/目录下创建mailtrap-mcp.mcpb

使用方法

配置完成后,您可以请求代理发送邮件和管理模板,例如:

邮件操作:

  • "向john.doe@example.com发送一封主题为'Meeting Tomorrow'的邮件,并附带友好的提醒,关于我们即将举行的会议。"
  • "给sarah@example.com发送一封关于项目更新的邮件,并抄送给团队team@example.com"
  • "发送一封测试邮件到test@example.com,主题为'Test Template',以预览我们的欢迎邮件样式"

模板操作:

  • "列出我Mailtrap账户中的所有邮件模板"
  • "创建一个新的名为'Welcome Email'的邮件模板,主题为'Welcome to our platform!'"
  • "更新ID为12345的模板,将主题更改为'Updated Welcome Message'"
  • "删除ID为67890的模板"

可用工具

send-email

通过Mailtrap发送事务邮件。

参数:

  • to(必需):收件人的电子邮件地址 - 可以是单个电子邮件地址或电子邮件地址数组
  • subject(必需):邮件主题行
  • from(可选):发件人的电子邮件地址,如果没有提供,则使用"DEFAULT_FROM_EMAIL"
  • text(可选):邮件正文文本,如果"html"为空则需要提供
  • html(可选):邮件正文的HTML版本,如果"text"为空则需要提供
  • cc(可选):抄送收件人的电子邮件地址数组
  • bcc(可选):密送收件人的电子邮件地址数组
  • category(必需):用于跟踪和分析的邮件类别

send-sandbox-email

发送邮件到您的Mailtrap测试邮箱,用于开发和测试目的。这对于测试邮件模板而不发送邮件给实际收件人非常有用。

参数:

  • to(必需):收件人的电子邮件地址 - 可以是单个电子邮件地址或电子邮件地址数组(将被发送到您的测试邮箱)
  • subject(必需):邮件主题行
  • from(可选):发件人的电子邮件地址,如果没有提供,则使用"DEFAULT_FROM_EMAIL"
  • text(可选):邮件正文文本,如果"html"为空则需要提供
  • html(可选):邮件正文的HTML版本,如果"text"为空则需要提供
  • cc(可选):抄送收件人的电子邮件地址数组
  • bcc(可选):密送收件人的电子邮件地址数组
  • category(可选):用于跟踪的邮件类别

[!NOTE] 要使沙盒邮件功能正常工作,必须配置MAILTRAP_TEST_INBOX_ID环境变量。此变量用于沙盒功能,对于常规事务邮件或模板管理不需要。

create-template

在您的Mailtrap账户中创建新的邮件模板。

参数:

  • name(必需):模板名称
  • subject(必需):邮件主题行
  • html(或text必需):模板的HTML内容
  • text(或html必需):模板的纯文本版本
  • category(可选):模板类别(默认为"General")

list-templates

列出您Mailtrap账户中的所有邮件模板。

参数:

  • 不需要参数

update-template

更新现有的邮件模板。

参数:

  • template_id(必需):要更新的模板ID
  • name(可选):模板的新名称
  • subject(可选):新邮件主题行
  • html(可选):模板的新HTML内容
  • text(可选):模板的新纯文本版本
  • category(可选):模板的新类别

[!NOTE] 至少需要提供一个可更新字段(name, subject, html, text, 或 category)来调用update-template执行更新。

delete-template

删除现有的邮件模板。

参数:

  • template_id(必需):要删除的模板ID

开发

  1. 克隆存储库:
git clone https://github.com/mailtrap/mailtrap-mcp.git
cd mailtrap-mcp
  1. 安装依赖项:
npm install

使用Claude Desktop或Cursor配置

[!TIP] 请参阅配置部分中的配置文件位置。

添加以下配置:

{
  "mcpServers": {
    "mailtrap": {
      "command": "node",
      "args": ["/path/to/mailtrap-mcp/dist/index.js"],
      "env": {
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "your_sender@example.com",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
      }
    }
  }
}

如果您使用asdf来管理Node.js,应该使用可执行文件的绝对路径:

(例如Mac)

{
  "mcpServers": {
    "mailtrap": {
      "command": "/Users/<username>/.asdf/shims/node",
      "args": ["/path/to/mailtrap-mcp/dist/index.js"],
      "env": {
        "PATH": "/Users/<username>/.asdf/shims:/usr/bin:/bin",
        "ASDF_DIR": "/opt/homebrew/opt/asdf/libexec",
        "ASDF_DATA_DIR": "/Users/<username>/.asdf",
        "ASDF_NODEJS_VERSION": "2_6_1",
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "your_sender@example.com",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
      }
    }
  }
}

VS Code

[!TIP] 请参阅配置部分中的配置文件位置。

{
  "mcp": {
    "servers": {
      "mailtrap": {
        "command": "node",
        "args": ["/path/to/mailtrap-mcp/dist/index.js"],
        "env": {
          "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
          "DEFAULT_FROM_EMAIL": "your_sender@example.com",
          "MAILTRAP_ACCOUNT_ID": "your_account_id",
          "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
        }
      }
    }
  }
}

测试

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

npm run dev

运行MCPB服务器

# 直接运行MCPB服务器
node dist/mcpb-server.js

# 或使用提供的二进制文件
mailtrap-mcpb-server

[!TIP] 对于与MCP Inspector一起开发:

npm run dev:mcpb

错误处理

此服务器使用符合MCP规范的结构化错误处理:

  • VALIDATION_ERROR:输入验证失败
  • CONFIGURATION_ERROR:缺少或无效的配置
  • EXECUTION_ERROR:运行时执行错误
  • TIMEOUT:操作超时(默认30秒)

错误包括可操作的消息,并以结构化形式记录。

安全性

  • 通过Zod模式验证输入
  • 安全地处理环境变量
  • 操作超时保护(30秒)
  • 在错误输出中清除敏感细节

日志

结构化的JSON日志,级别:INFO, WARN, ERROR, DEBUG。

启用调试日志记录,设置DEBUG=true

# 示例:启用调试日志记录
DEBUG=true node dist/mcpb-server.js

重要:该服务器将日志写入stderr,以便stdout保留用于JSON-RPC帧。这可以防止主机因交错的日志而遇到JSON解析错误。

日志分析示例使用jq

# 过滤错误日志
node dist/mcpb-server.js 2>&1 | jq 'select(.level == "error")'

# 过滤调试日志
node dist/mcpb-server.js 2>&1 | jq 'select(.level == "debug")'

故障排除

常见问题:

  1. 缺失API令牌:确保MAILTRAP_API_TOKEN已设置
  2. 沙盒不工作:验证MAILTRAP_TEST_INBOX_ID已配置
  3. 超时错误:检查网络连接和Mailtrap API状态
  4. 验证错误:确保提供了所有必需的字段

贡献

欢迎在GitHub上提交错误报告和拉取请求。该项目旨在成为一个安全、欢迎的合作空间,贡献者应遵守行为准则

许可证

该软件包作为开源软件,根据MIT许可证条款提供。

行为准则

在Mailtrap项目的代码库、问题追踪器、聊天室和邮件列表中互动的所有人都期望遵循[行为准则](CODE_OF_CON