@activecampaign/postmark-mcp

中文文档
2.1.1发布于 2026/07/14MITES Module近 30 天下载 5880

通过 Claude 和 AI 助手发送邮件的官方 Postmark MCP 服务器

中文使用文档
文档目录57 节
  1. 特征
  2. 有用的文档
  3. 反馈
  4. 所需资源
  5. 安装(当地开发)
  6. 配置(当地开发)
  7. 需求
  8. 可选
  9. 光标快速安装
  10. MCP 客户端配置
  11. 使用 npx( 建议—— 不需要克隆)
  12. 使用本地克隆
  13. 工具
  14. 目录
  15. 电子邮件
  16. 发送电子邮件
  17. 用模板发送电子邮件
  18. 发送批次
  19. 用模板发送批次
  20. 模板
  21. 列表模板
  22. 获取模板
  23. 创建模板
  24. 编辑模板
  25. 删除模板
  26. 校验模板
  27. 信件
  28. 向外搜索消息
  29. 获取Message 细节
  30. 诊断
  31. 诊断交付
  32. 弹跳
  33. 搜索弹出
  34. 跳跃
  35. 激活弹出
  36. 抑制
  37. 禁止列表
  38. 创建抑制
  39. 删除禁止
  40. Stats 服务器( S)
  41. 获取交付数据
  42. 获取服务器信息
  43. 网络呼号
  44. 列表Webhooks
  45. 创建Webhook
  46. 删除网易
  47. 执行细节
  48. API 请求信头
  49. 自动配置
  50. 处理错误
  51. 日志
  52. 安全考虑
  53. 访问范围
  54. 工具爆炸半径
  55. Webhook URL 策略
  56. 快速注射风险
  57. 许可证

官方邮戳 MCP 服务器   NPM Version  MIT licensed

使用 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_FULLfalse设定为 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_TOKEN
  • DEFAULT_SENDER_EMAIL
  • DEFAULT_MESSAGE_STREAM (默认 : outbound(中文(简体) )

MCP 客户端配置

不管理本地副本而直接从 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 / 未知)
clickLocationHTML 对纯文本点击位置

默认摘要响应 :

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-ClientMCP主机应用程序的名称和版本(例如, claude-desktop/1.0),从MCP抓获 initialize 握个手 如果客户不提供这一信息,则予以承认.
X-Agent-Label数值 AGENT_LABEL 环境变量。 未设时入会.

此服务器使用自己的 HTTP 客户端( 没有邮戳 npm 包) , 因此 MCP 流量可识别为 postmark-mcp 在邮戳日志和辅助票中.

自动配置

所有邮件自动配置为:

  • TrackOpens: true
  • TrackLinks: "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 的开发者文档。 。 。 .

许可证

麻省理工学院 活动模式

版本与发布记录

@activecampaign/postmark-mcp 共发布 2 个版本,首次发布于 2025/11/27;过去 12 个月发布了 2 个版本。

版本发布日期距今
2.1.1latest2026/07/143 个月前
1.0.02025/11/2711 个月前

关于 @activecampaign/postmark-mcp 的常见问题

@activecampaign/postmark-mcp 是什么?

通过 Claude 和 AI 助手发送邮件的官方 Postmark MCP 服务器

如何安装 @activecampaign/postmark-mcp?

在项目目录运行 npm install @activecampaign/postmark-mcp,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 postmark-mcp,可以用 npx postmark-mcp 直接运行。

@activecampaign/postmark-mcp 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/activecampaign__postmark-mcp 是否存在。

@activecampaign/postmark-mcp 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@activecampaign/postmark-mcp 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@activecampaign/postmark-mcp 可以商用吗?

@activecampaign/postmark-mcp 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@activecampaign/postmark-mcp 的下载量有多少?

根据 npm 官方下载统计,@activecampaign/postmark-mcp 在 2026/10/05 – 2026/11/03 这 30 天内被下载 5,880 次,日均约 196 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@activecampaign/postmark-mcp 还在维护吗?

最新版本 2.1.1 发布于 2026/07/14(3 个月前);至今共发布 2 个版本,其中过去 12 个月发布了 2 个;首次发布于 2025/11/27。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。