mcpField
V
vaemail

vaemail

本地服务
vaemail.fr通信协作04 天前更新

关于 vaemail

VaEmail 为需要发送邮件及管理投递的 Agent 提供 MCP 服务和命令行工具,涵盖域名认证、投递跟踪与诊断,并通过幂等键和 API 密钥权限限制控制操作。

主要功能

  1. 01发送事务性邮件
  2. 02准备并确认邮件简报
  3. 03认证发件域名
  4. 04跟踪邮件并诊断投递
  5. 05管理联系人、退信和配额
  6. 06审计 API 密钥操作

适用场景

  1. 01由 Agent 发送事务性消息
  2. 02发送后检查投递事件
  3. 03设置并验证发件域名
  4. 04使用沙盒 API 密钥测试集成

MCP 相关

MCP 服务向 MCP 客户端提供邮件、联系人、域名、投递、用量和审计操作。服务通过 stdio 运行,并使用 VAEMAIL_API_KEY 进行认证。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"vaemail-vaemail": {
"command": "npx",
"args": [
"-y",
"vaemail"
],
"env": {
"VAEMAIL_API_KEY": "<VAEMAIL_API_KEY>",
"VAEMAIL_BASE_URL": "<VAEMAIL_BASE_URL>"
}
}
}
}
启动命令npx -y vaemail
需要配置的环境变量
VAEMAIL_API_KEY密钥VaEmail API key (created in the dashboard, ideally scoped and capped for this agent). Required for every tool except vaemail_capabilities.
VAEMAIL_BASE_URLAPI base URL. Default https://app.vaemail.fr.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmvaemail1.2.0

工具

17

收录的工具列表 · 更新于 4 天前

参数类型必填说明
listestring是发送对象:列表名称(允许近似匹配)或编号。
quandstring否“现在”,或未来的日期“2026-09-17 10:00”(巴黎时间)。缺省 = 草稿,不会发送。
sujetstring是邮件主题,即读者看到的内容。
apercustring否收件箱中显示在主题旁边的预览文本。
contenustring是邮件内容:完整 HTML,或纯文本(会自动分段)。
test_versstring否在正式发送或安排发送之前接收测试邮件的地址。
nom_internestring否管理后台中的营销活动名称。默认使用主题。
liste_excluestring否不应收到此邮件的联系人列表(名称或编号)。

详细介绍

VaEmail — 面向 AI Agent 的电子邮件基础设施

已在 mcpservers.org 收录

适用于 VaEmail 的 MCP 服务和 CLI。让 Agent 能够 发送电子邮件、验证发信域名、跟踪投递情况并诊断 送达率问题,无需人工查看仪表板。

欧洲基础设施:服务器位于德国,通过 Amazon SES Europe 发送邮件。

安装

# Claude Code
claude mcp add vaemail --env VAEMAIL_API_KEY=swm_your_key -- npx -y vaemail mcp

# Any MCP client
npx -y vaemail mcp

或者使用配置块:

{
  "mcpServers": {
    "vaemail": {
      "command": "npx",
      "args": ["-y", "vaemail", "mcp"],
      "env": { "VAEMAIL_API_KEY": "swm_your_key" }
    }
  }
}

GET /api/v1/me 会识别租户、密钥前缀、作用域和 mode,但不会返回密钥。联系人操作接受租户内唯一的 external_reference,用于 CRM 标识符和插入或更新操作。

集成测试请使用沙盒 API 密钥:读取操作正常执行,而每项写入都会在始终回滚的事务中验证。不会生成任何行、任务、电子邮件、SMS、webhook 或出站 HTTP 调用,也不会存储幂等键。沙盒写入响应会在 JSON 对象中包含 X-VaEmail-Sandbox: 1 和 sandbox: true。沙盒响应绝不能作为电子邮件已送达的证据。

检查是否已正确配置:

npx vaemail init

工具

工具功能
vaemail_preparer_envoi准备新闻简报草稿,解析邮件列表,可选择发送测试邮件,并返回摘要和一次性确认令牌。绝不会发送或安排发送。
vaemail_confirmer_envoi在获得明确的人工确认后,使用令牌执行已安排或立即发送的新闻简报。此操作具有破坏性。
vaemail_ou_en_est_ma_campagne用简明语句说明营销活动进度:已安排、发送中、已发送、打开次数、点击次数。
vaemail_qui_est_abonne按文件夹列出订阅者数量,或列出某个地址所在的邮件列表及其状态。
vaemail_importer_contacts将联系人添加到邮件列表(若不存在则创建)。绝不会重新订阅已取消订阅的地址。
vaemail_capabilities查看服务支持的功能。无需 API 密钥。
vaemail_send_email将事务性电子邮件加入队列并返回其 ID。
vaemail_validate_email试运行:检查邮件是否会发出,以及哪些因素会阻止发送。
vaemail_get_message查看一封邮件的投递状态和所有事件。
vaemail_list_messages查看最近的邮件,可按状态、标签或收件人筛选。
vaemail_list_domains查看发信域名及实时 SPF、DKIM 和 DMARC 状态。
vaemail_create_domain声明一个域名,并返回要发布的 DNS 记录。
vaemail_verify_domain重新读取 DNS,并报告已验证的内容。
vaemail_dns_requirements查看已声明域名仍需配置的记录。
vaemail_diagnose_deliverability诊断邮件送达不佳的原因,并提供解决问题的操作。
vaemail_list_bounces查看已被排除在发送之外的地址及原因。
vaemail_get_usage查看配额、密钥的每日上限以及剩余量。
vaemail_get_audit_log查看此密钥执行过的操作,以便准确报告。

