io.github.cyanheads/devops-status-mcp-server
REMOTE · DEVOPS-STATUS.CASEYJHAND.COM · 2 COMPONENTS
Vendor status pages, TLS cert inspection, DNS propagation checks, and incident-response playbooks.
Available components
Last scanned (22 hours ago)
Scores higher than 96% of remote servers
Reachable. Last reached 4 Nov 2026.
Category Monitoring and Observability
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security83
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability73
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 5012 tokens (~626/item across 8 items; 7 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 9 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 31 Oct 26 +2
- The server rewrote its instructions, which are the text every model session reads security
- Tool “devops_get_incidents” rewrote its description, which is the text the model reads security
- Tool “devops_status_check” rewrote its description, which is the text the model reads security
- Schema quality: 4285 → 5012 ▼ functional
- Schema quality: 4285 → 4758 ▼ functional
- Schema quality: unverified → 100 ▲ functional
- New resource “devops-status-guide” functional
- Server version: 0.11.0 → 0.11.1 functional
- Server version: 0.10.0 → 0.11.0 functional
- “devops_status_check” added an optional parameter “component_offset” cosmetic
- “devops_get_incidents” reworded the description of “until” cosmetic
- “devops_get_incidents” reworded the description of “since” cosmetic
- “devops_get_incidents” reworded the description of “match” cosmetic
- “devops_get_incidents” reworded the description of “filter” cosmetic
- “devops_status_check” reworded the description of “component_filter” cosmetic
- “devops_status_check” reworded the description of “component_limit” cosmetic
- “devops_watch_stack” reworded the description of “component_filter” cosmetic
- 14 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “devops_watch_stack” rewrote its description, which is the text the model reads security
- Tool “devops_status_check” rewrote its description, which is the text the model reads security
- Tool “devops_get_incidents” rewrote its description, which is the text the model reads security
- Tool “devops_check_dns” rewrote its description, which is the text the model reads security
- Tool “devops_check_certs” rewrote its description, which is the text the model reads security
- Schema quality: 373 → 612 ▼ functional
- Server version: 0.9.1 → 0.10.0 functional
- “devops_get_incidents” added an optional parameter “until” cosmetic
- “devops_get_incidents” added an optional parameter “match” cosmetic
- “devops_get_incidents” added an optional parameter “full_updates” cosmetic
- “devops_check_dns” reworded the description of “record_types” cosmetic
- “devops_watch_stack” reworded the description of “vendors” cosmetic
- “devops_watch_stack” reworded the description of “component_limit” cosmetic
- “devops_watch_stack” reworded the description of “component_filter” cosmetic
- “devops_suggest_action” reworded the description of “vendor” cosmetic
- “devops_suggest_action” reworded the description of “affected_components” cosmetic
- “devops_status_check” reworded the description of “vendors” cosmetic
- “devops_status_check” reworded the description of “component_limit” cosmetic
- “devops_status_check” reworded the description of “component_filter” cosmetic
- “devops_list_vendors” reworded the description of “query” cosmetic
- “devops_get_incidents” reworded the description of “since” cosmetic
- “devops_get_incidents” reworded the description of “limit” cosmetic
- “devops_get_incidents” reworded the description of “filter” cosmetic
- “devops_check_dns” reworded the description of “timeout_ms” cosmetic
- “devops_check_dns” reworded the description of “resolvers” cosmetic
- “devops_check_dns” reworded the description of “domains” cosmetic
- “devops_check_certs” reworded the description of “timeout_ms” cosmetic
- “devops_check_certs” reworded the description of “port” cosmetic
- “devops_check_certs” reworded the description of “domains” cosmetic
- 9 Oct 26 0
- Server version: 0.9.0 → 0.9.1 functional
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Sept 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “devops_status_check” rewrote its description, which is the text the model reads security
- Tool “devops_get_incidents” rewrote its description, which is the text the model reads security
- Schema quality: 338 → 373 ▼ functional
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- Server version: 0.8.3 → 0.9.0 functional
- “devops_get_incidents” added an optional parameter “since” cosmetic
- “devops_get_incidents” reworded the description of “filter” cosmetic
- 20 Sept 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Server version: 0.8.1 → 0.8.2 functional
- 9 Sept 26 0
- Stability: 0.97 → pass security
- 7 Sept 26 0
- Stability: pass → 0.93 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Probed https://devops-status.caseyjhand.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=caseyjhand.com | CN=WE1,O=Google Trust Services,C=US | 2 Nov 2026 | 31 Jan 2027 | ECDSA 256 | ECDSA-SHA256 | 995a30681ab772540e934241ca1d576c |
| SANs: caseyjhand.com, *.caseyjhand.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC secure
Validation of devops-status.caseyjhand.com. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| caseyjhand.com. | present | 2371 | 13 | Verified |
| devops-status.caseyjhand.com. | Verified address RRset verified with the apex keys |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains; preload |
| x-content-type-options | nosniff |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://devops-status.caseyjhand.com/mcp | Verified | 200 | |
| http (plaintext) | http://devops-status.caseyjhand.com/mcp | HTTPS enforced | 301 | https://devops-status.caseyjhand.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
devops_check_certs Devops Check Certs ~615
Inspect SSL/TLS certificate health for one or more domains by performing a real TLS handshake. Works for any internet-accessible domain — no vendor registry required. Reports days to expiry (flagged at < 30 days warning and < 7 days critical), certificate subject and SANs, issuer, hostname coverage, chain-trust verification, TLS protocol version negotiated (flags TLS 1.0/1.1 as insecure — a server offering only those is still inspected), cipher suite, and HSTS presence when the port answers HTTP. The handshake completes even for a certificate clients would reject, so a broken certificate is reported rather than hidden behind a connection error: a hostname mismatch surfaces in cert.hostname_verification_error and a chain-trust failure (self-signed, untrusted root) in cert.authorization_error, both status "critical". Non-HTTP TLS ports (IMAPS 993, SMTPS 465, DNS over TLS 853) are graded the same way, with HSTS reported as not checked. If a domain fails to connect at all, check devops_check_dns first — the name may not resolve. When a certificate fails to issue or renew, run devops_check_dns with record_types ["CAA"] to see which certificate authorities the domain allows.
| Name | Type | Req | Description |
|---|---|---|---|
| domains | array | yes | Hosts to inspect. The first 10 entries are inspected; up to 100 are accepted, and entries past the 10th come back uninspected and verbatim in deferred_domains, to resend in another call. Each entry i… |
| port | integer | – | TLS port for entries that do not carry their own. Defaults to 443. Use 8443 or custom ports for non-standard HTTPS endpoints, or 993, 465, 853, and the like for other TLS services. A port written on… |
| timeout_ms | integer | – | Time limit in milliseconds for each domain, covering the connection, the handshake, a second handshake with TLS 1.0/1.1 enabled when the server offers nothing newer, and the HSTS request. A port that… |
| Name | Type | Req | Description |
|---|---|---|---|
| deferred_domains | array | – | Host entries past the first 10, not inspected on this call, verbatim and in input order. Resend them in another call. Empty when every entry was inspected. |
| error | object | – | Present when the call failed. Absent on success. |
| notice | string | – | Present when the call was served at a bound: hosts past the per-call cap, named in deferred_domains, or a timeout_ms over 15000 that was served as 15000. Absent otherwise. |
| results | array | – | Per-domain certificate inspection results. |
No examples provided.
devops_check_dns Devops Check Dns ~828
Resolve DNS records for one or more domains across multiple public resolvers and compare what each resolver returned. Works for any domain — no vendor registry required. Reports records found (A/AAAA/CNAME/MX/TXT/NS/CAA/SOA), resolution latency per resolver, and a typed outcome per resolver and record type so "the domain does not exist" (nxdomain), "the resolver could not answer" (servfail), and "no record of this type" (nodata) stay distinguishable. Resolver disagreements are reported without asserting a cause: partial_resolution (some resolvers answered, others returned nothing) points at a real propagation or resolver problem, while value_variation (every resolver answered with different values) is the normal steady state for anycast and geo-steered domains. Pair with devops_check_certs when a domain resolves but TLS to it is failing.
| Name | Type | Req | Description |
|---|---|---|---|
| domains | array | yes | Domain names to query. The first 10 entries are queried; up to 100 are accepted, and entries past the 10th come back unqueried and verbatim in deferred_domains, to resend in another call. Each entry… |
| record_types | array | – | DNS record types to resolve. Defaults to A, AAAA, MX, and TXT. An empty array uses the same defaults. A type listed more than once is queried once. Add NS to check nameserver delegation. Add CNAME wh… |
| resolvers | array | – | Resolver IP addresses to query. Defaults to Google (8.8.8.8), Cloudflare (1.1.1.1), and Quad9 (9.9.9.9). An empty array uses the same defaults. Add custom resolvers to test resolver-specific behavior… |
| timeout_ms | integer | – | Time limit in milliseconds for each domain+resolver pair, covering every requested record type and any retry over TCP. A resolver that has not answered within it reports "timeout" for the unanswered… |
| Name | Type | Req | Description |
|---|---|---|---|
| deferred_domains | array | – | Domain entries past the first 10, not queried on this call, verbatim and in input order. Resend them in another call. Empty when every entry was queried. |
| deferred_resolvers | array | – | Distinct resolvers past the first 5, not queried on this call, verbatim and in input order. Resend them with the same domains in another call. Empty when every resolver was queried. |
| error | object | – | Present when the call failed. Absent on success. |
| notice | string | – | Present when the call was served at a bound: domains or resolvers past the per-call cap, named in deferred_domains and deferred_resolvers, or a timeout_ms over 10000 that was served as 10000. Absent… |
| results | array | – | Per-domain DNS resolution results. |
No examples provided.
devops_get_incidents Devops Get Incidents ~1,457
Fetch incident history and scheduled maintenance windows for a vendor. Returns full incident timeline — each investigator update, affected components, and resolution. Filter by status to focus on active incidents (use before deploy), resolved history (for postmortem), or maintenance windows: upcoming and in-progress ones, plus completed ones on Atlassian Statuspage, Firehydrant, and Datadog vendors (Status.io vendors list upcoming and in-progress only). Narrow further with match (terms in the title or affected component names, plus location names and IDs on Google Cloud and AWS) and since/until (a start-date range) — all applied before paging, so totals count only what they keep. Page through long histories with limit + offset — a truncated result discloses the total and returns the value to page with in nextOffset. Each response is held to 64,000 bytes per surface: a page can stop short of limit at that budget (the paging fields and notice say so), and an incident too large on its own keeps only its newest updates, with updates_omitted counting the rest — full_updates: true returns them all. Some vendor feeds cap their own history: when upstreamCeiling is present the vendor API returned everything it will serve, and older incidents are not reachable at a higher offset; the notice says whether since reaches them. On Atlassian Statuspage vendors, since (a date) also reads the status page's quarterly history archive back to that date, or 24 months back at most, where the page publishes one — not on a vendor that covers only part of a shared page, such as "sendgrid"; those records are marked source: "history" and carry the title, impact, start and end times, and final update message only. An empty result, or a history read that stopped short of since, explains itself in notice.
| Name | Type | Req | Description |
|---|---|---|---|
| filter | string | – | all: incidents plus scheduled maintenances. active: only incidents with status investigating/identified/monitoring. resolved: only fully resolved incidents. scheduled: only maintenance windows — upco… |
| full_updates | boolean | – | Return every update of an incident that is too large for the response size budget on its own, instead of only its newest updates. Default false. Pair it with limit: 1 and the offset the notice names;… |
| limit | integer | – | Maximum incidents to return per call, at least 1. A value over 50 is served as 50, and the notice says so. Page through longer history with offset rather than raising this. |
| match | string | – | Terms to look for, separated by spaces, in each incident's title, its affected component names, and, on Google Cloud and AWS, its affected location names and IDs ("us-central1", "me-south-1", "bahrai… |
| offset | integer | – | Number of matching incidents to skip before applying limit, for paging through history. 0 (default) returns the most recent page; a truncated result returns the value to use next in the nextOffset fi… |
| since | – | – | Earliest start date to include, as YYYY-MM-DD (UTC). Accepted with filter "all" or "resolved". A record's start is its scheduled_for, else the earlier of its started_at and created_at; records that s… |
| until | – | – | Latest start date to include, as YYYY-MM-DD (UTC) — the whole day, so until equal to since returns that one day. Accepted with filter "all" or "resolved", and on or after since. A record's start is i… |
| vendor | string | yes | Vendor slug (e.g., "github", "aws") or raw Atlassian Statuspage base URL. Use devops_list_vendors to find slugs. |
| Name | Type | Req | Description |
|---|---|---|---|
| cap | number | – | The limit that was applied: the requested limit, or 50 when a larger one was requested. Present only when truncated. |
| error | object | – | Present when the call failed. Absent on success. |
| incidents | array | – | Matching incidents. |
| name | string | – | Display name of the vendor. |
| nextOffset | number | – | The offset to pass on the next call to continue from where this page stopped, already computed as offset + the number returned. Present only when truncated — its absence means this page reached the e… |
| notice | string | – | Plain-language explanation of this result — a limit over 50 that was served as 50 (with the requested and effective values), a since older than the 24-month history-archive floor (with the date the a… |
| shown | number | – | Number of incidents on this page: the limit, or fewer when the page stopped at the response size budget. Present only when truncated. |
| statuspage_url | string | – | Status page base URL used. |
| totalCount | number | – | Total incidents matching the filter, date range, and match, across all pages, before offset/limit windowing. Present only when the result was truncated. |
| total_returned | number | – | Number of incidents in the response. |
| truncated | boolean | – | True when more incidents matched than this page returned — because of limit, or because the page stopped at the response size budget. Absent when this page reached the end of the matches. |
| upstreamCeiling | number | – | Maximum incidents the vendor's own status API serves in one fetch, present only when that ceiling was reached on this call. It bounds the history independently of limit and offset: incidents older th… |
| vendor | string | – | Vendor slug or URL as provided. |
No examples provided.
devops_list_vendors Devops List Vendors ~137
List vendors in the built-in registry, optionally filtered by category or name search. Returns slug, display name, category, and status page URL for each entry. Use to discover the correct slug to pass to other tools, or to see which vendors are available before configuring a stack.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Filter to one category: cloud, cdn-edge, dev-platform, data, comms, auth, monitoring, or ai. |
| query | string | – | Substring search against vendor slug and display name. Case-insensitive; surrounding whitespace is ignored. E.g., "cloud", "auth", "slack". |
| Name | Type | Req | Description |
|---|---|---|---|
| categories | array | – | All available category values for use in the category filter. |
| error | object | – | Present when the call failed. Absent on success. |
| notice | string | – | Why nothing matched and what to call next. Present only when vendors is empty. |
| total | number | – | Total number of vendors returned. |
| vendors | array | – | Matching vendors from the built-in registry. |
No examples provided.
devops_status_check Devops Status Check ~638
Check the current health status for one or more vendors. Accepts registered vendor slugs (e.g., "github", "aws", "gcp", "gitlab") or raw Atlassian Statuspage base URLs. Registry entries are served by each vendor's native status API (Statuspage, Status.io, Slack, AWS Health, Google Cloud Service Health, Azure status, Azure DevOps status, Firehydrant, Datadog) and normalized to one shape. Returns per-vendor operational indicator as the vendor published it (none = no degradation reported, minor, major, critical, maintenance = scheduled window), degraded components, and active incidents; summary counts each vendor at the worse of its indicator and its worst open incident rated minor or worse. Use mode: "detailed" for component lists and maintenance windows, narrowed with component_filter, bounded by component_limit, and paged with component_offset. Batch-friendly — pass a list to check your full stack in one call; up to 20 vendors are checked per call, and any past the 20th come back in deferred_vendors to resend. A vendor that cannot be resolved or reached is reported in its own result row, so one bad entry never discards the rest. Every vendor with an active problem gets a pre-filled devops_suggest_action call in nextToolSuggestions.
| Name | Type | Req | Description |
|---|---|---|---|
| component_filter | string | – | Case-insensitive substring matched against component names and their group names in detailed mode (e.g., "api" to check just the API components, or a product or region a page groups components under)… |
| component_limit | integer | – | Maximum components returned per vendor in detailed mode, at least 1. A value above 500 is reduced to 500, and notice says so; a longer list continues with component_offset. Large status pages publish… |
| component_offset | integer | – | Components to skip per vendor, after component_filter and before component_limit. Pass a vendor's next_component_offset to continue its list. An offset past a vendor's last component returns an empty… |
| mode | string | – | summary: indicator + degraded components + active incidents only. detailed: adds the component list and scheduled maintenance windows. |
| vendors | array | yes | Vendor slugs from the built-in registry (e.g., "github", "aws") or raw Atlassian Statuspage base URLs (non-Statuspage backends are supported via registry slugs only). Mix freely. Use devops_list_vend… |
| Name | Type | Req | Description |
|---|---|---|---|
| cap | number | – | The per-vendor component_limit that was applied. Present only when truncated. |
| deferred_vendors | array | – | Entries past the first 20 in vendors, verbatim and in input order. They were not checked; resend them in another call. Empty when every entry was checked. |
| error | object | – | Present when the call failed. Absent on success. |
| nextToolSuggestions | array | – | One devops_suggest_action call per vendor with an active problem — an indicator of minor, major, or critical, or an open incident of that impact even while the indicator reads none or maintenance; th… |
| notice | string | – | Plain-language explanation of what this call left out or adjusted, in this order: vendors past the first 20 (listed in deferred_vendors); a component_limit above 500 reduced to 500; in detailed mode,… |
| results | array | – | Per-vendor status results for the vendors checked, in the same order as the input vendors list. |
| shown | number | – | Components returned across all vendors. Present only when truncated. |
| summary | object | – | Aggregate health counts across all checked vendors. Each vendor is rated by the worse of its indicator and its worst open incident rated minor or worse; an incident rated none or maintenance never ra… |
| totalCount | number | – | Components matching component_filter across all vendors, before component_offset and the cap. Present only when truncated. |
| truncated | boolean | – | True when at least one vendor has components past the returned page — those vendors carry next_component_offset. Absent otherwise, including on the last page of a list. |
No examples provided.
devops_suggest_action Devops Suggest Action ~331
Return an incident-response playbook tailored to a vendor degradation, with pre-filled follow-up tool calls. Synthesizes category-specific guidance (cloud, CDN, dev-platform, auth, etc.) from built-in incident knowledge and the provided context. Use after devops_status_check or devops_get_incidents surfaces a problem to determine what to investigate next.
| Name | Type | Req | Description |
|---|---|---|---|
| affected_components | array | – | Component names affected (from devops_status_check degraded_components or devops_get_incidents affected_components). Values pre-filled by devops_status_check read "Group / Leaf" for a component the s… |
| incident_summary | string | – | Latest incident description or update body from devops_get_incidents. Paste the most recent update to get more targeted advice. |
| vendor | string | yes | Vendor slug, display name, or raw status page URL (e.g., "cloudflare", "Amazon Web Services"). Used to tailor category-specific guidance (CDN outage vs. CI/CD outage vs. auth provider outage). A name… |
| vendor_indicator | string | – | Overall vendor status indicator from a prior devops_status_check call (its indicator field). When provided, the playbook leads with severity-tailored urgency guidance. Omit if status has not been che… |
| your_domain | string | – | Your own domain or service URL. When provided, nextToolSuggestions will be pre-filled with your domain for cert and DNS checks. |
| Name | Type | Req | Description |
|---|---|---|---|
| diagnostics_summary | object | – | Summary of input context used to generate the playbook. |
| error | object | – | Present when the call failed. Absent on success. |
| guidance | string | – | Markdown playbook — immediate steps, diagnostic checks, mitigation options, and what to monitor for resolution. Tailored to the vendor category, reported severity, and affected components. |
| nextToolSuggestions | array | – | Recommended follow-up calls with arguments already populated. Execute these in sequence to gather diagnostic data. |
| vendor | string | – | Vendor as provided. |
| vendor_category | string|null | – | Detected category from registry (e.g., "cdn-edge", "auth"). Null for unrecognized vendors. |
No examples provided.
devops_watch_stack Devops Watch Stack ~590
Check the health of a named vendor stack — a saved list of vendors representing your infrastructure dependencies. On the first call, provide vendors to define the stack; subsequent calls can omit vendors to reuse the saved list. Stacks are saved per authenticated caller, or per local server process; a shared deployment that does not authenticate callers saves nothing, so there vendors is required on every call and the response says so. Up to 20 vendors are saved per stack and checked per call; use several stack names for a larger set. Returns a unified health snapshot with an aggregate rollup plus per-vendor detail. A vendor that cannot be resolved or reached is reported in its own row and left out of the saved stack, so one bad entry never discards the sweep. Every vendor with an active problem gets a pre-filled devops_suggest_action call in nextToolSuggestions. Ideal for morning status checks or pre-deploy sweeps. Multiple stacks can coexist (e.g., "production", "staging").
| Name | Type | Req | Description |
|---|---|---|---|
| component_filter | string | – | Case-insensitive substring matched against component names and their group names in detailed mode (e.g., "api" to check just the API components, or a product or region a page groups components under)… |
| component_limit | integer | – | Maximum components returned per vendor in detailed mode, at least 1. A value above 500 is reduced to 500, and notice says so. Large status pages publish hundreds of components, so a full stack at a h… |
| mode | string | – | summary: indicator + degraded components + active incidents. detailed: adds component lists and maintenance windows. |
| stack_name | string | – | Name for this vendor stack. Defaults to "default". Use distinct names to manage multiple stacks (e.g., "production", "data-layer"). Letters, digits, hyphens, and underscores, optionally separated by… |
| vendors | array | – | Vendor slugs (e.g., "github", "aws") or raw Atlassian Statuspage base URLs. When provided, saves this list as the stack where stacks are saved; a list longer than 20 is then rejected and nothing is s… |
| Name | Type | Req | Description |
|---|---|---|---|
| cap | number | – | The per-vendor component_limit that was applied. Present only when truncated. |
| checked_at | string | – | ISO 8601 UTC timestamp of this check. |
| deferred_vendors | array | – | Entries past the first 20, verbatim and in order, that were not checked on this call: the rest of a passed vendors list on a deployment that saves no stacks, or of a saved stack holding more than 20.… |
| error | object | – | Present when the call failed. Absent on success. |
| health | string | – | Aggregate health rollup over each checked vendor's rating — the worse of its indicator and its worst open incident rated minor or worse — taking the worst rung that applies: major_outage = a vendor r… |
| nextToolSuggestions | array | – | One devops_suggest_action call per vendor with an active problem — an indicator of minor, major, or critical, or an open incident of that impact even while the indicator reads none or maintenance; th… |
| notice | string | – | Plain-language explanation of what this call left out or adjusted, in this order: vendors past the first 20 (listed in deferred_vendors), and for a saved stack how to sweep every one; a component_lim… |
| omitted_vendors | array | – | Entries that could not be resolved or whose URL was blocked; they still appear in vendors[] with an error. A call that saved the stack left them out of the write; a call that reused a saved stack lea… |
| persistence_notice | string | – | Present when this deployment saves no stacks because callers are not authenticated: nothing was saved, and vendors must be passed on every call. |
| shown | number | – | Components returned across the stack. Present only when truncated. |
| stack_name | string | – | Name of the stack checked. |
| stack_persisted | boolean | – | True when the vendor list was saved on this call. Only the vendors that resolved are saved — see omitted_vendors. Always false on a deployment that does not authenticate callers, which saves no stack… |
| summary | object | – | Aggregate health counts across all checked vendors. Each vendor is rated by the worse of its indicator and its worst open incident rated minor or worse; an incident rated none or maintenance never ra… |
| totalCount | number | – | Components matching component_filter across the stack before the cap. Present only when truncated. |
| truncated | boolean | – | True when at least one vendor's component list was capped at component_limit — those vendors carry next_component_offset. Absent when nothing was capped. |
| vendors | array | – | Per-vendor status results for the vendors checked, in stack order. |
No examples provided.
How do I install the io.github.cyanheads/devops-status-mcp-server server?
io.github.cyanheads/devops-status-mcp-server is a hosted endpoint at https://devops-status.caseyjhand.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · devops-status.caseyjhand.com
claude mcp add --transport http cyanheads-devops-status-mcp-server 'https://devops-status.caseyjhand.com/mcp'
What is the io.github.cyanheads/devops-status-mcp-server server?
io.github.cyanheads/devops-status-mcp-server is listed in the public MCP registry as io.github.cyanheads/devops-status-mcp-server. Vendor status pages, TLS cert inspection, DNS propagation checks, and incident-response playbooks. This page covers its hosted endpoint (https://devops-status.caseyjhand.com/mcp).
Is the io.github.cyanheads/devops-status-mcp-server server safe to use?
io.github.cyanheads/devops-status-mcp-server scores 88 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.cyanheads/devops-status-mcp-server server expose?
io.github.cyanheads/devops-status-mcp-server exposes 7 tools: devops_list_vendors, devops_status_check, devops_get_incidents, devops_watch_stack, devops_check_certs, and 2 more. Their descriptions and schemas cost roughly 4,596 tokens of context every time the server is loaded.
Does the io.github.cyanheads/devops-status-mcp-server server require authentication?
No. We connected to io.github.cyanheads/devops-status-mcp-server without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the io.github.cyanheads/devops-status-mcp-server server still maintained?
io.github.cyanheads/devops-status-mcp-server is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.