@cyanheads/devops-status-mcp-server

中文文档
0.11.1发布于 2026/11/01Apache-2.0TypeScriptES Module

检查供应商状态页面,检查SSL/TLS证书,验证DNS传播,并通过MCP获得事件响应剧本。STDIO或可流HTTP。

中文使用文档
文档目录22 节
  1. 概述
  2. 工具
  3. 资源
  4. 能力的参考
  5. devops_list_vendors 工具
  6. devops_status_check 工具
  7. devops_get_incidents 工具
  8. devops_watch_stack 工具
  9. devops_check_certs 工具
  10. devops_check_dns 工具
  11. devops_suggest_action 工具
  12. devops-status://vendors/{name} 资源
  13. 功能
  14. 开始
  15. 配置
  16. 运行服务器
  17. 地方发展
  18. 码头工人
  19. 项目结构
  20. 开发指南
  21. 贡献
  22. 许可证

@cyanheads / devops-status-mcp-server

检查供应商状态页面,检查SSL/TLS证书,验证DNS传播,并通过MCP获得事件响应剧本。STDIO或可流HTTP。

7工具•1资源

Version License Docker MCP SDK npm TypeScript Bun

Install in Claude Desktop Install in Cursor Install in VS Code

Framework

公共托管服务器: https://devops-status.caseyjhand.com/mcp


概述

71家供应商的状态页面——AWS、谷歌Cloud、Azure、Slack等等——采用一种标准化格式。检查一下谁倒下了,调出事故时间线,注意你的堆栈,拿到事故应对手册。加上TLS证书和DNS检查任何域。不需要API密钥。

工具

工具描述
devops_list_vendors列出内置注册表中的供应商,可根据名称或类别进行筛选。返回标记、显示名称、类别和状态页URL。
devops_status_check检查一个或多个供应商的当前运行状况。返回每个供应商指示符(none / minor / major / critical / maintenance)、降级组件和活动事件摘要。
devops_get_incidents获取供应商的事件历史记录——活动维护、已解决维护或计划维护。返回包含每次更新主体和受影响组件的完整事件时间轴。
devops_watch_stack检查指定供应商堆栈的运行状况。服务器在哪里识别调用者(stdio或HTTP) jwt/oauth 身份验证),通过 vendors 一次保存列表,以后调用重用它;在HTTP上 MCP_AUTH_MODE=none 没有什么是被保存的 vendors 每次通话都需要。返回总体运行状况汇总和每个供应商的详细信息。
devops_check_certs通过真正的TLS握手检查一个或多个域的SSL/TLS证书运行状况。报告HTTP端口上的过期、链深度、协议版本、密码套件和HSTS存在。纯TypeScript——没有外部API。
devops_check_dns解析DNS记录,并验证谷歌(8.8.8.8)、Cloudflare(1.1.1.1)和Quad9(9.9.9.9)之间一个或多个域的传播。报告每个解析器延迟和解析器差异。纯TypeScript——没有外部API。
devops_suggest_action指令工具—返回定制的事件响应剧本和预先填充的后续工具调用,并给出供应商名称和可选的事件上下文。没有外部电话;完全确定的。

资源

资源描述
devops-status://vendors/{name}根据标签状态页URL、类别和API类型,供应商的完整注册表项。

所有资源数据也可以通过工具访问。完全支持纯工具代理。


能力的参考

devops_list_vendors 工具

  • 可选的自由文本 query (名称和符号,不区分大小写)和可选 category: cloud, cdn-edge, dev-platform, data, comms, auth, monitoring, ai
  • 返回标识符(传递给其他工具的内容)、显示名称、类别和状态页URL;空结果携带a notice 说出错过了什么
  • 71个内置条目,大部分在Atlassian Statuspage上; aws, gcp, azure, azure-devops, gitlab, neon, slack, redis-cloud,以及九个Datadog网站条目(datadog US1, datadog-us3, datadog-us5, datadog-eu1, datadog-uk1, datadog-ap1, datadog-ap2, datadog-us1-fed, datadog-us2-fed)使用本机api适配器。注册表中没有与statuspage兼容的页面通过将原始基本URL传递给其他工具来工作
  • 这些Atlassian产品有自己的入口(jira, confluence, bitbucket, jira-service-management, atlassian-compass, atlassian-developer, trello, opsgenie, atlassian-statuspage, atlassian-guard)。 atlassian 读取伞形页面,该页面不发布组件,只发布跨产品事件;任何提供它的工具都是这样写的 notice 并给这些鼻涕虫命名

