Back to MCP directory
publicPublicdnsLocal runtime

postmark-mcp

一个基于Postmark的MCP服务器实现,用于通过Postmark服务发送邮件,支持模板邮件、邮件统计等功能。

article

README

🚀 Postmark MCP 服务器

Postmark MCP 服务器是一个用于 Postmark 电子邮件服务的 MCP 服务器实现。它可以通过简单的配置,借助 Postmark 服务实现邮件发送功能,同时具备完善的错误处理和安全的日志记录等特性。

🚀 快速开始

环境要求

  • Node.js(建议使用 v16 或更高版本)
  • 一个 Postmark 账户和服务器令牌

安装步骤

  1. 克隆仓库
git clone https://github.com/ActiveCampaign/postmark-mcp
cd postmark-mcp
  1. 安装依赖
npm install
  1. 配置环境变量
    • .env.example 复制为 .env
cp .env.example .env
- 编辑 `.env` 文件,填写你的 Postmark 凭证和设置。

| 变量 | 描述 | 是否必需 | | ---- | ---- | ---- | | POSTMARK_SERVER_TOKEN | 你的 Postmark 服务器 API 令牌 | 是 | | DEFAULT_SENDER_EMAIL | 默认发件人电子邮件地址 | 是 | | DEFAULT_MESSAGE_STREAM | Postmark 消息流(例如 'outbound') | 是 |

  1. 启动服务器
npm start

通过 Cursor 深度链接快速安装

你可以通过点击以下按钮,在 Cursor 中快速安装此 MCP 服务器:

⚠️ 重要提示

点击按钮后,你需要:

  1. 在 MCP 配置中设置 POSTMARK_SERVER_TOKEN
  2. 在 MCP 配置中设置 DEFAULT_SENDER_EMAIL
  3. 在 MCP 配置中设置 DEFAULT_MESSAGE_STREAM(默认为 "outbound")。

Claude 和 Cursor MCP 配置示例

{
  "mcpServers": {
    "Postmark": {
      "command": "your-node-path", // 节点路径
      "args": ["/Users/your-name/your-location/postmark-mcp/index.js"], // index.js 的实际路径
      "env": {
        "POSTMARK_SERVER_TOKEN": "your-postmark-server-token",
        "DEFAULT_SENDER_EMAIL": "your-default-sender-email",
        "DEFAULT_MESSAGE_STREAM": "your-default-message-stream"
      }
    }
  }
}

✨ 主要特性

  • 提供一个用于通过 Postmark 发送电子邮件的模型上下文协议(MCP)服务器。
  • 通过环境变量进行简单配置。
  • 具备完善的错误处理和优雅的关闭机制。
  • 采用安全的日志记录方式(不暴露敏感数据)。
  • 自动配置电子邮件跟踪。

💻 使用示例

工具参考

本节提供了 Postmark MCP 服务器工具的完整参考,包括每个工具的示例提示和预期有效负载。

目录

电子邮件管理工具

1. sendEmail

发送单封文本电子邮件。

示例提示

使用 Postmark 向 recipient@example.com 发送一封主题为 "会议提醒" 的电子邮件,邮件内容为 "别忘了我们明天下午 2 点的团队会议。请带上你的季度统计报告(也许还可以带些零食)。"

预期有效负载

{
  "to": "recipient@example.com",
  "subject": "会议提醒",
  "textBody": "别忘了我们明天下午 2 点的团队会议。请带上你的季度统计报告(也许还可以带些零食)。",
  "htmlBody": "电子邮件正文的 HTML 版本", // 可选
  "from": "sender@example.com", // 可选,如果未提供则使用 DEFAULT_SENDER_EMAIL
  "tag": "会议" // 可选
}

响应格式

电子邮件发送成功!
MessageID: message-id-here
To: recipient@example.com
Subject: 会议提醒
2. sendEmailWithTemplate

使用预定义模板发送电子邮件。

示例提示

使用 Postmark 模板别名 "welcome" 向 customer@example.com 发送一封电子邮件,并包含以下模板变量:
{
  "name": "John Doe",
  "product_name": "MyApp",
  "login_url": "https://myapp.com/login"
}

预期有效负载

{
  "to": "customer@example.com",
  "templateId": 12345, // 必须提供 templateId 或 templateAlias 之一,但不能同时提供
  "templateAlias": "welcome", // 必须提供 templateId 或 templateAlias 之一,但不能同时提供
  "templateModel": {
    "name": "John Doe",
    "product_name": "MyApp",
    "login_url": "https://myapp.com/login"
  },
  "from": "sender@example.com", // 可选,如果未提供则使用 DEFAULT_SENDER_EMAIL
  "tag": "入职" // 可选
}

响应格式

模板电子邮件发送成功!
MessageID: message-id-here
To: recipient@example.com
Template: template-id-or-alias-here

模板管理工具

3. listTemplates

列出所有可用模板。

示例提示

显示我们 Postmark 账户中所有可用的电子邮件模板列表。

响应格式

📋 找到 2 个模板:

• 基本模板
  - ID: 12345678
  - 别名: basic
  - 主题: 无

• 欢迎模板
  - ID: 02345679
  - 别名: welcome
  - 主题: 无

统计与跟踪工具

4. getDeliveryStats

检索电子邮件送达统计信息。

示例提示

显示我们从 2025 年 5 月 1 日到 2025 年 5 月 15 日标记为 "营销" 的 Postmark 电子邮件送达统计信息。

预期有效负载

{
  "tag": "营销", // 可选
  "fromDate": "2025-05-01", // 可选,YYYY-MM-DD 格式
  "toDate": "2025-05-15" // 可选,YYYY-MM-DD 格式
}

响应格式

电子邮件统计摘要

发送: 100 封电子邮件
打开率: 45.5% (45/99 封跟踪电子邮件)
点击率: 15.2% (15/99 个跟踪链接)

时间段: 2025-05-01 至 2025-05-15
标签: 营销

🔧 技术细节

自动配置

所有电子邮件自动配置以下内容:

  • TrackOpens: true
  • TrackLinks: "HtmlAndText"
  • 消息流来自 DEFAULT_MESSAGE_STREAM 环境变量

错误处理

服务器实现了完善的错误处理:

  • 验证所有必需的环境变量。
  • 在 SIGTERM 和 SIGINT 信号下优雅关闭。
  • 对 API 调用进行适当的错误处理。
  • 日志中不暴露敏感信息。
  • 统一错误消息格式。

日志记录

  • 使用适当的日志级别(正常操作使用 info,错误使用 error)。
  • 日志中排除敏感信息。
  • 提供清晰的操作状态和结果。

有关 Postmark API 的更多信息,请访问 Postmark 开发者文档

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client