vaemail_confirmer_envoi 和 vaemail_send_email 均标记为 destructiveHint: true:向外部发送邮件无法撤销。新闻简报确认保护适用于立即发送;草稿和已安排的营销活动仍保持原有行为。

旨在防止的问题

Agent 的失败方式与人不同。它会重试,不会查看仪表板,还会根据 200 报告成功。API 围绕这一点设计:

  • 发送请求已受理,不代表已送达。 vaemail_send_email 返回 202 和一个 ID。只有 vaemail_get_message 才能说明邮件的最终状态。工具描述中明确说明了这一点,因此 Agent 不会宣称邮件已送达,而它其实无从知晓。
  • 重试不会造成重复发送。 传入 idempotency_key,重复调用会在 24 小时内重放首次响应,而不是再次发送。
  • 错误会说明该怎么做。 每个失败都会包含稳定的 code、是否可重试,以及纠正措施和执行该操作的端点。
  • 密钥权限有上限。 包括作用域、每日发送上限、每封邮件的收件人数量上限,以及发件人域名允许列表。Agent 的操作不会超出密钥权限。
  • 每次调用都会记录日志。 使用了哪个密钥、执行了哪个操作、传入了哪些参数、结果是什么——不包括邮件正文。自主运行,但有据可查。
  • 需要人工操作的步骤会明确标出。 发布 DNS 记录就是其中之一。如果记录的值仍包含占位符,则会标记为 publishable: false,因为发布它会破坏域名的身份验证。

CLI

vaemail init                          # check config, print the MCP snippet
vaemail capabilities                  # what the service can do (no key needed)
vaemail send --to [email protected] --subject Hi --html '<p>Hello</p>'
vaemail status 42                     # delivery status of a message
vaemail domains:add exemple.fr        # declare a domain, print DNS records
vaemail doctor                        # why is my email not arriving?
vaemail usage                         # quota and remaining allowance
vaemail mcp                           # run the MCP server on stdio

在任何命令中添加 --json,即可获取机器可读的输出。

将其用作库

MCP 服务和 CLI 使用的同一客户端也已导出,因此应用程序可以直接调用 VaEmail。无需依赖项。

import { VaEmail } from 'vaemail';

const client = new VaEmail({ apiKey: process.env.VAEMAIL_API_KEY });

await client.send(
  {
    to: '[email protected]',
    subject: 'Your order is on its way',
    html: '<p>Tracking number: 1Z999</p>',
  },
  'order-4711', // idempotency key: safe to replay for 24 hours
);

错误会说明下一步该怎么做,而不只是返回状态码:

try {
  await client.send({ to: '[email protected]' });
} catch (error) {
  error.code;        // DOMAIN_NOT_VERIFIED
  error.retryable;   // false
  error.pourAgent(); // reason, corrective action, whether to retry
}

此外还提供:capabilities()、health()、validate()、getMessage()、 listMessages()、listDomains()、addDomain()、verifyDomain()、 dnsRecords()、diagnoseDeliverability()、listSuppressions()、 removeSuppression()、usage()、auditLogs()。

连接 Stripe

使用 rk_live_ 或 rk_test_ Stripe 受限密钥,并授予 Customers 读取权限和 Webhook Endpoints 写入权限。sk_ 秘密密钥会被拒绝。VaEmail 不会返回任何 Stripe 密钥:连接状态仅显示密钥和 webhook token 的最后四个字符。

REST 路由:

  • GET /api/v1/integrations/stripe:读取连接状态;
  • POST /api/v1/integrations/stripe:创建或协调 webhook,并传入 {"api_key":"rk_live_..."},同时使用 settings.write 作用域;
  • DELETE /api/v1/integrations/stripe:删除 Stripe webhook,然后删除本地连接。 此操作不可撤销,必须由人工明确确认。

Stripe 会调用 POST /api/v1/webhooks/stripe/{token}。此公共路由会验证 Stripe-Signature,不会接收 VaEmail API 密钥。

支持的事件和自动化触发器:

Stripe 事件VaEmail 触发器
invoice.payment_failedstripe_payment_failed(payment_failed)
customer.subscription.createdstripe_subscription_created(subscription_created)
customer.subscription.deletedstripe_subscription_deleted(subscription_deleted)
checkout.session.completedstripe_checkout_completed(checkout_completed)

也提供具有相同功能的 Python SDK:pip install vaemail (https://github.com/vaemail/vaemail-python)。

环境变量

变量含义
VAEMAIL_API_KEY账户 API 密钥。在仪表板的“API 密钥”下创建。
VAEMAIL_BASE_URLAPI 基础 URL。默认为 https://app.vaemail.fr。

另有以下资源

技能和示例

  • Agent 技能(Agent 在首次调用前应遵循的规则):npx skills add vaemail/skills,源码:https://github.com/vaemail/skills
  • curl、Node、Python、Claude Code、Codex、OpenAI Agents、LangChain、CrewAI 和 n8n 的示例:https://github.com/vaemail/examples
  • 注册表条目:io.github.vaemail/vaemail(参见 server.json)

依赖项

无。内置 fetch 需要 Node 18+,除此之外别无所需——Agent 自行安装的软件包不应附带一整套依赖树。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。