mcpField
S
SaaS Alerts MCP

SaaS Alerts MCP

本地服务
github.com/servosity安全64今天更新

关于 SaaS Alerts MCP

SaaS Alerts MCP 是面向 MSP 团队的 CLI 和 MCP 服务,用于处理多个客户租户的警报与 Respond 工作流。它覆盖 SaaS Alerts 的四组 API,并提供跨客户分流、按期限排列的审批队列和先预览再执行的变更。

主要功能

  1. 01访问 SaaS Alerts 的四组 API
  2. 02跨客户警报分流
  3. 03按截止时间排列 Respond 审批
  4. 04使用本地 SQLite 进行租户查询
  5. 05确认前预览变更

适用场景

  1. 01优先处理各客户的严重警报
  2. 02查找即将过期的 Respond 触发项
  3. 03调查多个租户中的重复 IP 活动
  4. 04预览账户隔离或触发项决策

MCP 相关

MCP 服务向 MCP 客户端提供 SaaS Alerts API 操作,包括警报、Respond、抑制规则和 Webhook。README 建议使用默认 stdio 传输,并避免在当前版本启用 HTTP 模式。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbsaas-alerts-mcp.mcpb0.1.3

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

原文在翻译后有更新,译文可能不是最新。

SaaS Alerts + AI——适用于 ChatGPT、Claude、GitHub Copilot、Microsoft 365 Copilot、Gemini,以及任何支持 MCP 的 Agent

非官方项目。由社区构建的 Claude Code Skill 和 SaaS Alerts API 的 MCP 服务。与 Kaseya US LLC 无关联,也未获得其认可或赞助。

SaaS Alerts 演示——动画预览

▶ 观看 30 秒演示——演示数据为模拟数据;展示的每条命令都可在实际 CLI 中使用。

通过一个 CLI 和 MCP 服务接入 SaaS Alerts 的全部四种 API(Reports、Manage、Respond 和 Webhooks),还提供跨客户警报分类、按截止时间排序的 Respond 审批队列,以及预览优先的账户遏制功能。可与您已在使用的 AI 配合使用——ChatGPT(Plus/Pro+)、Claude Desktop、Codex、Claude Code、Claude Cowork 和 GitHub Copilot——也可通过远程方式接入 Microsoft 365 Copilot / Copilot Studio 和 Google Gemini。免费、开源,可在笔记本电脑上运行。专为 MSP 所有者打造。无需编写代码。

适用于您的 Agent

MSP 所有者实际使用的六种 Agent(可自行安装,现已可用):

您的 AI Agent如何安装 SaaS Alerts 技能
Claude Desktop运行安装程序,然后前往 Settings > Extensions 注册 saas-alerts-mcp(无需编辑 JSON)。
ChatGPT(付费方案)运行安装程序,通过 HTTPS 公开 saas-alerts-mcp,并将其注册为 Developer Mode 连接器。
Codex CLI粘贴下方的安装提示词。
Claude Code粘贴下方的安装提示词。
Claude Cowork粘贴下方的安装提示词。
GitHub Copilot(VS Code)运行安装程序,在 mcp.json 的 servers 键下添加 saas-alerts-mcp,然后选择 Agent 模式。

对于 ChatGPT,请运行 saas-alerts-mcp --transport http,并通过 HTTPS 将其公开——无需桥接软件包。请参阅 mcp-install.md。

也适用于 Microsoft 和 Google 技术栈

这两种方案的安装基础都很广,但需要说明:它们属于远程 / 企业级接入方式,而不是您刚安装的本地二进制程序。

Agent所需操作
Microsoft 365 Copilot / Copilot Studio无法自行安装。 通过 HTTPS 托管 saas-alerts-mcp,然后将其接入 Copilot Studio(Tools > Add a tool > Model Context Protocol > Server URL)或声明式 Agent。需要 Copilot Studio 许可证和租户管理员权限。请参阅 mcp-install.md。
Google GeminiGemini CLI 在本地运行——与 Claude Code 相同。Gemini app 通过远程方式运行——与 ChatGPT 一样使用 HTTPS 接入。请参阅 mcp-install.md。

