About Openstatus
Openstatus is an MCP server published by openstatusHQ in the Cloud category: open-source status page, incident response and uptime monitoring.
The repository has 9.2K stars and 803 forks, with the last commit 2 days ago. Recent commit activity is the strongest signal that reported issues will get attention.
Install
git clone https://github.com/openstatusHQ/openstatusThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (40)
add_incident_noteAppend a note to a managed incident
Parameters not published.
add_maintenance_updateAppend a public update to an existing maintenance. PUBLIC, AUDIT-LOGGED, AND POTENTIALLY NOTIFIES SUBSCRIBERS. The maintenanceId MUST come from list_maintenances. Subscriber notification is only available during this call.
Parameters not published.
add_status_report_updateAppend a new public update to an existing status report. PUBLIC, AUDIT-LOGGED, AND POTENTIALLY NOTIFIES SUBSCRIBERS — irreversible side effects. Sets the report
Parameters not published.
approve_postmortemApprove a managed incident
Parameters not published.
create_maintenanceSchedule a maintenance window on a status page. PUBLIC, AUDIT-LOGGED, AND POTENTIALLY NOTIFIES SUBSCRIBERS — irreversible side effects. Subscriber notifications dispatch as part of this call only — no retroactive notify. The maintenance row persists even if the notify dispatch fails;
Parameters not published.
create_status_reportCreate a new status report on a public status page. PUBLIC, AUDIT-LOGGED, AND POTENTIALLY NOTIFIES SUBSCRIBERS — irreversible side effects. Subscriber notifications dispatch as part of this call only — no retroactive notify. The report persists even if the notify dispatch fails;
Parameters not published.
declare_incidentDeclare a managed incident: the team
Parameters not published.
delete_maintenance_updateDelete a maintenance timeline entry. PUBLIC, AUDIT-LOGGED, AND IRREVERSIBLE. A maintenance must retain at least one update. The update id MUST come from list_maintenances (or a prior create/add result).
Parameters not published.
delete_status_report_updateDelete a status report timeline entry. PUBLIC, AUDIT-LOGGED, AND IRREVERSIBLE. The report
Parameters not published.
draft_postmortemSave a postmortem draft for a resolved managed incident. Build it from get_incident (timeline, linked status report) and the conversation; never invent facts. Replaces an existing draft; an approved postmortem can
Parameters not published.
Show all 40 tools
get_audit_logFull detail of a single audit-log entry: before/after snapshots and changedFields for the diff view. Use after list_audit_logs to drill into one entry. Requires the
Parameters not published.
get_content_pageFetch the full markdown content of any public openstatus.dev page by path (as returned by search_content), e.g. pricing, blog/…, compare/…, use-case/…. Superset of get_doc_page.
Parameters not published.
get_doc_pageFetch the full markdown content of a documentation, guide, or changelog page by path (as returned by search_docs).
Parameters not published.
get_incidentGet one managed incident with its timeline (newest first, up to 50 events) and linked status report.
Parameters not published.
get_monitorGet the full configuration for a single monitor: URL, regions, periodicity, retry/timeout, notification channels, tags. Use after list_monitors when the user asks for detail on a specific monitor. Does NOT return latency or status — use get_monitor_summary or get_monitor_status for that.
Parameters not published.
get_monitor_statusPer-region health for a monitor (one row per configured region: active/degraded/error). Report at the worst region
Parameters not published.
get_monitor_summaryAggregate health metrics for a monitor over a time window: success/degraded/error counts and p50–p99 latency. Default 1d. Pair with get_monitor_status for per-region detail.
Parameters not published.
get_postmortemRead a managed incident
Parameters not published.
get_response_logFull detail of a single HTTP response log: URL, response headers (sensitive values redacted), error message, assertion results, and — for failed or degraded checks only — the response body (redacted, truncated). Use after list_response_logs to drill into one specific failure; the body often says why it failed (e.g. a health check naming the dependency that timed out).
Parameters not published.
get_status_reportGet one status report with its FULL timeline newest-first under
Parameters not published.
get_workspaceThe current workspace: name, slug, plan, trial end and usage counts for monitors, status pages, components, notification channels and status reports. Use to answer which-plan or how-many questions. Plan limits and billing identifiers are NOT exposed.
Parameters not published.
list_audit_logsList audit-log entries (mutating actions) for this workspace, newest first. Bounded to the last 14 days. Returns one summary row per entry — call get_audit_log with the numeric audit-log id to see the before/after diff. Optionally filter to a single entity via entityType + entityId. Requires the
Parameters not published.
list_incidentsList managed incidents in this workspace (declared by the team, not monitor downtime), newest declared first. Filter by
Parameters not published.
list_maintenancesList maintenance windows in this workspace, newest first. Returns timeline update ids so edit/delete can target a specific entry. Paginated via
Parameters not published.
list_monitorsList monitors in this workspace, newest first. Use to discover the numeric monitorId required by get_monitor, get_monitor_status, get_monitor_summary, list_response_logs. Paginated via
Parameters not published.
list_notificationsList notification channels (email/Slack/Discord/PagerDuty/Webhook/etc.) configured in this workspace, with the monitors each one is wired to. Read-only — channel credentials/data are NOT exposed. Use to advise whether alerts will fire for a given monitor.
Parameters not published.
list_page_componentsList page components in this workspace with their id, name, type (
Parameters not published.
list_private_locationsList private locations (self-hosted checker agents) in this workspace, with the monitors each one runs and when it last reported in. Read-only — agent tokens are NOT exposed.
Parameters not published.
list_response_logsCheck results for a monitor, newest first (per-region, with status code, latency, and request status). Use to diagnose
Parameters not published.
list_status_pagesList status pages in this workspace with their slug and ids. Use to discover the pageId required by create_status_report and create_maintenance.
Parameters not published.
list_status_reportsList status reports in this workspace, newest first. Filter by status (e.g. exclude
Parameters not published.
resolve_incidentMark a managed incident resolved. Does not touch its status report: resolve that separately with resolve_status_report if it is still open.
Parameters not published.
resolve_status_reportResolve an active status report. Appends a final public update with the supplied message and flips status to
Parameters not published.
search_contentSearch every public openstatus.dev page — marketing/product pages (pricing, features), blog, comparisons, use cases, customer stories, tooling, plus docs/guides/changelog. Broader than search_docs; prefer search_docs for pure how-to questions. Narrow with
Parameters not published.
search_docsSearch the public openstatus documentation, guides, or changelog. Returns scored results with title, snippet, url, and a path usable with get_doc_page.
Parameters not published.
set_incident_statusMove a managed incident to mitigated, resolved, canceled (false alarm) or back to open. Canceling closes it for good. Does not touch its status report.
Parameters not published.
update_incidentChange a managed incident
Parameters not published.
update_maintenance_updateEdit an existing maintenance timeline entry. PUBLIC and AUDIT-LOGGED. Does not notify subscribers. The update id MUST come from list_maintenances (or a prior create/add result).
Parameters not published.
update_status_reportEdit metadata on an existing status report (title, status, affected components). Does NOT add a public update — use add_status_report_update for that. Does NOT and CANNOT notify subscribers — there is no notify path on this tool because metadata edits do not create a new update entry to dispatch. Audit-logged.
Parameters not published.
update_status_report_updateEdit an existing status report timeline entry (message, date, status, component impacts). PUBLIC and AUDIT-LOGGED. Does not notify subscribers. Editing the latest entry
Parameters not published.
Ask AI
Ask AI about Openstatus
Powered by Claude
Security checks
Static checks derived from the repository 3 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- ✓Tests presentA test suite exists in the repository.
- ✓Dependencies pinnedA lockfile pins dependency versions.
2 checks have not been run yet.
README
About openstatus
openstatus is the open-source status page, incident response and uptime monitoring platform built for infra as code. Run incidents from Slack or your AI agent. Declare monitors and status pages in code. Let your agents update them.
Monitors, status pages, and notification channels are declared in YAML or Terraform, applied from the CLI or CI, and operable from Claude, ChatGPT, or Cursor over MCP. Available as a managed service or self-hosted.
Why openstatus?
- Infra as code — monitors, status pages, and notifications in YAML or Terraform, applied from the CLI or CI
- Built for humans and agents — MCP server,
--jsonCLI, typed API, read-only or read-write key scopes, every mutation in the audit log - Status pages + monitoring in one tool — no need to wire up a separate monitoring service
- 28 global regions checking in parallel across 3 cloud providers
- Flat pricing, unlimited members — no per-seat or per-subscriber charges
- Open source & self-hostable — AGPL-3.0, private-locations run in a single 8.5MB Docker image
- Incident response — declare and run incidents from the dashboard or Slack, with severity, commander, and a full timeline
- Incident communication — subscriber notifications via email, RSS, and webhooks
Status pages
Beautiful, customizable status pages with custom domains, password protection, maintenance windows, and subscriber notifications via email and RSS. Build trust and keep your users informed during incidents.
Uptime Monitoring
Monitor your servers, websites and APIs from 28 regions across multiple cloud providers globally. Get notified via Slack, Discord, PagerDuty, email, and more when your services are down or slow.
Incident response
Declare, coordinate, and resolve incidents from the dashboard or right inside Slack.
- Dashboard — declare an incident, set its severity (critical, major, minor), assign a commander, and move it from open → mitigated → resolved. Every change lands on the incident timeline.
- Slack — mention the openstatus agent to declare, update, resolve, or add notes to an incident without leaving the conversation. Bind an incident to a Slack channel so the team coordinates in one place.
- Status page updates — link a status report to an incident so your users see what your team is working on.
- Agents — the same incident tools are available over MCP, so Claude, ChatGPT, or Cursor can manage incidents too.
Recognitions
Tooling
Everything the dashboard does is reachable from your terminal, your infrastructure code, and your AI assistant — all sharing a single API key.
- API — typed JSON-over-HTTP (ConnectRPC) with a Node SDK
- CLI — interactive for humans,
--jsonfor agents, YAML monitoring as code - Terraform — monitors, notifications, and status pages as HCL
- MCP server — connect Claude, ChatGPT, Cursor, or any MCP client to your workspace
Getting Started
With Docker (Recommended)
The fastest way to get started for both development and self-hosting:
# 1. Copy environment file
cp .env.docker.example .env.docker
# 2. Start all services
docker compose up -d
# 3. Access the application
open http://localhost:3002 # Dashboard
open http://localhost:3003 # Status Pages
Full guide: DOCKER.md
Self-Hosting with Coolify
We provide pre-built Docker images for easy deployment:
ghcr.io/openstatushq/openstatus-server:latest
ghcr.io/openstatushq/openstatus-dashboard:latest
ghcr.io/openstatushq/openstatus-workflows:latest
ghcr.io/openstatushq/openstatus-private-location:latest
ghcr.io/openstatushq/openstatus-status-page:latest
ghcr.io/openstatushq/openstatus-checker:latest
Complete Coolify Deployment Guide
Self-Hosting with Railway
Deploy the full stack (dashboard, status pages, API, workflows, probes, libSQL, and Tinybird Local) to one Railway project with one click:
The template source and the setup instructions are in ephraimduncan/openstatus-railway.
Manual Setup
Requirements
Dashboard
See apps/dashboard/README.md for full steps (env, db, login, troubleshooting).
Status page
- Install dependencies
pnpm install
- Run the server
pnpm -w dev:status-page.
Web (marketing site)
- Install dependencies
pnpm install
- Run the server
pnpm -w dev:web.
Tech Stack
- Next.js - Dashboard
- Hono - API server
- Go - Checker
- Turso - Database
- Drizzle - ORM
- Tinybird - Analytics
- Tailwind CSS - Styling
- shadcn/ui - UI components
Contributing
If you want to help us build the best status page and monitoring platform, check our contributing guidelines.
Contact
Interested in our enterprise plan or need special features? Email us at ping@openstatus.dev or book a call.
License
Distributed under the AGPL-3.0 License.
README fetched from the repository 3 days ago. The original is authoritative.