内置供应商注册表:

类别供应商
cloudDigitalocean, linode, aws, gcp, azure
cdn-edgecloudflare, akamai
dev-platformGitlab、github、azure-devops、npm、vercel、netlify、render、fly-io、cireci、travis-ci、snyk、atlassian、jira、confluence、bitbucket、jira-service-management、atlassian-compass、atlassian-developer、trello、figma、launchdarkly
dataMongodb-atlas, planetscale, supabase, neon, reddiscloud, elastic, influxdb, upstash, cloudinary, segment
commsSlack, discord, twilio, sendgrid, mailgun, hubspot, brevo, courier, loops
authAuth0,职员,工人,地图集守卫
monitoringDatadog、Datadog -us3、Datadog -us5、Datadog -eu1、Datadog -uk1、Datadog -ap1、Datadog -ap2、Datadog -us1-fed、Datadog -us2-fed、sentry、new-relic、grafna -cloud、honeycomb、opsgenie、atlassian-statuspage
aiOpenai, anthropic, elevenlabs,松果,粘在一起

devops_status_check 工具

  • 接受供应商文件(例如: github, aws)或原始的Atlassian Statuspage基础url,自由混合。每次呼叫最多可检查20个;剩下的人回来了 deferred_vendors 与一个 notice 重新发送。超过100个参赛作品已被拒绝(invalid_arguments)
  • mode: "summary" (默认)返回指示器、降级组件和活动事件; mode: "detailed" 添加完整的组件列表(component_limit(默认为50,固定为500)和定期维护窗口。 component_filter 匹配组件或组名称
  • 一个长于 component_limit 页面:每个封顶供应商返回 next_component_offset,你把它作为 component_offset (应用后 component_filter)。 degraded_components 和 active_incidents 每一页都是完整的吗
  • 一个失败的供应商永远不会阻止其他供应商(每个供应商) error 字段)。结果缓存60秒(cached: true), summary 计数 operational / degraded / down / maintenance / unavailable
  • indicator 是供应商自己的评级,而Statuspage页面可以将其保持在 none 而一个事件它评级 minor 或者更糟的是开放。 summary 把每个供应商算在两者中最差的;事件的评价 none 或者 maintenance 而预定的Windows操作系统永远不会被算作宕机
  • nextToolSuggestions 预填充一个 devops_suggest_action 打电话给每个有问题的供应商-供应商计数 degraded 或者 down

