重新发送叶片MCP
安全第一的MCP服务器 重发 事务性电子邮件——通过编程安全控制发送、管理联系人、广播、模板、域和webhook。
为什么官方不重新发送MCP?
这 官方重新发送mcp 涵盖了整个API,但它是为人监督的聊天而设计的,而不是自主代理。在代理环境中,其安全模型会崩溃:
| 能力 | 重新发送刀片mcp | 官方重新发送mcp | 通用供应商mcp |
|---|
| 写控制 | 程序化环境变量门 | 仅提示工程 | 通常没有 |
| 文件系统访问 | 无 --仅限base64/URL | filePath 读取任何文件 | 变化 |
| API密钥管理 | 完全排除 | 完全CRUD暴露于代理 | 经常暴露 |
| 凭证清除 | 所有错误路径已清除 | 未实现 | 很少 |
| 工具计数 | 28焦点 | 60+(上下文窗口膨胀) | 变化 |
| 输出格式 | 管道分隔,空省略 | 原始JSON响应 | 原始JSON |
| HTTP传输身份验证 | 内置承载中间件 | 仅限每个会话密钥 | 很少 |
| 幂等性 | 原住民 Idempotency-Key header | 不作为参数公开 | 很少 |
| 费率限制处理 | 键入 RateLimitError 在 | 原始错误传递后重试 | 变化 |
文件系统问题
官方MCP接受 filePath 在附件中,调用 fs.readFile() 没有路径验证。自主代理可以读取 /etc/passwd, ~/.ssh/id_rsa,或主机上的任何文件,并将其附加到发送到任何地址的电子邮件中。 重新发送刀片mcp 拒绝所有文件系统路径——只允许base64内容和HTTPS URL。
API关键问题
官方MCP曝光 create-api-key 和 remove-api-key 工具。代理可以创建一个完全访问的API密钥并对其进行过滤,或者删除现有密钥以中断服务。 重新发送刀片mcp 完全排除了API密钥管理-这些是属于带外的特权操作。
特性
- 28工具 跨越8个类别:发送、联系人、分段、广播、模板、域、Webhook、日志
- 写入门 --默认情况下禁用所有变异操作(
RESEND_WRITE_ENABLED=true 启用) - 没有文件系统访问权限 --仅通过base64内容或HTTPS URL的附件
- 没有API密钥CRUD --被设计排除在外,而不仅仅是封闭的
- 凭证清除 —
re_* 从所有错误输出中剥离API密钥 - 代币高效 --管道分隔输出、空字段省略、带上限列表
- 即时发送 --本地人
Idempotency-Key 支持防止重试时出现重复电子邮件 - Webhook管理 --为事件驱动架构创建、列出、删除webhook端点
- Sidereal市场 --一键安装的原生插件清单
需求
- macOS(测试版)或Linux
- Python 3.12+
- 紫外线
- 使用API密钥重新发送帐户(在这里买一个)
快速开始
# Clone and install
git clone https://github.com/Groupthink-dev/resend-blade-mcp.git
cd resend-blade-mcp
uv sync
# Set your API key
export RESEND_API_KEY=re_xxxxxxxx
# Run (stdio transport)
uv run resend-blade-mcp
克劳德代码
claude mcp add resend-blade -- uv run --directory ~/src/resend-blade-mcp resend-blade-mcp
克劳德桌面(Claude_Desktop_config.json)
{
"mcpServers": {
"resend-blade": {
"command": "uv",
"args": ["run", "--directory", "/path/to/resend-blade-mcp", "resend-blade-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxx",
"RESEND_WRITE_ENABLED": "false"
}
}
}
}
工具(28)
发送(5)
| 工具 | 闸门 | 说明 |
|---|
resend_send | write | 发送电子邮件(HTML/文本、附件、计划、幂等) |
resend_send_batch | 写 | 批量发送多达100封电子邮件 |
resend_get_email | read | 按ID检索已发送的电子邮件 |
resend_list_emails | read | 列出已发送的电子邮件及其状态 |
resend_cancel_scheduled | 写 | 取消已安排的电子邮件 |
联系人(4)
| 工具 | 闸门 | 说明 |
|---|
resend_create_contact | write | 创建具有属性的联系人 |
resend_list_contacts | read | 列出联系人 |
resend_update_contact | write | 更新联系人属性 |
resend_delete_contact | write | 删除联系人 |
分段(3)
| 工具 | 闸门 | 说明 |
|---|
resend_create_segment | write | 创建分段 |
resend_list_segments | read | 列出分段 |
resend_delete_segment | write | 删除段 |
广播(4)
| 工具 | 闸门 | 说明 |
|---|
resend_create_broadcast | write | 创建广播(草稿) |
resend_send_broadcast | write | 发送或安排广播草稿 |
resend_list_broadcasts | read | 列出带有状态的广播 |
resend_delete_broadcast | write | 删除草稿/预定广播 |
模板(4)
| 工具 | 闸门 | 说明 |
|---|
resend_create_template | write | 创建带有变量的模板 |
resend_list_templates | read | 列出模板 |
resend_get_template | read | 获取包含HTML内容的模板 |
resend_publish_template | write | 发布模板以用于发送 |
域名(4)
| 工具 | 闸门 | 说明 |
|---|
resend_add_domain | write | 注册发送域(返回DNS记录) |
resend_list_domains | read | 列出具有验证状态的域 |
resend_get_domain | read | 获取包含DNS记录详细信息的域 |
resend_verify_domain | write | 触发DNS验证 |
Webhooks(3)
| 工具 | 闸门 | 说明 |
|---|
resend_create_webhook | write | 创建webhook端点(返回签名密钥) |
resend_list_webhooks | read | 列出webhook端点 |
resend_delete_webhook | write | 删除webhook |
日志(1)
| 工具 | 闸门 | 说明 |
|---|
resend_list_logs | read | 列出最近的API请求日志 |
安全
| 图层 | 控制 |
|---|
| API密钥 | RESEND_API_KEY from env(从未记录,已清除错误) |
| 传输 | stdio默认值(无网络暴露) |
| 写入门 | RESEND_WRITE_ENABLED 默认 false --阻止所有17个写入工具 |
| 附件 | 仅限Base64内容或HTTPS URL--文件系统路径被拒绝 |
| API密钥CRUD | 已排除-任何工具都不能创建、列出或删除API密钥 |
| 批量限制 | resend_send_batch 上限为100(重新发送API最大值) |
| 凭证清除 | re_* 从所有错误输出中删除模式 |
| HTTP认证 | 可选承载令牌中间件(RESEND_MCP_API_TOKEN) |
| 速率限制 | 429个响应按类型显示 RateLimitError 稍后重试 |
HTTP传输
export RESEND_MCP_TRANSPORT=http
export RESEND_MCP_HOST=127.0.0.1
export RESEND_MCP_PORT=8770
export RESEND_MCP_API_TOKEN=your-secret-token
uv run resend-blade-mcp
环境变量
| 变量 | 默认值 | 描述 |
|---|
RESEND_API_KEY | (必需) | 重新发送API密钥 |
RESEND_WRITE_ENABLED | false | 启用写入操作 |
RESEND_MCP_TRANSPORT | stdio | 运输: stdio 或 http |
RESEND_MCP_HOST | 127.0.0.1 | HTTP绑定主机 |
RESEND_MCP_PORT | 8770 | HTTP绑定端口 |
RESEND_MCP_API_TOKEN | (无) | HTTP身份验证的承载令牌 |
发展
make install-dev # Install with dev dependencies
make test # Run unit tests (mocked, no Resend needed)
make test-e2e # Run E2E tests (requires live API key)
make check # Lint + format + type-check
make run # Start the server
许可证
麻省理工学院