devops-status-mcp-server
Access Akamai's status page to check health, active incidents, and incident history.
Check AWS Health Dashboard status, active incidents, and incident history via native API adapter.
Check Atlassian's status page for current health and incidents.
Check Auth0's status page for current health and incidents.
Check Brevo's status page for current health and incidents.
Check CircleCI's status page for current health and incidents.
Check Clerk's status page for current health and incidents.
Check Cloudflare's status page for current health and incidents.
Check Cloudinary's status page for current health and incidents.
Check Datadog's status page for current health and incidents.
Check DigitalOcean's status page for current health and incidents.
Check Discord's status page for current health and incidents.
Check Elastic Cloud's status page for current health and incidents.
Check ElevenLabs' status page for current health and incidents.
Check Figma's status page for current health and incidents.
Check GitHub's status page for current health and incidents.
Check GitLab's status page (via Status.io adapter) for current health and incidents.
Check Grafana Cloud's status page for current health and incidents.
Check HubSpot's status page for current health and incidents.
Check InfluxDB Cloud's status page for current health and incidents.
Check Mailgun's status page for current health and incidents.
Check MongoDB Atlas's status page for current health and incidents.
Check Netlify's status page for current health and incidents.
Check npm's status page for current health and incidents.
Check OpenAI's status page for current health and incidents.
Check PlanetScale's status page for current health and incidents.
Check Redis Cloud's status page (via Firehydrant adapter) for current health and incidents.
Check Render's status page for current health and incidents.
Check SendGrid's status page for current health and incidents.
Check Sentry's status page for current health and incidents.
Check Slack's status API for current health and incidents.
Check Snyk's status page for current health and incidents.
Check Supabase's status page for current health and incidents.
Check Twilio's status page for current health and incidents.
Check Upstash's status page for current health and incidents.
Check Vercel's status page for current health and incidents.
This server has a remotely hosted endpoint. Open its connector listing for connection details, authentication requirements, and setup instructions:
Public Hosted Server: https://devops-status.caseyjhand.com/mcp
Overview
Status pages for 71 vendors — AWS, Google Cloud, Azure, Slack, and more — in one normalized format. Check who's down, pull incident timelines, watch your stack, and get an incident-response playbook. Plus TLS certificate and DNS checks for any domain. No API keys required.
Tools
Tool | Description |
| List vendors in the built-in registry, optionally filtered by name or category. Returns slug, display name, category, and status page URL. |
| Check the current health status for one or more vendors. Returns per-vendor indicator ( |
| Fetch incident history for a vendor — active, resolved, or scheduled maintenance. Returns the full incident timeline with per-update bodies and affected components. |
| Check the health of a named vendor stack. Where the server identifies the caller (stdio, or HTTP with |
| Inspect SSL/TLS certificate health for one or more domains via a real TLS handshake. Reports expiry, chain depth, protocol version, cipher suite, and HSTS presence on HTTP ports. Pure TypeScript — no external API. |
| Resolve DNS records and verify propagation for one or more domains across Google (8.8.8.8), Cloudflare (1.1.1.1), and Quad9 (9.9.9.9). Reports per-resolver latency and resolver discrepancies. Pure TypeScript — no external API. |
| Instruction tool — returns a tailored incident-response playbook and pre-filled follow-up tool calls given a vendor name and optional incident context. No external calls; fully deterministic. |
Resources
Resource | Description |
| Full registry entry for a vendor by slug — status page URL, category, and API type. |
All resource data is also reachable via tools. Tool-only agents are fully supported.
Related MCP server: Visual Sentinel MCP Server
Capability reference
devops_list_vendors tool
Optional free-text
query(name and slug, case-insensitive) and optionalcategory:cloud,cdn-edge,dev-platform,data,comms,auth,monitoring,aiReturns slug (what to pass to other tools), display name, category, and status page URL; an empty result carries a
noticenaming what missed71 built-in entries, most on Atlassian Statuspage;
aws,gcp,azure,azure-devops,gitlab,neon,slack,redis-cloud, and the nine Datadog site entries (datadogfor US1,datadog-us3,datadog-us5,datadog-eu1,datadog-uk1,datadog-ap1,datadog-ap2,datadog-us1-fed,datadog-us2-fed) use native-API adapters. Statuspage-compatible pages not in the registry work by passing a raw base URL to other toolsThese Atlassian products have their own entry (
jira,confluence,bitbucket,jira-service-management,atlassian-compass,atlassian-developer,trello,opsgenie,atlassian-statuspage,atlassian-guard).atlassianreads the umbrella page, which publishes no components and only cross-product incidents; any tool serving it says so innoticeand names those slugs
Built-in vendor registry:
Category | Vendors |
| digitalocean, linode, aws, gcp, azure |
| cloudflare, akamai |
| gitlab, github, azure-devops, npm, vercel, netlify, render, fly-io, circleci, travis-ci, snyk, atlassian, jira, confluence, bitbucket, jira-service-management, atlassian-compass, atlassian-developer, trello, figma, launchdarkly |
| mongodb-atlas, planetscale, supabase, neon, redis-cloud, elastic, influxdb, upstash, cloudinary, segment |
| slack, discord, twilio, sendgrid, mailgun, hubspot, brevo, courier, loops |
| auth0, clerk, workos, atlassian-guard |
| datadog, datadog-us3, datadog-us5, datadog-eu1, datadog-uk1, datadog-ap1, datadog-ap2, datadog-us1-fed, datadog-us2-fed, sentry, new-relic, grafana-cloud, honeycomb, opsgenie, atlassian-statuspage |
| openai, anthropic, elevenlabs, pinecone, cohere |
devops_status_check tool
Accepts vendor slugs (e.g.,
github,aws) or raw Atlassian Statuspage base URLs, mixed freely. Up to 20 are checked per call; the rest come back indeferred_vendorswith anoticeto resend them. More than 100 entries is rejected (invalid_arguments)mode: "summary"(default) returns the indicator, degraded components, and active incidents;mode: "detailed"adds the full component list (component_limit, default 50, clamped to 500) and scheduled maintenance windows.component_filtermatches component or group namesA list longer than
component_limitpages: each capped vendor returnsnext_component_offset, which you pass back ascomponent_offset(applied aftercomponent_filter).degraded_componentsandactive_incidentsare complete on every pageOne failing vendor never blocks the rest (per-vendor
errorfield). Results are cached for 60 seconds (cached: true), andsummarycountsoperational/degraded/down/maintenance/unavailableindicatoris the vendor's own rating, and a Statuspage page can keep it atnonewhile an incident it ratedminoror worse is open.summarycounts each vendor at the worse of the two; incidents ratednoneormaintenanceand scheduled windows never count as an outagenextToolSuggestionspre-fills adevops_suggest_actioncall for each vendor with an active problem — the vendors counteddegradedordown
devops_get_incidents tool
filter:all(default),active,resolved, orscheduled(maintenance windows only).limit(default 20, max 50) withoffsetfor pagingReturns per-update bodies as plain text in chronological order, affected component names, duration in minutes for resolved incidents, and a shortlink. Google Cloud and AWS incidents also carry
affected_locations(region ID, name, and whether it is still affected; on AWS, the one region the event names, orglobal). Each incident carriessource:api, orhistoryfor an archive record (title, impact, times, and final message only)sinceanduntil(YYYY-MM-DD, UTC) bound the start date and work withfilter: "all"or"resolved";sincealso reads the Statuspage history archive back up to 24 months, past the API's newest-50 limit; a call that hits that limit withoutsinceis told to set it.matchkeeps incidents whose title, component names, or (on Google Cloud and AWS) location names and IDs contain every space-separated term given (up to 200 characters); a term joined by punctuation, such aseu-central-1, must find its words together and in order within one of themResponses are capped at 64,000 bytes per surface; a cut page sets
truncated: trueandnextOffset.full_updates: truekeeps every update on a single oversized incidentErrors:
invalid_sinceandinvalid_until(filter: "active"or"scheduled", oruntilbeforesince)Feeds with no data for a filter return empty:
resolvedfor Azure,scheduledfor AWS, Azure, Azure DevOps, Google Cloud, and Slack. History is short where a vendor reads no archive: AWS keeps resolved events for a few hours, and Status.io (gitlab,neon) lists current incidents only. On those feeds asinceearlier than the oldest record returned, or anuntilwithoutsince, gets anoticenaming the date the feed starts
devops_watch_stack tool
Pass
vendors(up to 20) once to save the stack understack_name(1-64 characters; several stacks can coexist, e.g."production"); later calls can omitvendors. Over 20 is rejected withstack_too_large. Saving works on stdio and on HTTP withMCP_AUTH_MODE=jwt|oauth; with the defaultin-memorystorage, saved stacks do not survive a restartOn HTTP with
MCP_AUTH_MODE=nonenothing is saved: a call withvendorsruns the sweep and returnsstack_persisted: false, and a call withoutvendorsfails withvendors_requiredAggregate
health:all_operational/maintenance/degraded/partial_outage/major_outage/unknown(a vendor could not be reached), rolled up from the same per-vendor rating assummary.component_limitandnextToolSuggestionswork as indevops_status_check; there is nocomponent_offset, so a capped vendor'snext_component_offsetcontinues indevops_status_check
devops_check_certs tool
Accepts hostnames, IP addresses,
host:port, or URLs; a port on the entry overridesport(default 443). The first 10 entries are inspected (up to 100 accepted); the rest come back indeferred_domainsto resendReports days to expiry (
warningunder 30 days,criticalunder 7), subject and SANs, issuer, chain depth, TLS version (1.0 and 1.1 flagged insecure), cipher suite, and HSTS on HTTP portsstatus: "critical"separates a hostname mismatch (hostname_verification_error) from an untrusted chain (authorization_error). Per-domain failures come back inline asstatus: "error"with the reason inerrortimeout_msis one deadline per domain (max 15000)
devops_check_dns tool
Accepts domain names, URLs, or
host:port; the first 10 domains are queried (up to 100 accepted) and the rest come back indeferred_domains. IP addresses get their ownerrorrowQueries Google (8.8.8.8), Cloudflare (1.1.1.1), and Quad9 (9.9.9.9) in parallel for A, AAAA, CNAME, MX, TXT, NS, CAA, and SOA (default A, AAAA, MX, TXT)
Reports per-resolver latency and typed discrepancies:
partial_resolution(some resolvers did not answer) is a real problem;value_variation(different values) is normal for anycast or geo-steered domainsCustom
resolverstake public IP literals, first 5 queried and the rest indeferred_resolvers; private and loopback addresses needDEVOPS_STATUS_ALLOW_PRIVATE_TARGETS=true.timeout_msapplies per domain and resolver (max 10000)
devops_suggest_action tool
Takes a vendor slug or display name and returns a category-tailored markdown playbook, with generic guidance for unrecognized vendors
Optional
incident_summary,affected_components, andvendor_indicatoradd a subsystem section and severity-based urgencynextToolSuggestionspre-fills follow-up calls, including cert and DNS checks whenyour_domainis given. WithDEVOPS_STATUS_DISABLE_ACTIVE_PROBES=true, guidance uses manual commands (dig,openssl s_client) instead
devops-status://vendors/{name} resource
Returns the full registry entry for a vendor slug: status page URL, category, API type (
statuspage,statusio,slack,aws,gcp,azure,azure-devops,firehydrant,datadog),component_scope_prefixwhere a vendor covers part of a shared page (sendgrid), andproduct_slugson an umbrella page that publishes no components (atlassian)Cached publicly for 1 hour; the same data is reachable via
devops_list_vendors
Features
Built on @cyanheads/mcp-ts-core: stdio and Streamable HTTP transports, pluggable auth (none / jwt / oauth), swappable storage (in-memory, filesystem, Supabase, Cloudflare KV/R2/D1), structured logging with optional OpenTelemetry tracing.
DevOps-status-specific:
No API keys required — every status backend is a public API; TLS and DNS use the Node.js standard library
71-vendor built-in registry across eight categories; native adapters normalize Status.io, Slack, AWS Health, Google Cloud, Azure, Azure DevOps, Firehydrant, and Datadog into the Statuspage shape
Vendor-authored text is escaped so it reads as data, not markup; DNS record values and certificate names render as code spans that read back exactly as resolved
60-second in-memory cache on status reads, shared across tenants
devops_watch_stacksaves named vendor lists for repeat checks and pre-deploy sweepsdevops_suggest_actionis deterministic, with no LLM sampling dependency
Agent skill:
devops-status-guidecarries the gates for using these tools together: what a status reading can and cannot establish, how far incident history reaches on each backend, where regions live, and how to diagnose a DNS change or a certificate failure. MCP clients read it from the server asskill://devops-status-guide/SKILL.md; it also ships in the npm package, the Docker image, and the.mcpbbundle, and plugin installs scan it fromskills/.
Agent-friendly output:
Batch tools never let one failing target block the rest; errors come back as inline
errorfieldschecked_aton every status result is the time of the check;cached: truemarks a status read served from the cache, which can be up to the cache TTL (60 seconds by default) olderFixed indicator and status enums (
none/minor/major/critical/maintenance) let callers branch on datanextToolSuggestionspre-fills follow-up tool arguments from incident context
Getting started
Connect to the hosted instance, no install:
claude mcp add --transport http devops-status-mcp-server https://devops-status.caseyjhand.com/mcpOr run it locally:
claude mcp add devops-status-mcp-server -- npx -y @cyanheads/devops-status-mcp-serverFor other clients, add this to the MCP config file:
{
"mcpServers": {
"devops-status-mcp-server": {
"command": "npx",
"args": ["-y", "@cyanheads/devops-status-mcp-server"]
}
}
}No API key required. For Docker or a source build, see Running the server.
Configuration
No API keys required. All environment variables are optional.
Variable | Description | Default |
| In-memory cache TTL for vendor status reads (all backends) in milliseconds. |
|
| Per-request timeout for vendor status API calls (all backends) in milliseconds. |
|
| Default |
|
| Default |
|
| When |
|
| When |
|
| Transport: |
|
| Port for HTTP server. |
|
| HTTP session handling: |
|
| Auth mode: |
|
| Log level (RFC 5424). |
|
| Directory for log files (Node.js only). |
|
| Enable OpenTelemetry instrumentation. |
|
An invalid DEVOPS_STATUS_* value stops startup with an error naming the variable.
See .env.example for the full list of optional overrides.
Running the server
Local development
Requires Bun v1.4.0 or higher (or Node.js v24+).
Clone and install:
git clone https://github.com/cyanheads/devops-status-mcp-server.git cd devops-status-mcp-server && bun install cp .env.example .env # optional overridesBuild and run:
bun run rebuild bun run start:stdio # or bun run start:httpRun checks and tests:
bun run devcheck # Lint, format, typecheck, security bun run test # Vitest test suite bun run lint:mcp # Validate MCP definitions against spec
Docker
docker run --rm -p 3010:3010 ghcr.io/cyanheads/devops-status-mcp-server:latestThe image defaults to HTTP transport, stateless session mode, and logs to /var/log/devops-status-mcp-server. To run it over stdio from an MCP client, use "command": "docker" with "args": ["run", "-i", "--rm", "-e", "MCP_TRANSPORT_TYPE=stdio", "ghcr.io/cyanheads/devops-status-mcp-server:latest"]. To build locally, docker build -t devops-status-mcp-server .; OpenTelemetry peer dependencies are installed by default — build with --build-arg OTEL_ENABLED=false to omit them.
Project structure
Path | Purpose |
|
|
| Server-specific environment variable parsing and validation with Zod. |
| Tool definitions ( |
| Resource definitions ( |
|
|
| DNS wire client ( |
| Statuspage public API client (reads through the shared cache in |
| Native-API adapters (Status.io, Slack, AWS Health, Google Cloud Service Health, Azure status, Azure DevOps status, Firehydrant, Datadog), the shared RSS extractor, + |
| In-memory vendor registry loaded from |
| Static vendor registry data file ( |
| Shared helpers — response cache and fetch, SSRF guard, domain-entry normalizer, HTML-to-text, vendor-text markdown escaping, code-span rendering of DNS and certificate values, input-bound notices, word matching. |
| Published agent skill ( |
| Vitest tests mirroring |
Development guide
See CLAUDE.md for development guidelines and architectural rules. The short version:
Handlers throw, framework catches — no
try/catchin tool logicUse
ctx.logfor request-scoped logging,ctx.statefor tenant-scoped storageRegister new tools and resources via the barrels in
src/mcp-server/*/definitions/index.tsdevops_check_certsanddevops_check_dnsuse only Node.js stdlib — add no external deps for these paths
Contributing
Issues are welcome. Run checks and tests before submitting:
bun run devcheck
bun run testLicense
Apache-2.0 — see LICENSE for details.
This server cannot be deployed
Maintenance
Related MCP Connectors
Monitors TLS/SSL certificate expiry, DNS resolution, and TCP port status for AI agents.
Monitoring for agencies — uptime, SSL, DNS, blocklists, AI visibility, MCP health. 8 no-auth tools.
Monitor SSL certs (incl. origin behind Cloudflare), domain expiry, DNS, email auth and blacklists.
DNS, TLS, HTTP and SEO checks, plus stateful change watches that diff a page over time.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides comprehensive tools for real-time DNS queries across 53 record types, global propagation checks, and SSL certificate analysis. It also enables domain security scans for SPF/DKIM/DMARC configurations and HTTP uptime monitoring.889 npm23Apache 2.0
- AlicenseAqualityBmaintenanceWebsite monitoring for AI assistants. Visual Sentinel catches pages that look broken even when the site is up. DNS, SSL, speed and website checks need no account; monitors, incidents and alerts need an API key (Business and Agency plans).1622 npm1MIT
- AlicenseNot gradedqualityBmaintenanceProvides live infrastructure monitoring for AI agents, including domain health checks, MCP server security posture, email blacklists, broken-link scans, and cloud vendor status. No signup or API key needed for public tools.MIT

uptybots-mcp-serverofficial
AlicenseAqualityDmaintenanceUptime monitoring for websites, APIs, SSL certificates, domain expiry, ping and TCP/UDP ports. 15 tools to list, create, pause and delete monitors, pull incident timelines with error codes, and read hourly or daily uptime and response-time statistics.1563 npm1MIT