devops_get_incidents 工具

  • filter: all (默认), active, resolved,或者 scheduled (仅限维护窗口)。 limit (默认20,最大50) offset 对于分页
  • 按时间顺序返回每个更新主体的纯文本、受影响的组件名称、已解决事件的持续时间(以分钟为单位)和短链接。谷歌云和AWS事件也会发生 affected_locations (区域ID、名称,以及它是否仍然受到影响;在AWS上,一个区域的事件名称,或 global). 每个事件都承载着 source: api,或者 history 对于归档记录(仅限标题、影响、时间和最终消息)
  • since 和 until (YYYY-MM-DD(UTC)绑定开始日期并使用 filter: "all" 或者 "resolved"; since 还可以读取Statuspage历史档案,最长可达24个月,超过API的最新west-50限制;一个达到这个极限的电话 since 被告知设置它。 match 保存标题、组件名称或(在谷歌云和AWS上)位置名称和id包含给定的每个空格分隔术语的事件(最多200个字符);用标点符号连接的术语,如 eu-central-1,必须找到它的文字,并在其中一个顺序
  • 每个表面的响应上限为64,000字节;剪页套装 truncated: true 和 nextOffset. full_updates: true 保持对单个超大事件的每一次更新
  • 错误: invalid_since 和 invalid_until (filter: "active" 或者 "scheduled",或者 until 之前 since)
  • 过滤器中没有数据的feed返回空: resolved Azure, scheduled 适用于AWS、Azure、Azure DevOps、谷歌Cloud和Slack。历史记录很短,供应商不读取存档:AWS将已解决的事件保存几个小时,而状态则保存几个小时。io (gitlab, neon)只列出当前的事件。在那些饲料上 since 比返回的最老记录早,或早 until 没有 since,得到一个。 notice 命名提要开始的日期

devops_watch_stack 工具

  • 通过 vendors (最多20个)一次保存堆栈下 stack_name (1-64个字符;多个堆栈可以共存,例如: "production"); 以后的调用可以省略 vendors. 超过20被拒绝 stack_too_large. 保存工作在工作室和HTTP与 MCP_AUTH_MODE=jwt|oauth;使用默认值 in-memory 存储,已保存的堆栈在重新启动后无法存活
  • 在HTTP上 MCP_AUTH_MODE=none 没有什么是保存的:一个电话与 vendors 运行扫描并返回 stack_persisted: false和一个没有的电话 vendors 失败与 vendors_required
  • 总 health: all_operational / maintenance / degraded / partial_outage / major_outage / unknown (无法联系到供应商),从相同的每个供应商评级中滚动 summary. component_limit 和 nextToolSuggestions 工作就像 devops_status_check;没有 component_offset,所以一个封顶的供应商 next_component_offset 仍在继续 devops_status_check

devops_check_certs 工具

  • 接受主机名,IP地址, host:port,或url;条目上的端口将被覆盖 port 443(默认)。检查前10个参赛作品(最多可接受100个);剩下的人回来了 deferred_domains ,重新发送
  • 报告截止日期(warning 在30天内, critical 7),主题和san,颁发者,链深度,TLS版本(1.0和1.1标记不安全),密码套件和HTTP端口上的HSTS
  • status: "critical" 分隔主机名不匹配(hostname_verification_error)从不受信任的链(authorization_error). 每个域的失败返回为 status: "error" 有理由 error
  • timeout_ms 每个域名有一个截止日期(最多15000个)

devops_check_dns 工具

  • 接受域名、url或 host:port;查询前10个域(最多可接受100个),然后返回其余域 deferred_domains. IP地址有自己的地址 error 行
  • 对A、AAAA、CNAME、MX、TXT、NS、CAA、SOA(默认为A、AAAA、MX、TXT)并行查询谷歌(8.8.8.8)、Cloudflare(1.1.1.1)、Quad9 (9.9.9.9)
  • 报告每个解析器延迟和类型差异: partial_resolution (一些解决方案没有回答)是一个真正的问题; value_variation (不同的值)对于任意cast或地理导向域是正常的
  • 自定义 resolvers 获取公共IP字面量,查询前5个,其余的在 deferred_resolvers;需要私有地址和环回地址 DEVOPS_STATUS_ALLOW_PRIVATE_TARGETS=true. timeout_ms 适用于每个域和解析器(最多10000)

devops_suggest_action 工具

  • 接受供应商名称或显示名称,并返回针对类别定制的降价剧本,并为未识别的供应商提供通用指导
  • 可选 incident_summary, affected_components, vendor_indicator 添加子系统部分和基于严重性的紧急性
  • nextToolSuggestions 预填充后续呼叫,包括证书和DNS检查时 your_domain 给出。与 DEVOPS_STATUS_DISABLE_ACTIVE_PROBES=true,引导使用手动命令(dig, openssl s_client)而不是

devops-status://vendors/{name} 资源

  • 返回供应商段的完整注册表项:状态页URL、类别、API类型(statuspage, statusio, slack, aws, gcp, azure, azure-devops, firehydrant, datadog), component_scope_prefix 如供应商提供部分共享网页(sendgrid), product_slugs 在不发布组件的伞形页面(atlassian)
  • 公开缓存1小时;同样的数据可以通过 devops_list_vendors

功能

建立在 @cyanheads/mcp-ts-core:工作室和流的HTTP传输,可插拔的授权(none / jwt / oauth)、可交换存储(in-memory, filesystem, Supabase, Cloudflare KV/R2/D1),具有可选OpenTelemetry跟踪的结构化日志记录。

DevOps-status-specific:

  • 不需要API密钥 每个状态后端都是一个公共API;TLS和DNS使用Node.js标准库
  • 71个供应商内置注册表跨八个类别;本机适配器normalize Status。io、Slack、AWS Health、谷歌Cloud、Azure、Azure DevOps、Firehydrant和Datadog放到Statuspage形状中
  • 供应商编写的文本被转义,因此它被读取为数据,而不是标记;DNS记录值和证书名称呈现为代码跨度,其回读方式与解析后的完全相同
  • 状态读取时的60秒内存缓存,在租户之间共享
  • devops_watch_stack 保存命名的供应商列表,以便重复检查和预部署扫描
  • devops_suggest_action 是确定性的,没有LLM采样依赖

代理技能:

  • devops-status-guide 介绍了如何将这些工具一起使用:状态读取可以建立什么,不能建立什么,事件历史在每个后端上到达多远,区域位于何处,以及如何诊断DNS更改或证书故障。MCP客户端从服务器读取它作为 skill://devops-status-guide/SKILL.md;它还包含在npm包、Docker镜像和 .mcpb 包和插件安装扫描它从 skills/.

Agent-friendly输出:

  • 批处理工具永远不会让一个失败的目标阻碍其他目标;错误将作为内联返回 error 字段
  • checked_at 每个状态的结果都是检查的时间; cached: true 标记从缓存中读取服务的状态,该状态可以达到缓存TTL(默认为60秒)
  • 固定的指示器和状态枚举(none / minor / major / critical / maintenance)让调用者在数据上进行分支
  • nextToolSuggestions 预填充来自事件上下文的后续工具参数

开始

连接到托管实例,不安装:

claude mcp add --transport http devops-status-mcp-server https://devops-status.caseyjhand.com/mcp

或者在本地运行:

claude mcp add devops-status-mcp-server -- npx -y @cyanheads/devops-status-mcp-server

对于其他客户端,请将此添加到MCP配置文件中:

{
  "mcpServers": {
    "devops-status-mcp-server": {
      "command": "npx",
      "args": ["-y", "@cyanheads/devops-status-mcp-server"]
    }
  }
}

不需要API密钥。有关Docker或源代码构建,请参见 运行服务器.


配置

不需要API密钥。所有环境变量都是可选的。

变量描述默认的
DEVOPS_STATUS_CACHE_TTL_MS以毫秒为单位读取供应商状态(所有后端)的内存缓存TTL。60000
DEVOPS_STATUS_FETCH_TIMEOUT_MS供应商状态API调用(所有后端)的每个请求超时(以毫秒为单位)。8000
DEVOPS_STATUS_CERT_TIMEOUT_MS默认的 timeout_ms 用于 devops_check_certs (1000 - 15000)。5000
DEVOPS_STATUS_DNS_TIMEOUT_MS默认的 timeout_ms 用于 devops_check_dns (1000 - 10000)。3000
DEVOPS_STATUS_ALLOW_PRIVATE_TARGETS当 true在用户提供的状态页url上禁用SSRF保护; devops_check_certs 主机, devops_check_dns 解析器IPs。仅受信任的本地部署。false
DEVOPS_STATUS_DISABLE_ACTIVE_PROBES当 true,删除 devops_check_dns 和 devops_check_certs. 用于共享的公共实例。false
MCP_TRANSPORT_TYPE交通: stdio 或者 http.stdio
MCP_HTTP_PORTHTTP服务器端口号。3010
MCP_SESSION_MODEHTTP会话处理: stateless, stateful,或者 auto.stateless
MCP_AUTH_MODE身份验证模式: none, jwt,或者 oauth.none
MCP_LOG_LEVEL日志级别(RFC 5424)。info
LOGS_DIR日志文件目录(仅限Node.js)。<project-root>/logs
OTEL_ENABLED启用 OpenTelemetry仪器.false

一个无效的 DEVOPS_STATUS_* 值在命名变量时出现错误,从而停止启动。

看到 .env.example 获取可选覆盖的完整列表。


运行服务器

地方发展

需要 包子v1.4.0 或更高版本(或Node.js v24+)。

  • 克隆并安装:

    git clone https://github.com/cyanheads/devops-status-mcp-server.git
    cd devops-status-mcp-server && bun install
    cp .env.example .env   # optional overrides
    
  • 构建和运行:

    bun run rebuild
    bun run start:stdio
    # or
    bun run start:http
    
  • 运行检查和测试:

    bun run devcheck   # Lint, format, typecheck, security
    bun run test       # Vitest test suite
    bun run lint:mcp   # Validate MCP definitions against spec
    

码头工人

docker run --rm -p 3010:3010 ghcr.io/cyanheads/devops-status-mcp-server:latest

镜像默认为HTTP传输,无状态会话模式,并记录为 /var/log/devops-status-mcp-server. 要从MCP客户端在演播室上运行它,使用 "command": "docker" 与 "args": ["run", "-i", "--rm", "-e", "MCP_TRANSPORT_TYPE=stdio", "ghcr.io/cyanheads/devops-status-mcp-server:latest"]. 为了在当地建设, docker build -t devops-status-mcp-server .;默认情况下安装OpenTelemetry对等依赖 --build-arg OTEL_ENABLED=false 省略它们。


项目结构

路径目的
src/index.tscreateApp() 入口点-注册工具,资源,并启动服务。
src/config/特定于服务器的环境变量解析和验证。
src/mcp-server/tools/工具定义(*.tool.ts)。
src/mcp-server/resources/资源定义(*.resource.ts)。
src/services/cert/node:tls -TLS握手,X.509解析,过期和协议标记,遗留TLS重试,HSTS读取。
src/services/dns/DNS连接客户端(node:dgram / node:net):消息编码和边界检查解码,UDP与TCP重试;多解析器扇出和传播差异检测。
src/services/statuspage/Statuspage公共API客户端(读取)中的共享缓存 src/utils/cached-fetch.ts)。
src/services/status-adapters/本机api适配器(状态。io、Slack、AWS健康、谷歌云服务健康、Azure状态、Azure DevOps状态、消防栓、Datadog)、共享RSS提取器、+ api_type 调度,规范化为Statuspage形状。
src/services/vendor-registry/从内存中加载的供应商注册表 src/data/vendor-registry.ts.
src/data/静态厂商注册表数据文件(vendor-registry.ts)。
src/utils/共享的帮助程序——响应缓存和获取、SSRF保护、域入口规范化、html到文本、供应商文本标记转义、DNS和证书值的代码范围呈现、输入绑定通知、单词匹配。
skills/发布座席技能(devops-status-guide),通过MCP提供,并在npm包、Docker镜像和 .mcpb 包。
tests/最测试镜像 src/.

