Staygreen: Uptime and Incident Monitoring

Uptime and incident monitoring for apps built with coding agents. Ask your agent what's broken: it reads status, uptime, response times, incident evidence and SSL and domain expiry. It can scan an app, set up its checks, status page and cron heartbeats in one call, add a monitor, pause monitors, and draft an incident update for you to publish. Sign in with OAuth or use a workspace API token.

Hosted MCP Server

npx add-mcp 'https://staygreen.io/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

Staygreen

Uptime and incident monitoring for apps built with coding agents: checks from more than one location, incidents with the evidence attached, and a public status page for each app. Free plan at staygreen.io.

This repository is Staygreen's public issue tracker, the home of its MCP server's listing, and the source of the staygreen command-line package and local MCP server (CLI.md), under the Apache 2.0 license. The rest of Staygreen's code opens here in November 2026.

Connect an agent (MCP)

Staygreen's MCP server is at https://staygreen.io/mcp (streamable HTTP). Every call requires sign-in; there is no anonymous tool.

Sign in: no token to handle

Add https://staygreen.io/mcp to an MCP client that supports signing in (OAuth), then sign in with your Staygreen account and choose the workspace. If you don't have an account yet, signing up there creates a Free workspace; you don't need to open the dashboard first. The connection can read and change that workspace's monitors, and you must be an administrator of it.

Add Staygreen to Cursor Install Staygreen in VS Code

Claude Code:

claude mcp add --transport http staygreen https://staygreen.io/mcp

Then run /mcp, choose staygreen and Authenticate. In Claude, add it as a custom connector with the same URL.

With an API token (CI and scripts)

An administrator creates a token in the dashboard under Agents and API: read-only or read-and-write, shown once. Send it as Authorization: Bearer <token>. The same token works on the MCP server and on the REST API (https://staygreen.io/api/v1/<tool>).

claude mcp add --transport http staygreen https://staygreen.io/mcp \
  --header "Authorization: Bearer $STAYGREEN_API_TOKEN"

Local server (npm)

The staygreen package runs the same tools as a local stdio server and calls the REST API with a workspace API token. Node 22 or later.

claude mcp add staygreen -e STAYGREEN_API_TOKEN=… -- npx -y staygreen mcp

Without a token only scan_app works. Configuration for Claude Desktop, Cursor and VS Code, and the package's scan and provision commands, are in CLI.md.

Tools

ToolWhat it does
get_statusCurrent status of one app or every app: monitors, page components and open incidents
list_monitorsMonitors in your workspace, filtered by app, type or state, with each one's last check
get_uptimeMeasured uptime, downtime minutes, incident counts and daily history. Unmeasured time is no data, not 100%
get_response_timesResponse-time series for a monitor, by city and country
get_incidentsIncident evidence and timelines: failing assertions, locations and masked snippets
get_ssl_and_domain_expiryCertificate and domain expiry dates for monitored hosts
scan_appA one-time scan of a public app URL. Optional keys are used once and never stored. Creates nothing
provision_appSets up an app's website check, SSL and domain check, status page and cron heartbeats in one call
create_monitorAdds one monitor to an app, with the dashboard's own checks and plan limits
pausePauses one monitor or one app's monitors for up to 24 hours, then resumes them
draft_incident_updateSaves an incident note as a draft. It appears publicly only once you publish it in the dashboard

Writes take a request_id UUID: repeat it with the same inputs to retry safely. Deleting, alert channels, teammates, billing and publishing are not available to agents. Calls share your workspace's budget: 30 a minute on Free, 120 on Builder.

Report a bug or suggest a feature

Open an issue. Say what you did, what you expected, and what happened instead; the monitor type and the screen help.

Issues are public. Never paste a heartbeat URL, an API token, a header value, or anything else your monitors keep secret. A heartbeat URL is the only credential for that heartbeat: anyone holding it can ping it. If you posted one by mistake, rotate it from the heartbeat's page.

For a security problem, don't open an issue: use private vulnerability reporting instead.

Pull requests aren't accepted until the code opens.