官方邮戳 MCP 服务器

使用 Claude 和其他 MCP 兼容的 AI 助手使用 Postmark 发送邮件 .
特征
- 显示由您支持的上下文协议( MCP) 模型服务器 邮戳账户
- 24个工具涵盖电子邮件发送(单一+批次)、模板(CRUD+验证)、消息搜索、发送诊断、弹出、压制、统计、服务器信息以及网络呼声
- MCP 工具说明
readOnlyHint, (中文(简体) ),destructiveHint() 支持客户自动接受安全读取,并在突变或破坏性操作前需要确认 - 通过环境变量简单配置
- 全面处理错误和优雅的关闭
- 结构化的 JSON 记录为可选日志文件持久性的 stderr ; 电子邮件地址默认被部分遮盖
- HTTPS 强制执行和可选域名允许列表用于 webhook 注册
- 每次发送时自动打开/ 点击跟踪
有用的文档
反馈
我们很想听到你的消息! 请利用我们 反馈表单。 。 。 .
跟着我们X - @ postmarkapp( 邮戳)
设置
所需资源
- 节点.js v20 或以上
- A 类 邮戳账户 和服务器令牌
安装(当地开发)
清除仓库 :
git clone https://github.com/ActiveCampaign/postmark-mcp
cd postmark-mcp
安装依赖性 :
npm install
# or
yarn
# or
bun install
配置(当地开发)
从示例创建自己的环境文件
cp .env.example .env
编辑您的 .env 包含您的邮戳证书和设置.
重要内容: 这只是为了当地的发展目的。 机密永远不应存储在版本控制中 .env 类型文件应添加到 .gitignore。 。 。 .
需求
| 变量 | 说明 |
|---|---|
POSTMARK_SERVER_TOKEN | 您的 Postmark 服务器 API 令牌 |
DEFAULT_SENDER_EMAIL | 默认发送者电子邮件地址( 必须是 Postmark 中经过验证的发送者) |
DEFAULT_MESSAGE_STREAM | 邮戳消息流( 例如 ), outbound(中文(简体) ) |
可选
| 变量 | 默认 | 说明 |
|---|---|---|
AGENT_LABEL | —— 说 | 此实例的标签( 例如 ), prod, (中文(简体) ), staging) (中文(简体) ). 发送为 X-Agent-Label 用于在日志或支持票中识别交通来源. |
WEBHOOK_URL_ALLOWLIST | —— 说 | 以逗号分隔的 HTTPS URL 前缀列表 createWebhook 将接受(例如, https://hooks.yourapp.com,https://inbound.corp.io) (中文(简体) ). 未设定时, 任何有效的 HTTPS URL 都会被接受 . |
LOG_FILE | —— 说 | 用于除 stderr 外附加结构化 JSON 日志的文件的路径 。 文件如果不存在则创建 。 不应用旋转或大小上限——使用外部工具,例如 logrotate 在长期部署中管理文件. |
LOG_EMAIL_FULL | false | 设定为 true 在不蒙面的情况下登录电子邮件地址。 默认情况下,邮箱部分在日志中被遮住(u**[email protected]) (中文(简体) ). |
运行服务器 :
npm start
# or
yarn start
# or
bun start
吸烟试验(要求有效) .env:
Repo飞船2个烟雾测试实例文件. 运行前将每个复制到其非实例名称(被被 gitignored),所以你的本地编辑——包括任何经过核实的发件人地址——永远不会被承诺.
# Read-only suite (25 checks). Optionally edit RECIPIENT_WITH_HISTORY.
cp smoke-test.example.mjs smoke-test.mjs
npm run smoke
# Mutating suite (full lifecycles + real email sends).
# REQUIRED: edit SENDER and RECIPIENT to two of your verified addresses.
cp smoke-test-mutating.example.mjs smoke-test-mutating.mjs
node smoke-test-mutating.mjs
仅读套件在 stdio 上生成服务器, 并针对您的 Postmark 账户对每个读取工具进行练习, 外加验证路径 editTemplate 财务报告和审定财务报表 createWebhook。不发送邮件或变异状态.
变异套件会运行完整的 Creative-edit-delete 生命周期用于模板(包括布局绑定),webhooks,以及压制,并在您配置的两个地址之间发送真实的电子邮件. 后能自清净. 当占位符值仍然存在时,脚本拒绝运行.
光标快速安装
在安装 MCP 后, 更新您的配置以设置 :
POSTMARK_SERVER_TOKENDEFAULT_SENDER_EMAILDEFAULT_MESSAGE_STREAM(默认 :outbound(中文(简体) )
MCP 客户端配置
使用 npx( 建议—— 不需要克隆)
不管理本地副本而直接从 npm 安装 :
{
"mcpServers": {
"postmark": {
"command": "npx",
"args": ["-y", "@activecampaign/postmark-mcp"],
"env": {
"POSTMARK_SERVER_TOKEN": "your-postmark-server-token",
"DEFAULT_SENDER_EMAIL": "[email protected]",
"DEFAULT_MESSAGE_STREAM": "outbound"
}
}
}
}
使用本地克隆
{
"mcpServers": {
"postmark": {
"command": "node",
"args": ["/absolute/path/to/postmark-mcp/index.js"],
"env": {
"POSTMARK_SERVER_TOKEN": "your-postmark-server-token",
"DEFAULT_SENDER_EMAIL": "[email protected]",
"DEFAULT_MESSAGE_STREAM": "outbound"
}
}
}
}
两个片段一起工作 克劳德桌面 (单位:千美元)~/Library/Application Support/Claude/claude_desktop_config.json, (中文(简体) ), 光标 (单位:千美元).cursor/mcp.json),以及接受标准JSON配置格式的任何其他MCP客户端.
工具
本节为Postmark MCP服务器工具提供了完整的参考,包括示例提示和有效载荷. 服务器注册 24个工具 分为八类.
目录
电子邮件
发送电子邮件
向一个收件人或最多50个收件人发送交易邮件.
示例提示 :
Send an email using Postmark to [email protected] with the subject "Meeting Reminder" and the message "Don't forget our team meeting tomorrow at 2 PM."
预期有效载荷 :
{
"to": "[email protected]",
"subject": "Meeting Reminder",
"textBody": "Don't forget our team meeting tomorrow at 2 PM.",
"htmlBody": "<p>Don't forget our team meeting tomorrow at 2 PM.</p>",
"from": "[email protected]",
"cc": "[email protected]",
"bcc": "[email protected]",
"replyTo": "[email protected]",
"tag": "meetings"
}
to 接受单一地址或最多50个地址的数组. htmlBody, (中文(简体) ), from, (中文(简体) ), cc, (中文(简体) ), bcc, (中文(简体) ), replyTo,以及 tag 是可选的。 若为 from 删去, DEFAULT_SENDER_EMAIL 已使用.
回应:
Email sent successfully!
MessageID: 0a1b2c3d-...
To: [email protected]
Subject: Meeting Reminder
用模板发送电子邮件
使用 Postmark 模板发送电子邮件 .
示例提示 :
Send the "welcome" template to [email protected] with name "John Doe" and login_url "https://myapp.com/login".
预期有效载荷 :
{
"to": "[email protected]",
"templateAlias": "welcome",
"templateModel": {
"name": "John Doe",
"login_url": "https://myapp.com/login"
},
"from": "[email protected]",
"tag": "onboarding"
}
提供 无论是 templateId (数目) 或者说 templateAlias (弦),不是两者.
回应:
Template email sent successfully!
MessageID: 0a1b2c3d-...
To: [email protected]
Template: welcome
发送批次
在一个API电话中发送多达500个电子邮件. 每条信息都是完全独立的——它自己的接收者,主题,以及机构. 这包扎了邮戳 同步 批量终点( e)POST /email/batch),它返回直接的每个消息结果.
说明: 邮戳还提供了同步 批量电子邮件 API (单位:千美元)
POST /email/bulk用于没有信息计数上限和50 MB有效载荷限制的大容量工作。 该端点使用提交-并发工作流程,目前没有被这个MCP服务器所包裹.
预期有效载荷 :
{
"messages": [
{
"to": "[email protected]",
"subject": "Order #1234 confirmed",
"textBody": "Thanks Alice — your order is on its way.",
"tag": "order-confirmation"
},
{
"to": "[email protected]",
"subject": "Order #1235 confirmed",
"textBody": "Thanks Bob — your order is on its way.",
"tag": "order-confirmation"
}
]
}
每个消息字段 : to, (中文(简体) ), subject, (中文(简体) ), textBody 需要这样做. htmlBody, (中文(简体) ), from, (中文(简体) ), cc, (中文(简体) ), bcc, (中文(简体) ), replyTo,以及 tag 是可选的。 若为 from 在一个消息中省略, DEFAULT_SENDER_EMAIL 已使用.
回应:
Sent 2/2 successfully
Successes:
- [email protected] — abc-123-def
- [email protected] — abc-456-ghi
当一些消息在提交时失败(例如,被被压制的收件人),则首先将失败与他们的 ErrorCode 和理由:
Sent 8/10 successfully (2 failed)
Failures:
- [email protected] — 406: Address has been suppressed.
- [email protected] — 300: Inactive recipient
...
用模板发送批次
发送多达500个模板邮件——同模板,每个接收者模板模型. 理想的“ 向每个新用户提供这个登入模板 ” 流量 .
预期有效载荷 :
{
"templateAlias": "welcome",
"from": "[email protected]",
"tag": "onboarding",
"recipients": [
{ "to": "[email protected]", "templateModel": { "name": "Alice", "plan": "Pro" } },
{ "to": "[email protected]", "templateModel": { "name": "Bob", "plan": "Free" } }
]
}
提供 无论是 templateId (数目) 或者说 templateAlias (弦声). 顶级 from 财务报告和审定财务报表 tag 适用于所有受援者,但每个受援者可以被推翻。 每个收件人也接受可选 cc, (中文(简体) ), bcc,以及 replyTo。 。 。 .
回应: 格式与 sendBatch。 。 。 .
模板
列表模板
此服务器上保存的模板列表 。 返回前100个模板;如果服务器超过100个,则尚未支持pagination,响应会显示结果被截断.
回应:
Found 2 templates:
• **Welcome**
- ID: 12345678
- Alias: welcome
- Subject: Welcome to {{product_name}}
获取模板
检索单一模板的全部内容(HTML正文,正文正文,主题,类型).
有效载荷 : { "templateIdOrAlias": "welcome" } ——接受数字ID或字符串别名.
创建模板
创建新模板。 要求数 name。其中至少有一个 htmlBody 或者说 textBody 必须提供.
subject 用于标准模板,必须 删除 对于布局模板——邮戳在布局上拒绝字段.
layoutTemplate (仅标准)用别名将新模板与已存在的布局绑定. 没有它,新的模板就使得没有被包装(没有任何布局的铬).
预期有效载荷 :
{
"name": "Order Confirmation",
"subject": "Your order #{{order_id}} is confirmed",
"htmlBody": "<h1>Thanks {{name}}</h1>",
"textBody": "Thanks {{name}}",
"alias": "order-confirmation",
"templateType": "Standard",
"layoutTemplate": "basic"
}
templateType 也许 "Standard" (违约)或 "Layout"。 。 。 .
编辑模板
更新已有模板。 要求数 templateIdOrAlias 加号 至少一个 更新字段( e)name, (中文(简体) ), subject, (中文(简体) ), htmlBody, (中文(简体) ), textBody, (中文(简体) ), alias,或 layoutTemplate) (中文(简体) ).
过 "layoutTemplate": null 将模板从当前布局中解开(MCP将其翻译为清除关联所需的Postmark API空字符串).
删除模板
永久通过ID或别名删除模板. 版式模板无法被删除, 而标准模板仍然被绑定在它们上 — 未通过 editTemplate 先说.
有效载荷 : { "templateIdOrAlias": "order-confirmation" }
校验模板
验证模板内容(Mustachio语法,未定义变量)而不保存. 至少其中一个 subject, (中文(简体) ), htmlBody,或 textBody 需要时间.
预期有效载荷 :
{
"subject": "Order #{{order_id}}",
"htmlBody": "<p>Thanks {{name}}</p>",
"textBody": "Thanks {{name}}",
"testRenderModel": { "order_id": 42, "name": "John" },
"templateType": "Standard"
}
信件
向外搜索消息
搜索输出的消息历史 .
预期有效载荷( 所有过滤器可选) :
{
"recipient": "[email protected]",
"fromEmail": "[email protected]",
"tag": "marketing",
"subject": "Welcome",
"status": "sent",
"messageStream": "outbound",
"fromDate": "2025-05-01",
"toDate": "2025-05-15",
"count": 50,
"offset": 0
}
status 这是其中之一 queued, (中文(简体) ), sent, (中文(简体) ), processed。 。 。 . count 是 1–500 (默认为 50).
获取Message 细节
获取单个出局消息的全部细节和事件时间表.
有效载荷 : { "messageId": "0a1b2c3d-..." }
诊断
诊断交付
复合分型工具. 回答"我的电子邮件是否到达了X,如果没有,为什么?",通过运行消息搜索,压制检查,并同时反弹历史检索到一个收件人地址,然后合成一个平通英语的推荐.
这是一个 诊断 工具:它将多个 Postmark API 调用成一个单一的连贯的答案,而不是镜像一个单一的终点.
示例提示 :
Did my email to [email protected] get delivered? If not, what should I do?
预期有效载荷 :
{
"recipient": "[email protected]",
"messageId": "0a1b2c3d-...",
"fromDate": "2026-04-21",
"toDate": "2026-04-28",
"messageStream": "outbound"
}
除了所有字段 recipient 是可选的。 若为 messageId ,则使用给收件人的最新消息。 默认搜索窗口为最后7天 .
样本响应 :
Delivery Diagnosis: [email protected]
────────────────────────────────────────────────
Suppression: not suppressed on stream "outbound"
Most recent message:
MessageID: fadeae4e-fb04-4102-9303-9876078c7b81
Subject: Welcome to MyApp
Sent: 2026-04-27T18:42:19.0000000-04:00
Status: Sent
Events: Delivered, Opened×2, Clicked
Bounce history: none
Recommended action:
Email was delivered. If recipient says they didn't see it, check their
spam folder or ask them to whitelist the sender domain.
当被压制者时,建议有不同的理由: SpamComplaint 是永久性的, HardBounce 可能是可反应的, ManualSuppression 可通过 deleteSuppressions。 。 。 .
弹跳
搜索弹出
按类型,收件人,标签,消息ID,消息流,日期范围,以及活动/不活动状态,以可选过滤器来搜索弹出日志.
预期有效载荷( 所有可选):
{
"type": "HardBounce",
"inactive": true,
"emailFilter": "@example.com",
"tag": "marketing",
"messageID": "0a1b2c3d-...",
"messageStream": "outbound",
"fromDate": "2025-05-01",
"toDate": "2025-05-15",
"count": 50,
"offset": 0
}
支助 type 值( 匹配邮戳的) BounceType enum -- -- 22个值: AddressChange, (中文(简体) ), AutoResponder, (中文(简体) ), BadEmailAddress, (中文(简体) ), Blocked, (中文(简体) ), ChallengeVerification, (中文(简体) ), DMARCPolicy, (中文(简体) ), DnsError, (中文(简体) ), HardBounce, (中文(简体) ), InboundError, (中文(简体) ), ManuallyDeactivated, (中文(简体) ), OpenRelayTest, (中文(简体) ), SMTPApiError, (中文(简体) ), SoftBounce, (中文(简体) ), SpamComplaint, (中文(简体) ), SpamNotification, (中文(简体) ), Subscribe, (中文(简体) ), TemplateRenderingFailed, (中文(简体) ), Transient, (中文(简体) ), Unconfirmed, (中文(简体) ), Unknown, (中文(简体) ), Unsubscribe, (中文(简体) ), VirusNotification。 。 。 .
跳跃
返回原始的 SMTP 垃圾堆进行回放 。 弹出垃圾场保留了30天.
有效载荷 : { "bounceId": 123456 }
激活弹出
重新激活已关闭的电子邮件地址( 只弹出于 CanActivate: true) (中文(简体) ).
有效载荷 : { "bounceId": 123456 }
抑制
禁止列表
列出消息流的压制 .
预期有效载荷( 所有可选):
{
"messageStream": "outbound",
"suppressionReason": "HardBounce",
"origin": "Recipient",
"emailAddress": "[email protected]",
"fromDate": "2025-05-01",
"toDate": "2025-05-15"
}
suppressionReason ∈ HardBounce, (中文(简体) ), SpamComplaint, (中文(简体) ), ManualSuppression。 。 。 . origin ∈ Recipient, (中文(简体) ), Customer, (中文(简体) ), Admin如果 messageStream 删去, DEFAULT_MESSAGE_STREAM 已使用.
创建抑制
在消息流上压制多达50个电子邮件地址.
有效载荷 : { "emailAddresses": ["[email protected]", "[email protected]"], "messageStream": "outbound" }
删除禁止
从压制名单上删除多达50个地址。 说明: SpamComplaint 压制不能被删除 .
有效载荷 : { "emailAddresses": ["[email protected]"], "messageStream": "outbound" }
Stats 服务器( S)
获取交付数据
统一统计工具。 默认行为返回友好标题摘要; 通过可选 stat 重点分解.
预期有效载荷( 所有可选):
{
"stat": "summary",
"tag": "marketing",
"fromDate": "2025-05-01",
"toDate": "2025-05-15",
"messageStream": "outbound"
}
支助 stat 值 :
stat | 它的回报 |
|---|---|
summary (默认) | 标题打开/ 点击/ 弹出/ 垃圾邮件率 |
overview | 所有概览计数(发送、跟踪、打开、点击、回弹、.) |
sent | 发送数 |
bounces | 按类型分列 |
spam | 垃圾邮件投诉数 |
tracked | 已跟踪电子邮件数 |
opens | 共计 + 唯一打开 |
openPlatforms | 开放平台分解( Desktop / Mobile / WebMail / 未知) |
openClients | 前10名电子邮件客户端(Apple Mail, Gmail,...) |
openReadTimes | 读取时间直方图 |
clicks | 共计 + 唯一链接点击 |
clickBrowsers | 点击前十名浏览器 |
clickPlatforms | 点击平台分解( Desktop / Mobile / WebMail / 未知) |
clickLocation | HTML 对纯文本点击位置 |
默认摘要响应 :
Email Delivery Summary
Sent: 74
Tracked: 33 (44.6% of sent)
Open rate: 93.9% (31/33 unique opens)
Click rate: 4.8% (10/207 unique links clicked)
Bounced: 1 (1.4%)
Spam: 0 (0.0%)
Period: 2025-05-01 → 2025-05-15
Tag: marketing
样本 stat: "openPlatforms" 回应 :
Open Platform Usage
Desktop 20 (64.5%)
Mobile 0 (0.0%)
WebMail 11 (35.5%)
Unknown 0 (0.0%)
获取服务器信息
返回 Postmark 服务器的名称、 颜色、 跟踪设置和 Webhook URL .
有效载荷 : {}
网络呼号
列表Webhooks
列表已配置了 Webhoks 。 可选 messageStream 过滤器.
创建Webhook
创建 Webhook 订阅。 需要一个 url 财务报告和审定财务报表 至少一个 触发.
安全说明: Webhooks是持久性的——一旦注册,Postmark将会POST事件数据(打开,点击,回弹,垃圾邮件投诉等)到目标URL,用于该服务器上所有未来的匹配事件,直到被删除. 只注册指向您控制的 URL 的 Webhooks 。 使用 WEBHOOK_URL_ALLOWLIST 将接受的URL限制在已知的前缀.
这个 url 必须使用 HTTPS (韩语)HTTP URL 被拒绝。 若为 WEBHOOK_URL_ALLOWLIST 设置后,URL也必须匹配所配置的前缀之一.
预期有效载荷 :
{
"url": "https://hooks.yourapp.com/postmark",
"messageStream": "outbound",
"openEnabled": true,
"clickEnabled": true,
"deliveryEnabled": false,
"bounceEnabled": true,
"spamComplaintEnabled": true,
"subscriptionChangeEnabled": false
}
删除网易
以 ID 方式删除一个 webhook.
有效载荷 : { "webhookId": 1234567 }
执行细节
API 请求信头
所有向Postmark API提出的请求都包含下列客户识别头:
| 页眉 | 说明 |
|---|---|
X-Postmark-Client | 永远 postmark-mcp —— 确定此服务器为请求源 |
X-Postmark-Client-Version | 此 MCP 服务器的版本, 匹配软件包版本 |
X-Postmark-MCP-Client | MCP主机应用程序的名称和版本(例如, claude-desktop/1.0),从MCP抓获 initialize 握个手 如果客户不提供这一信息,则予以承认. |
X-Agent-Label | 数值 AGENT_LABEL 环境变量。 未设时入会. |
此服务器使用自己的 HTTP 客户端( 没有邮戳 npm 包) , 因此 MCP 流量可识别为 postmark-mcp 在邮戳日志和辅助票中.
自动配置
所有邮件自动配置为:
TrackOpens: trueTrackLinks: "HtmlAndText"- 信件流来自
DEFAULT_MESSAGE_STREAM环境变量
处理错误
服务器执行全面的错误处理 :
- 验证所有必要的环境变量
- 光荣地关闭了SIGTERM和SIGINT
- API 调用的适当错误处理
- 日志中没有暴露敏感信息
- 一致错误消息格式化
日志
每个工具引用都会发出结构化的JSON行到 标准如果 LOG_FILE 设置,同一行也附在该文件后.
日志条目形状 :
{
"timestamp": "2026-06-16T20:34:01.123Z",
"tool": "sendEmail",
"clientName": "claude-desktop",
"clientVersion": "1.0",
"args": {
"to": "u**[email protected]",
"subject": "Meeting Reminder",
"textBody": "[312ch]"
},
"status": "ok",
"durationMs": 243
}
错误时, status 实值 "error" 还有一个 error 字段包含消息.
是什么没有记录:
| 数据 | 登录为 |
|---|---|
| 电子邮件地址 | 部分遮盖: u**[email protected] (一组) LOG_EMAIL_FULL=true 要禁用) |
htmlBody 编号 : textBody | 仅字节数 : [312ch] |
templateModel 和其他数据对象 | 只有关键名称 : { "_keys": ["name", "plan"] } |
批次 messages 编号 : recipients 数组 | 计数 + 收件人列表 : { "_count": 2, "_recipients": ["u**r@…", "a*b@…"] } |
字段匹配 password, (中文(简体) ), secret, (中文(简体) ), token, (中文(简体) ), apikey | [redacted] |
| 工具名称、期限、 MCP 客户端身份、 状态 | 全部记录 |
无结构的操作信息(启动,关闭,API连通)继续以纯文本与JSON工具日志一起被写入 stderr.
安全考虑
访问范围
此 MCP 服务器在配置的全部权限下行事 POSTMARK_SERVER_TOKEN它向任何连接的MCP客户端披露了24个工具——包括散装电子邮件发送、模板管理、网页浏览登记和压制列表编辑.
邮戳有 两种符号类型(单位:千美元) 服务器托肯 (在这里使用)和 账户托肯。既不支持子扫描权限——一个服务器Token允许完全访问它所属服务器上的所有操作。 限制接触的实际方法是结构性的:
- 创建一个 专用邮戳服务器 专用于MCP流量. 妥协仅限于服务器的数据和设置 而不是整个账户.
- 配置仅包含消息流的服务器,并验证它实际需要的发送者签名.
- 如果它被曝光, 则旋转它 .
工具爆炸半径
这24个工具包括若干高影响行动。 下文按风险水平分列:
| 类别 | 工具 |
|---|---|
| 破坏性 (不可逆转) | editTemplate, (中文(简体) ), deleteTemplate, (中文(简体) ), deleteWebhook, (中文(简体) ), deleteSuppressions |
| 发送 (外部电子邮件) | sendEmail, (中文(简体) ), sendEmailWithTemplate, (中文(简体) ), sendBatch, (中文(简体) ), sendBatchWithTemplate |
| 添加 (账户状态变化) | createTemplate, (中文(简体) ), createSuppressions, (中文(简体) ), createWebhook, (中文(简体) ), activateBounce |
| 只读 | 其余12个工具 |
所有工具都带有MCP说明(readOnlyHint, (中文(简体) ), destructiveHint, (中文(简体) ), idempotentHint). 尊重说明的MCP客户端——包括Cursor和Claude桌面——可以自动批准安全只读取的浏览(CreadOnlyHint: true),并将表面确认提示任何不是读取的事物:发送,模板编辑,压制更改,以及webhook管理. 永久删除额外携带数据的工具 destructiveHint: true 对客户来说,这些客户区分破坏性行为和单纯的变异行为.
Webhook URL 策略
createWebhook 在所有 URL 上执行 HTTPS 。 一旦一个 Webhook 注册, Postmark 将会将 POST 事件数据(打开,点击,回弹,垃圾邮件投诉)持续地输入到该 URL,直到webhook被删除. 为了防止一个被损坏或错误引导的工具呼叫 注册一个你无法控制的回调,设置 WEBHOOK_URL_ALLOWLIST 到 HTTPS 的前缀。 审计注册的网络用户 listWebhooks 或通过 邮戳仪表板。 。 。 .
为了保护您的网页接收器, 白名单 邮戳发布发送IP 在网络或防火墙级别上,所以只有Postmark可以将 POST 到您的端点.
快速注射风险
因为这个MCP服务器可以发送电子邮件和注册webhooks,所以它是一个潜在的目标 即时注射 ——当电子邮件、模板或寄存器中的恶意内容使AI用意想不到的论据来援引工具时。 上面的缓解(专用代号,您MCP客户端的工具批准), WEBHOOK_URL_ALLOWLIST如果发生这种情况,则降低爆炸半径。 从不配置在不可信环境下发送或破坏性工具的自动批准 .
关于Postmark API的更多信息,请访问 Postmark 的开发者文档。 。 。 .
许可证
麻省理工学院 活动模式