原生支持技能的 Agent(也适用): Hermes 和 OpenClaw 可直接读取此技能的 SKILL.md,并且支持 MCP——请参阅下方对应的安装章节。也可通过 MCP 与 Cursor、Windsurf、Cline、Continue.dev 和 Zed 配合使用。各工具的完整接入说明:docs/which-agent.md。

要使用多个 Agent? 只需一条命令,即可在所有 51 种以上受支持的 Agent 中完成安装:npx skills add Servosity/msp-skills@latest(需要 Node.js,然后运行对应技能的安装程序来安装 CLI/MCP 二进制程序)。请参阅 docs/which-agent.md。

60 秒内完成安装

Claude Desktop 最快捷方式 - 一键安装 .mcpb

下载 SaaS Alerts MCP(.mcpb) - 然后打开 Claude Desktop > Settings > Extensions 并选择该文件。一键完成,无需 JSON,也无需使用 shell。(在发布页面浏览所有 SaaS Alerts 版本。)

更喜欢 Claude Code 插件?添加一次市场,然后安装即可立即使用,无需列出目录:

/plugin marketplace add Servosity/msp-skills
/plugin install saas-alerts@msp-skills
方式 A - 将一条提示词粘贴到 AI Agent 中(推荐)

将以下内容复制到 Claude Code、Codex CLI 或 Claude Cowork:

在此 Agent 工作区中安装来自 Servosity/msp-skills 的 SaaS Alerts Skill 和 MCP 服务。如果此工作区使用 POSIX shell(macOS、Linux、WSL 或 Bash),请运行 bash <(curl -fsSL https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/saas-alerts/install.sh)。如果使用 Windows PowerShell,请运行 iwr -useb https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/saas-alerts/install.ps1 | iex。然后按照 README 进行身份验证,并运行 saas-alerts-cli --help 进行探索。

同一条提示词适用于任何能够运行 shell 的 Agent。

方式 B - 自行运行安装程序

Windows(PowerShell):

iwr -useb https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/saas-alerts/install.ps1 | iex

macOS / Linux:

bash <(curl -fsSL https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/saas-alerts/install.sh)

安装程序会将 saas-alerts-cli(CLI)和 saas-alerts-mcp(MCP 服务)放入用户的 bin 路径。Claude Code、Codex 和 Cowork 会通过此目录中的 SKILL.md 发现 Skill。

验证:

saas-alerts-cli --version
升级到最新版本

安装程序始终获取当前版本 - 重新运行即可升级:

macOS / Linux:

bash <(curl -fsSL https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/saas-alerts/install.sh)

Windows(PowerShell):

iwr -useb https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/saas-alerts/install.ps1 | iex

Claude Desktop .mcpb 用户:下载最新的 .mcpb(位于本节顶部),然后在 Settings > Extensions 中重新选择。Claude Code 插件用户:/plugin update saas-alerts@msp-skills。

添加到 Claude Desktop、GitHub Copilot、Gemini CLI、Microsoft 365 Copilot 或其他 MCP 客户端

安装程序运行后,请参阅 mcp-install.md 和 docs/which-agent.md,了解各 Agent 的连接方式 - 每个 Agent 各有一个章节,其中包括 GitHub Copilot 的 servers 键,以及远程 Microsoft 365 Copilot / Copilot Studio 的连接方式。Claude Desktop 的 Settings > Extensions 面板是最简单的方式;面向偏好编辑 JSON 的用户的 MCP 配置块记录在 mcp-install.md 中。

为 Hermes 安装

在 Hermes CLI 中:

hermes skills install servosity/msp-skills/skills/saas-alerts --force

在 Hermes 聊天会话中:

/skills install servosity/msp-skills/skills/saas-alerts --force

Hermes 原生支持 MCP,因此也可以直接使用 saas-alerts-mcp 服务 - 安装方式和环境变量相同。

为 OpenClaw 安装

告诉你的 OpenClaw Agent(复制以下内容):