开发指南

看到 CLAUDE.md 开发指南和架构规则。简而言之:

  • 处理程序抛出,框架捕获——没有 try/catch 在工具逻辑中
  • 使用 ctx.log 对于请求范围的日志记录, ctx.state 用于租户范围的存储
  • 通过桶注册新的工具和资源 src/mcp-server/*/definitions/index.ts
  • devops_check_certs 和 devops_check_dns 只使用Node.js stdlib -不要为这些路径添加外部深度

贡献

问题是受欢迎的。在提交之前运行检查和测试:

bun run devcheck
bun run test

许可证

Apache-2.0 -参见 许可证 获取详细信息。

版本与发布记录

@cyanheads/devops-status-mcp-server 共发布 30 个版本,首次发布于 2026/05/30;过去 12 个月发布了 30 个版本。

版本发布日期距今
0.11.1latest2026/11/012 天前
0.11.02026/10/313 天前
0.10.02026/10/1519 天前
0.9.12026/10/0826 天前
0.9.02026/09/251 个月前
0.8.32026/09/251 个月前

关于 @cyanheads/devops-status-mcp-server 的常见问题

@cyanheads/devops-status-mcp-server 是什么?

检查供应商状态页面,检查SSL/TLS证书,验证DNS传播,并通过MCP获得事件响应剧本。STDIO或可流HTTP。

如何安装 @cyanheads/devops-status-mcp-server?

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

@cyanheads/devops-status-mcp-server 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@cyanheads/devops-status-mcp-server 支持 ESM 还是 CommonJS?

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

@cyanheads/devops-status-mcp-server 需要什么版本的 Node.js?

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

@cyanheads/devops-status-mcp-server 可以商用吗?

@cyanheads/devops-status-mcp-server 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@cyanheads/devops-status-mcp-server 还在维护吗?

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