一个通过Mailtrap提供发送事务邮件和管理邮件模板工具的MCP服务器。
在使用此MCP服务器之前,您需要完成以下步骤:
必需的环境变量:
MAILTRAP_API_TOKEN - 所有功能都需要DEFAULT_FROM_EMAIL - 发送邮件操作都需要MAILTRAP_ACCOUNT_ID - 模板管理操作都需要MAILTRAP_TEST_INBOX_ID - 仅用于沙盒邮件功能Smithery是一个适用于所有AI客户端的MCP服务器注册表安装程序和管理器。
npx @smithery/cli install mailtrap
Smithery会自动处理客户端配置,并提供交互式设置过程。这是本地开始使用MCP服务器最简单的方法。
使用MCPB安装Mailtrap服务器。您可以在发布页面找到这些文件。<br>下载.MCPB文件并打开它。如果您有Claude Desktop,它会打开并建议进行配置。
添加以下配置:
{
"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"
}
}
}
}
Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Mac: ~/.cursor/mcp.json
Windows: %USERPROFILE%\.cursor\mcp.json
在命令面板中运行: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捆绑包的主机上轻松安装,您可以分发一个.mcpb捆绑包文件。
# 构建TypeScript并打包MCPB捆绑包
npm run mcpb:pack
# 查看捆绑包元数据
npm run mcpb:info
# 签署捆绑包以供分发(可选)
npm run mcpb:sign
这将使用仓库中的manifest.json和构建的工件在dist/目录下创建mailtrap-mcp.mcpb。
配置完成后,您可以请求代理发送邮件和管理模板,例如:
邮件操作:
模板操作:
通过Mailtrap发送事务邮件。
参数:
to(必需):收件人的电子邮件地址 - 可以是单个电子邮件地址或电子邮件地址数组subject(必需):邮件主题行from(可选):发件人的电子邮件地址,如果没有提供,则使用"DEFAULT_FROM_EMAIL"text(可选):邮件正文文本,如果"html"为空则需要提供html(可选):邮件正文的HTML版本,如果"text"为空则需要提供cc(可选):抄送收件人的电子邮件地址数组bcc(可选):密送收件人的电子邮件地址数组category(必需):用于跟踪和分析的邮件类别发送邮件到您的Mailtrap测试邮箱,用于开发和测试目的。这对于测试邮件模板而不发送邮件给实际收件人非常有用。
参数:
to(必需):收件人的电子邮件地址 - 可以是单个电子邮件地址或电子邮件地址数组(将被发送到您的测试邮箱)subject(必需):邮件主题行from(可选):发件人的电子邮件地址,如果没有提供,则使用"DEFAULT_FROM_EMAIL"text(可选):邮件正文文本,如果"html"为空则需要提供html(可选):邮件正文的HTML版本,如果"text"为空则需要提供cc(可选):抄送收件人的电子邮件地址数组bcc(可选):密送收件人的电子邮件地址数组category(可选):用于跟踪的邮件类别[!NOTE] 要使沙盒邮件功能正常工作,必须配置
MAILTRAP_TEST_INBOX_ID环境变量。此变量仅用于沙盒功能,对于常规事务邮件或模板管理不需要。
在您的Mailtrap账户中创建新的邮件模板。
参数:
name(必需):模板名称subject(必需):邮件主题行html(或text必需):模板的HTML内容text(或html必需):模板的纯文本版本category(可选):模板类别(默认为"General")列出您Mailtrap账户中的所有邮件模板。
参数:
更新现有的邮件模板。
参数:
template_id(必需):要更新的模板IDname(可选):模板的新名称subject(可选):新邮件主题行html(可选):模板的新HTML内容text(可选):模板的新纯文本版本category(可选):模板的新类别[!NOTE] 至少需要提供一个可更新字段(name, subject, html, text, 或 category)来调用update-template执行更新。
删除现有的邮件模板。
参数:
template_id(必需):要删除的模板IDgit clone https://github.com/mailtrap/mailtrap-mcp.git
cd mailtrap-mcp
npm install
[!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"
}
}
}
}
[!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服务器
node dist/mcpb-server.js
# 或使用提供的二进制文件
mailtrap-mcpb-server
[!TIP] 对于与MCP Inspector一起开发:
npm run dev:mcpb
此服务器使用符合MCP规范的结构化错误处理:
VALIDATION_ERROR:输入验证失败CONFIGURATION_ERROR:缺少或无效的配置EXECUTION_ERROR:运行时执行错误TIMEOUT:操作超时(默认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")'
常见问题:
MAILTRAP_API_TOKEN已设置MAILTRAP_TEST_INBOX_ID已配置欢迎在GitHub上提交错误报告和拉取请求。该项目旨在成为一个安全、欢迎的合作空间,贡献者应遵守行为准则。
该软件包作为开源软件,根据MIT许可证条款提供。
在Mailtrap项目的代码库、问题追踪器、聊天室和邮件列表中互动的所有人都期望遵循[行为准则](CODE_OF_CON