从 https://github.com/servosity/msp-skills/tree/main/skills/saas-alerts 安装 saas-alerts skill。该 skill 说明了如何通过 openclaw: frontmatter 块安装其必需的 CLI(saas-alerts-cli)。

OpenClaw 尚未普遍开放;frontmatter 配置已预先提供,OpenClaw 一经发布便会立即启用。

身份验证

从 SaaS Alerts 控制面板设置合作伙伴 API 密钥(Settings > API、GET APIKEY;SaaS Alerts 只会在离开页面前显示密钥,因此请及时复制):

SAAS_ALERTS_API_KEY=<value> saas-alerts-cli doctor

在 Windows(PowerShell)上:

$env:SAAS_ALERTS_API_KEY = "<value>"
saas-alerts-cli doctor

doctor 会检查配置、路径和 API 连通性,并将密钥发送到 Reports API 的合作伙伴配置文件端点,因此被拒绝的密钥会显示为 Credentials: invalid 行。即使出现此情况,它也会以 0 退出,因此脚本应添加 --fail-on error。Respond 访问令牌会在首次调用 Respond 时生成,而不是由 doctor 生成;saas-alerts-cli respond status 可确认 Respond 端到端运行正常。

此技能的作用

MSP 常问的问题命令
过去 24 小时内所有客户触发了哪些告警?先看严重告警。saas-alerts-cli triage --since 24h --min-severity medium
哪些 Respond 触发器最早会过期或自动忽略?saas-alerts-cli rule-triggers queue --expiring-within 2h
是否有同一个 IP 地址正在访问我的两个或更多客户?saas-alerts-cli cross-tenant --by ip --since 24h --min-customers 2
查看某个账户的全部信息:事件、国家/地区跳转、Respond 触发器、设备saas-alerts-cli investigate "[email protected]" --since 7d
哪些客户已停止上报、断开了 Respond 连接,或没有 Respond 规则?saas-alerts-cli coverage --silent 72h
为什么 SaaS Alerts 工单不再到达?Webhook 是否已禁用?saas-alerts-cli subscriptions health
拒绝此嘈杂规则下所有待处理的触发器(先预览)saas-alerts-cli rule-triggers decide --decision reject --rule <rule-id> --remarks "false positive"
此客户有哪些收件箱规则?saas-alerts-cli reports mailbox-rules --organization-ids <customer-id>

完整命令参考:guide.md。AI Agent 操作约定(--agent、--dry-run,以及修改前何时需要确认)请参阅 AGENTS.md。

有何不同

大多数 SaaS Alerts 集成和 MCP 服务会将每个问题代理为实时 API 调用。查询单条记录时这样做没问题,但规模扩大后就不行了;比如你要问“我的 80 个客户中,昨夜哪些客户出现了严重告警?是否有同一个 IP 与多个客户有关?”

此技能会将客户、事件、用户和 Respond 触发器同步到本地 SQLite 存储,因此 triage、cross-tenant、investigate 和 coverage 可以通过一次本地查询回答所有客户相关的问题;如果数据从未同步过,它会显示 synced: false,而不是返回空结果、让人误以为一切正常。它使用一个合作伙伴密钥覆盖全部四个 SaaS Alerts API:自行获取 Respond 访问令牌(Respond 对仅携带 API 密钥的请求会返回“Only secure origins are allowed”),通过 rule-triggers queue 按截止时间处理 Respond 队列;在你添加 --confirm 之前,rule-triggers decide 和 contain 会预览每项将要执行的更改。

WYRE-AI 的 saas-alerts-mcp 也为其 msp-claude-plugins 市场中的 SaaS Alerts 插件提供支持。它将 SaaS Alerts External Partner API 封装为 30 个工具,涵盖客户、事件、用户、设备、计费、定时报告和合作伙伴设置,但不包含 Respond、抑制或 Webhook 工具;它可以使用你自己的密钥在本地运行,也可以在其插件中使用时通过 WYRE 托管的 Conduit 网关运行。此技能则额外支持 Respond、抑制和 Webhook。它是 SaaS Alerts 仪表板的补充,而非替代品:仪表板仍用于配置监控、查看告警和设置 Respond。

