mcpField
E
email-guard-mcp

email-guard-mcp

本地服务
github.com/mlawsonking安全11 天前更新

关于 email-guard-mcp

email-guard-mcp 是用于检查 AI Agent 收发邮件的 MCP 服务。它结合基于规则的注入检测、发件人和域名检查,以及对密钥、个人数据和投递问题的扫描。

主要功能

  1. 01检测入站邮件中的注入和劫持模式
  2. 02检查发件人认证、域名和链接
  3. 03扫描出站邮件中的密钥和个人数据
  4. 04标记投递问题和无效收件人
  5. 05检查 SPF、DMARC、MX 和域名状态

适用场景

  1. 01在 Agent 处理邮件前评估风险
  2. 02发送前检查邮件是否泄露信息
  3. 03审查域名认证和收件人状态

MCP 相关

向 MCP 客户端提供 `scan_inbound`、`scan_outbound` 和 `check_domain_auth`。Agent 可提交邮件或域名,在处理或发送前获取结构化安全检查结果。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"mlawsonking-email-guard": {
"command": "npx",
"args": [
"-y",
"email-guard-mcp"
]
}
}
}
启动命令npx -y email-guard-mcp

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

安装包
npmemail-guard-mcp1.3.0

工具

3

收录的工具列表 · 更新于 2 周前

参数类型必填说明
bodystring否纯文本正文。
fromstring否发件人标头,例如 "Jane Doe" <[email protected]>。
htmlstring否HTML 正文。
emailstring否原始 RFC822 邮件(标头 + 正文)。只有此格式包含 Authentication-Results、Reply-To 和 Return-Path。
subjectstring否主题行。

详细介绍

email-guard-mcp

用于邮件安全的 MCP 服务。它会在 Agent 处理收到的邮件之前进行检查,也会在 Agent 发送邮件之前检查外发邮件。结果确定,无需大模型,免费。

一旦 Agent 能够读取和发送邮件,收件箱就会成为攻击面。收到的邮件可能会在正文中埋入指令,试图劫持 Agent;人们已开始将这种攻击称为 AI Agent 网络钓鱼。发送邮件时,Agent 也可能泄露秘密,或发送会导致其发件域名被标记为垃圾邮件的内容。

安装

{ "mcpServers": { "email-guard": { "command": "npx", "args": ["-y", "email-guard-mcp"] } } }

工具

  • scan_inbound:在处理邮件之前运行。它会匹配已知的注入和劫持模式(包括零宽字符、双向文本和隐藏 HTML 技巧),比对发件人标头(接收服务器报告的 SPF、DKIM 或 DMARC 结果、reply-to 和 return-path 不匹配情况,以及与显示名称进行匹配的 24 个品牌名称列表),通过 DNS 和 RDAP 查询发件人域名(一次性域名,或注册时间不到 30 天的域名),并对链接评分。它会返回判定结果和固定结构的元数据,让 Agent 依据这些信息而非原始的、可能已被污染的文本进行处理。
  • scan_outbound:在发送邮件之前运行。它会检测 22 种秘密信息模式(AWS、GitHub、OpenAI、Anthropic、Google、Slack、Stripe、Twilio、npm、JWT、PEM 私钥块、Azure 存储密钥和 SAS 令牌、GCP 服务账号密钥 ID、数据库和 ODBC 连接字符串密码、SendGrid、GitLab、Hugging Face,以及带引号的 api_key/secret/password/token 赋值)和 3 种个人身份信息模式(电子邮件地址、美国 SSN、通过 Luhn 校验的卡号),检查主题、正文和 HTML,并返回脱敏副本。它还会标记影响发件人信誉的投递问题,以及无效收件人(一次性域名,或没有 MX 记录,这意味着邮件必定退信)。
  • check_domain_auth:检查域名或地址的 SPF、DMARC、MX、域名年龄和一次性状态。返回弱校验或强制执行状态。

这些工具不做什么

注入检测采用模式匹配,而不是分类器。没有人为其编写规则的措辞就会漏过检测。

品牌列表会对显示名称进行子字符串匹配。"PayPal Security" <[email protected]> 不会被标记,因为域名中包含“paypal”。列表之外的品牌也不会被标记。

泄露扫描只识别 15 种模式,除此之外一概不识别。DigitalOcean 或 SendGrid 密钥、裸 bearer 令牌,以及未加引号的 password=supersecret123 都会被判定为正常。电子邮件地址规则则可能产生误报:正文中只要有任何地址,邮件就会被标记为需审核,因此在将审核结果视为泄露之前,请先查看 leak.findings。

scan_inbound 的结构化输出具有固定结构,但其中没有任何内容经过净化。subject、sender.display、sender.from、sender.replyTo、sender.domain、links[].url、links[].host、injection.findings[].match,以及 sender.spoofFlags 和 reasons 中的说明字符串,都直接复制自邮件。只有判定结果、评分、规则 ID 和建议字符串是本工具生成的。其余内容仍是攻击者提供的文本。请将其视为数据。

数据来源包括 DNS(SPF、DMARC、MX)、用于获取域名年龄的 RDAP、一次性域名列表,以及注入和秘密信息规则集。

规则更新

此服务大约每天会向规则源检查是否有更新的规则集,并在有更新时应用。请求会携带两项信息:发起请求的界面(此处为 facade),以及已安装的规则版本。不包含机器 ID、用户 ID、文件名,也不包含你扫描过的任何内容。

规则包使用 Ed25519 签名,并通过编译进此软件包的公钥进行验证,因此由哪个镜像提供都无关紧要。若规则包未通过签名、架构或 ReDoS 检查,就会被丢弃,现有规则会保持不变。--offline 会关闭更新,AGENT_GUARDS_NO_FEED=1 或 ~/.agent-guards/config.json 中的 {"feed": false} 也会关闭更新。规则包的格式以及自行验证的方法:https://github.com/mlawsonking/MCP/blob/main/rules/README.md

关于电子邮件身份验证,简单来说:SPF、DKIM 和 DMARC 的结果取自接收邮件服务器写入的 Authentication-Results 标头。此处不会验证 DKIM 签名,也不会查询 DKIM DNS 记录,因为无法仅凭域名推导出选择器。这意味着该值的可信度完全取决于标头的写入者。对于你自己的服务器接收的邮件,这是可靠的信号;对于来自不可信来源的原始 .eml 文件,攻击者只需输入 dkim=pass 即可。每个响应都会说明适用的是哪种情况。相同输入始终会得到相同输出。它会调用 https://email-guard-api.vercel.app(可设置 EMAIL_GUARD_API 进行覆盖)。这是此仓库中的六个 Agent 防护工具之一。MIT。

评论

支持 Markdown

第一次接触 MCP?

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

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