它解决的痛点

SaaS Alerts 的 Respond 模块与时间赛跑。Respond API 文档说明,手动审批“会在规则再次触发或 12 小时后自动过期,以先到者为准”;SaaS Alerts 帮助中心的分析 Respond 触发还指出,修复失败后每 15 分钟会提醒一次,并在第三次提醒后自动忽略。在众多客户中,最难的是判断哪项决策会最先失效。试图提供帮助的脚本还会碰到另一项凭据要求:Respond 需要使用合作伙伴密钥签发的短期访问令牌,没有令牌的调用会失败并返回“Only secure origins are allowed”。在 r/msp 主题帖“Kaseya Saas Alerts API”中,一家 MSP 每次调用都遇到这个错误;另一人回复说自己“几周来一直在为同一个问题伤透脑筋”,怀疑是 CORS 问题,而该主题帖最终给出的解决方法是先向身份验证端点发送 POST 请求,再发送访问令牌。警报数量也确实不少:SaaS Alerts 的 MSP 用户在 G2 上表示,在配置调整到位前会收到大量通知,而且随着时间推移,你会逐渐学会过滤误报。

  • saas-alerts-cli triage --since 24h - 汇总所有客户的警报,按严重程度排序,并按客户、账户和事件类型分组。
  • saas-alerts-cli rule-triggers queue --expiring-within 2h - 按剩余过期时间或自动忽略时间列出待处理和失败的 Respond 触发事件,并显示审批后将执行的操作。
  • saas-alerts-cli cross-tenant --by ip - 查找命中两个或更多客户的源地址、网络或国家,并排除各客户自己的白名单。
  • saas-alerts-cli coverage - 查找已无活动的客户、Respond 连接已丢失或没有 Respond 规则的客户。
  • saas-alerts-cli contain "[email protected]" - 先预览,再为一个 Microsoft 365 账户阻止登录、使会话过期并重置密码。

更长的说明请参阅 pain-point.md。

常见问题

这能与 ChatGPT 配合使用吗?

可以,适用于 Plus、Pro、Team、Business、Enterprise 和 Education 套餐(Free 套餐目前尚未开放 Developer Mode)。ChatGPT 通过 HTTPS 连接 远程 MCP 服务,而不是本地 stdio 二进制程序。SaaS Alerts MCP 服务在本地运行,但原生支持 HTTP:启动时使用 saas-alerts-mcp --transport http 并设置 SAAS_ALERTS_MCP_HTTP_TOKEN(默认提供 http://127.0.0.1:7777/mcp,并要求在 bearer 标头中提供该令牌),再将其置于 HTTPS 网关之后;ChatGPT 可通过 OAuth 登录该网关,网关则会添加该 bearer 标头(ChatGPT 连接器不会发送固定令牌)。无需使用桥接包。请参阅 mcp-install.md 中的分步说明。

这能与 Codex、Cursor、Windsurf、Cline、Copilot 或 Gemini 配合使用吗?

可以——它们都支持 MCP。跨工具安装命令见上方的对照表,深入说明见 docs/which-agent.md。

我需要懂编程吗?

不需要。推荐的安装方式是将一句话粘贴到 Claude Code 或 Codex 中——你的 Agent 会读取 SKILL.md 并完成安装。备用方式是按操作系统使用一行安装命令(bash 或 PowerShell)。这两种方式都不需要编写代码。你只需输入一次 SaaS Alerts 凭据。

我的 SaaS Alerts 数据安全吗?

你的数据会保留在自己的设备上。命令行工具和 MCP 服务都是本地二进制文件。SQLite 存储位于你用户帐户下的目录中,其中包含客户的帐户电子邮件地址、登录 IP 和事件详情,因此请像对待这些数据的其他副本一样妥善处理。每个 webhook 订阅的投递令牌在打印、缓存或存储之前都会被隐藏。AI Agent 只能看到命令行工具返回的内容——通常是查询结果,而不是原始批量数据。凭据从你的环境或 Agent 配置中读取;MSP Skills 绝不会将其打包进此仓库或传输到任何地方。

在哪里获取 SaaS Alerts API 密钥?

在 SaaS Alerts 控制面板中,打开 Settings > API,然后点击 GET APIKEY。SaaS Alerts 只会在你离开该页面之前显示密钥,因此请及时复制。将其设置为 SAAS_ALERTS_API_KEY。这个合作伙伴密钥可用于 Reports、Manage 和 Webhooks API;命令行工具会在首次使用时用它换取 Respond 访问令牌,因此无需再粘贴第二个凭据。如果每次调用都返回 401 Access denied,请联系 SaaS Alerts 支持,为你的帐户启用 REST API。

为什么 Respond API 会返回“Only secure origins are allowed”?

当调用携带 api_key 却没有访问令牌时,Respond 就会返回此错误。Respond 需要使用合作伙伴密钥,通过 POST /respondApi/api/v1/auth 获取一个短期令牌。此连接器会在首次调用 Respond 时获取令牌,在每次 Respond 请求中发送该令牌,仅在该进程的内存中保留令牌;如果 Respond 拒绝令牌,则会重新获取一次。

AI 能自行封锁用户或批准 Respond 操作吗?

只有在你允许的情况下才可以。默认情况下,contain、rule-triggers decide 和 subscriptions health --reenable 都会先预览,不会做出任何更改,除非你添加 --confirm。生成的命令(rule-triggers approve、response-actions execute、customers delete 等)一旦运行就会发送请求,因此请使用 --dry-run 预览;该选项不会发送任何内容。通过 MCP 使用时,如果某个 Agent 只能读取数据,请设置 SAAS_ALERTS_MCP_READ_ONLY=1:此时 saas-alerts_execute 只会运行 GET 端点,且三个工作流写入命令都会拒绝 --confirm。

Respond 触发器会过期吗?

会。Respond API 文档说明,手动批准会在 12 小时后或规则再次触发时过期,以较早者为准;SaaS Alerts 帮助中心则说明,修复失败后,第三次 15 分钟提醒发出后会自动忽略该修复。rule-triggers queue 会按此期限列出待处理和失败的触发器,以及批准后将执行的操作;除非传入 --include-expired,否则 rule-triggers decide 会跳过已过期或已被取代的触发器。API 并未说明“再次触发”是指任何地方,还是同一客户,因此命令行工具只有在同一组织和帐户中,同一规则有更新的触发器时,才会将该触发器视为已被取代:它可能会显示 Respond 已经使某个触发器过期(此时 Respond 会拒绝批准),但绝不会隐藏仍有效的触发器。

为什么分诊结果显示 synced: false?

triage、investigate、cross-tenant 和 coverage 都会读取本地存储,因此需要先同步,例如 saas-alerts-cli sync --resources customers,events --since 7d。如果所需数据从未同步、上一次事件同步未完成(自动刷新会逐页获取数据),或者你查询的时间范围早于已同步事件中最早的时间,它们就会显示 synced: false,并附上说明如何修复的备注。使用 --param 缩小范围的同步会存储其行数据,但不会被视为完整同步。SaaS Alerts 可能会在事件发生一段时间后才记录该事件,因此每次显式执行 sync --resources events 时,都会重新读取上一次显式同步之前 6 小时内的数据;如果某个事件的记录时间晚于该范围,则需使用更宽的 --since 执行同步后才能看到。绝不会将空结果或部分结果显示为一切正常,并且 --select 始终会保留 synced 和 note 字段。

是否支持 Google Workspace 账号?

不支持。Respond 响应操作仅针对 Microsoft 365 运行,因此 contain 会拒绝 Google Workspace 或其他非 Microsoft 账号;如果某个邮箱匹配到多个 Microsoft 365 账号,也会停止操作。API 不会为操作返回任务 ID,因此 contain 会尽力报告每个任务的匹配结果,并始终标记为 verified: false;请在 Microsoft 365 管理中心检查账号。

是否已在实际运行的 SaaS Alerts 租户上测试?

尚未。每个端点都对应 SaaS Alerts 发布的 API 规范;Respond 令牌交换也已在未提供密钥的情况下通过实际 API 验证,但还没有合作伙伴使用真实数据运行过。以下两点仍待在实际租户上验证:部分同步请求被拒绝时,会报告为 sync_warning,因此即使有些页面被拒绝,sync --strict 仍可能以 0 退出;Unify 设备列表页面会像 Manage 规范所述那样,使用响应中 meta.sort 的 searchAfter 参数,但如果租户返回的只是普通列表,那么设备超过 1,000 台的合作伙伴就无法完整同步(sync 和 devices list --all 随后会提示结果已截断,而不会报告完整)。欢迎运行并告诉我们你的发现。

它能取代 SaaS Alerts 仪表板吗?

不能。配置监控、查看单个警报和设置 Respond 时,仪表板仍是最佳选择。此技能可回答涉及所有客户的问题,并通过你的 AI Agent 执行经过审核的操作。

费用是多少?

免费,采用 Apache-2.0 许可。你只需为所用的 AI Agent(Claude、ChatGPT、Codex 等)付费,费用由 AI 提供商收取,而非由我们收取。

安全模型

等级示例建议的 Agent 策略
读取triage、investigate、cross-tenant、coverage、rule-triggers queue、subscriptions health、rule-triggers decide 和 contain(不带 --confirm)、customers list、events list、events query、users、reports customers、reports mfa-microsoft、reports mailbox-rules、rules list、rule-triggers list、suppressions list、subscriptions list允许
账户响应contain --confirm、rule-triggers decide --confirm、rule-triggers approve、rule-triggers reject、rule-triggers ignore、rule-triggers manually-remediate、response-actions execute人机协同,需明确确认。这些操作会导致真实用户无法登录。
检测与响应配置customers set-whitelists、customers set-account-whitelists、suppressions create、suppressions update、suppressions delete、rules update、rules draft、rules duplicate、rule-templates use、iocs update、respond enable、application-connections connect、subscriptions create、subscriptions update、subscriptions health --reenable --confirm、webhook-domains verify先使用 --dry-run 预览,再由人工批准写入。白名单命令会替换客户的列表,因此应先读取列表。
写入(日常)devices map、devices unmap、psa map、psa map-suggested、customers create、customers update、reports scheduled-create、reports update-branding、subscriptions test-event、files upload先使用 --dry-run 预览,再审核写入
凭证与访问files url(返回指向存储文件的签名链接)、auth set-token、auth logout仅限人机协同
破坏性操作与外发操作respond disable、customers delete、rules delete、application-connections delete、subscriptions delete、webhook-domains delete、webhook-queue delete、reports scheduled-delete、files delete、reports send-email、import仅限人机协同,需明确确认

rule-triggers decide、contain 和 subscriptions health --reenable 在添加 --confirm 前会进行预览;其他所有写入操作都会在调用后立即执行,因此应使用 --dry-run 预览。SaaS Alerts 未提供只读密钥或按客户隔离的密钥,因此最强的控制措施是 MCP 只读开关:设置 SAAS_ALERTS_MCP_READ_ONLY=1 后,saas-alerts_execute 只会运行 GET 端点,而三个工作流写入工具会拒绝 --confirm。完整详情(包括如何锁定访问)请参阅 governance.md。

状态

Beta 版。基于 SaaS Alerts 发布的 API 规范和本地模拟服务器构建并测试;尚未在实际的 SaaS Alerts 租户上运行。抢先体验:带上它参加我们的每周 Build Sessions,并在你自己的租户上运行。请在 compoundingteams.com/build-sessions 回复确认。


标准。 符合开放的 Agent Skills 规范(Anthropic,2025 年 12 月;40 多个 Agent)。兼容 MCP——可与任何支持 MCP 的 Agent 配合使用,包括 Hermes。支持 OpenClaw(frontmatter 已预先配置,等待 OpenClaw 发布)。

由 Servosity 维护。采用 Apache-2.0 许可。使用 CLI Printing Press 构建。上次更新:2026-10-20。

评论

支持 Markdown

第一次接触 MCP?

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

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