WorksHealth
Uptimepage
Monitor uptime and incidents, run checks, and publish status updates from your Uptimepage org.
https://mcp.uptimepage.dev/mcpclaude mcp add --transport http uptimepage https://mcp.uptimepage.dev/mcpFor Cursor and other clients
{
"mcpServers": {
"uptimepage": {
"type": "http",
"url": "https://mcp.uptimepage.dev/mcp"
}
}
}Watch out
Has tools that change things: 9 of them
The server itself marks these tools as deleting or overwriting data (destructiveHint): have the agent ask you before it calls them.
- Test
- Works: Handshake succeeded
- Tools
- 41 tools
- Handshake
- 1.8 s
- Transport
- streamable-http · 2025-06-18
- Tested
- 6 November 2026
- Registry name
dev.uptimepage/uptimepagev1.6.0- Listed
- 28 October 2026
- Updated
- 28 October 2026
- Website
- uptimepage.dev/mcp-server
The last 1 tests
| When | Result | Time |
|---|---|---|
| 2026-11-06 12:23 UTC | Handshake succeeded | 1.8 s |
The 41 tools it listed
"Read only" and "Changes data" are the server's own marks. Underlined parameters are required.
acknowledge_incidentAcknowledge incident
Acknowledge an incident: take ownership and halt escalation. Internal/operational only — does NOT post anything to the public status page. Use post_incident_update for customer-facing updates. Asks for confirmation where the client can show a prompt; otherwise runs on the token's scope. Not read-only.
idnoteadd_status_page_componentsAdd status page components
Add monitors to a status page as public components, in one confirmation where the client can show a prompt. Give each a public_name the page's readers will understand, since the monitor's own name is operator-facing, and a public_group to file related components together. Monitors already on the page are reported as such rather than duplicated. detail_link_enabled publishes a per-monitor detail view that shows the monitor's real name and address, not public_name. groups adds monitor groups as live sections: a heading with the members' combined state, every member as its own row, and members that join or leave the group joining or leaving the page; members past the plan's public component limit stay off. Not read-only.
componentsgroupsslugcancel_maintenanceChanges dataCancel maintenance
Cancel a maintenance window that has not ended. It leaves the status pages, stops holding paging, and stays listed under past as a record; subscribers already told about it are not sent a cancellation. To stop a running window early and keep it as completed work, use update_maintenance with end_now instead. Asks for confirmation where the client can show a prompt; otherwise runs on the token's scope. Not read-only.
idcreate_maintenanceSchedule maintenance
Schedule a maintenance window for planned work on some monitors. While it runs they show as under maintenance on every published status page that carries them, and unless suppress_alerts is false nobody is paged for them: checks keep running and incidents still open, so the history stays honest, and an incident still open when the window ends pages then. Prefer this over pause_monitor for planned work. Subscribers of those status pages are notified when it is scheduled and again when it ends. Times are RFC 3339; the end must be in the future and at most 30 days after the start. Shows the window, its monitors, whether paging is held and where it is announced, where the client can show a prompt; otherwise runs on the token's scope. Not read-only.
descriptionends_atmonitor_idsstarts_atsuppress_alertstitlecreate_monitorCreate monitor
Create a monitor for an http, tcp, ping, dns, tls_cert, domain_expiry, heartbeat or manual check. A manual monitor has nothing to probe; set its state afterwards with set_monitor_state. The check is run once before anything is saved and the result is shown to the user along with every setting it would apply; where the client can show a prompt, nothing is created unless they approve; otherwise the monitor is created on the token's scope and the trial result comes back with it. Bind it to alerts as you create it: pass channel_ids from list_notification_channels (this needs the channels:read scope), and if the org has no channel yet, say so rather than leaving a monitor that pages nobody. Leave regions unset unless the user named where they want the check to run from — omitted, it probes from the operator's default set, which is already the intended coverage; naming more regions than the plan allows is refused outright. Request headers and a request body can be set, but a credential must
alert_confirmationschannel_idscheckgroup_nameinterval_secsnamenotify_recoveryrecovery_period_secsregion_policyregionsrenotify_interval_secstagscreate_monitorsCreate monitors
Create several monitors at once, with one confirmation covering the batch where the client can show a prompt. Every check is run once first and all the results are shown together, so a misconfigured endpoint is visible before anything is saved. An item that fails validation or its trial run is reported in the results and the rest are still created. Prefer this over repeated create_monitor calls whenever the user names more than one thing to watch: it costs them one prompt instead of many. Same per-monitor fields and same limits as create_monitor. Not read-only.
monitorscreate_status_pageCreate status page
Create a status page. It is created unpublished unless you pass enabled, so its components can be curated before anyone can read it. The slug is the page's public address: it is first-come across the platform and moving it later breaks every existing link, so confirm it with the user rather than inventing one. Pass access with protected true to make it private: only the listed domains and addresses can open it, after signing in with a code sent to their email (Team plan). Add monitors to it with add_status_page_components. Not read-only.
accessenablednameslugget_flow_runsRead onlyBrowser flow runs
A browser flow monitor's recent runs over a window (1h/24h/7d/30d): every declared step with its outcome and duration, the step a failure stopped on, and the page the browser saw. Use this to answer why a login check failed. Read-only.
idwindowget_flow_step_trendRead onlyBrowser flow step trend
How long each step of a browser flow monitor takes over a window (1h/24h/7d/30d), and how far it has moved: per step the earliest and latest mean duration, their ratio, and how many runs passed or failed it. Use this to spot a step drifting toward failure while the monitor still reports up. Read-only.
idwindowget_incidentRead onlyIncident details
One incident: affected monitor, severity, open/resolved times, error sample, the full operator-update timeline, and the status pages an incident with no monitor is posted to. Read-only.
idget_incident_metricsRead onlyIncident metrics
Incident metrics over a trailing window (default 30 days): MTTA/MTTR in seconds, total incidents, counts by severity and state, auto- vs human-resolved, and the noisiest monitors. Read-only.
window_daysget_maintenanceRead onlyMaintenance window details
One maintenance window: title, description, start and end, phase, the monitors it covers, and whether it holds their paging. Read-only.
idget_monitorRead onlyMonitor details
One monitor's full configuration — everything the check asserts (expected status, body match, headers, timeout, redirect and TLS policy), the regions it probes from, and how it alerts (failing checks before it pages, whether recovery is announced, the reminder interval, the multi-region quorum, and the ids of the channels it notifies) — with its current state, last error, and 24h/30d uptime. Every field update_monitor can change is readable here, in the shape that tool takes. Read this before judging whether a response should have passed, or before changing a monitor. Credentials are withheld. Read-only.
idget_monitor_historyRead onlyMonitor history
One monitor's history over a window (1h/24h/7d/30d): uptime, latency series, a per-region split of the same window, failures with error text, and incident windows. Pass `region` to narrow it to one probe region and tell a partial outage from a total one. Read-only.
idregionwindowget_org_healthRead onlyOrg health
Org health summary: per-state monitor totals and the worst currently-failing monitors. The one-shot answer to 'what is broken right now?'. Read-only.
get_org_usageRead onlyUsage against plan
Which org this connector is bound to, and the account's resource usage against plan limits: monitors, status pages, members, components, and key policy values. Caps are pooled across every org the account owns, so the counts can exceed what this one org holds. Read-only.
get_status_pageRead onlyStatus page details
One status page: name, public URL, enabled, subscriber email time zone, its components with each linked monitor's current state, and the monitor groups it shows as sections with their members. Read-only.
sluglist_incidentsRead onlyList incidents
List the org's incidents: incident id, affected monitor, severity, open/resolved times, and latest update phase. Defaults to currently-open ones; pass state="all" with an optional from/to window (default: last 30 days) for resolved history, and monitor_id to narrow to one monitor. Read-only.
cursorfrommonitor_idstatetolist_maintenanceRead onlyList maintenance windows
List maintenance windows: title, start and end, phase (upcoming, active, completed or cancelled), the monitors each covers, and whether it holds their paging. status narrows to active, upcoming or past (ended or cancelled); the default is all, latest start first. Cursor-paginated. Read-only.
cursorstatuslist_monitor_groupsRead onlyList monitor groups
The org's monitor groups, empty ones included: name, whether the group alerts as one (a member's failure opens one group incident that pages the group's channels, and the members' own stay quiet), member count, the group incident open now, its channels, reminder interval, whether another member going down sends a message, and tags. Read-only.
list_monitorsRead onlyList monitors
List monitors with optional state/type/tag filters and cursor pagination. Each item carries its current state and last-checked time. Read-only.
cursorstatetagtypelist_notification_channelsRead onlyList notification channels
The org's notification channels: id, operator-set name, kind (email, slack, telegram, webhook, and so on), and whether the channel is enabled. Two flags say a channel is not working even where it reads as ready: awaiting_verification for an email address nobody confirmed, and not_delivering for an enabled channel whose recent alerts all failed to arrive. auto_bind_tags is the channel's tag rule: it also pages any monitor carrying one of those tags, so a monitor with no binding can still be covered. Channel settings are withheld, since they hold webhook URLs and bot tokens. Channels are created in the Uptimepage app, not here. Read-only.
list_regionsRead onlyList probe regions
The fleet's probe regions: id, display name, city, country, continent, and whether each is on by default for a new monitor. Reports `max_regions` only when the plan reaches fewer regions than the catalog lists, so a set too large to be accepted is visible before it is sent. Use it to pass a valid `region` to get_monitor_history, and to read where a check would run from. This is a catalog, not a menu to fill: leave `create_monitor.regions` unset unless the user named the places they want covered. Read-only.
list_status_page_viewersRead onlyList status page viewers
List who signed in to a private status page: each viewer's address, first and last visit, saved passkeys, whether they subscribe by email, and whether they are blocked; and for the page password, which names nobody, the devices signed in with it, its last sign-in and the wrong tries in 24 hours. Addresses are customer data. Read-only.
sluglist_status_pagesRead onlyList status pages
List the org's status pages: slug, name, public URL, enabled. Cursor-paginated. Read-only.
cursorlist_tagsRead onlyList tags
Every tag in use across the org's monitors, most-used first, with how many monitors carry each. Pass one back as the `tag` filter to list_monitors. Read-only.
list_variablesRead onlyList variables
The org's reusable variables: key, and whether it is a secret. Values are never returned, and a secret's value is never even read. Write a variable into a monitor's header or body as `{{ key }}`, which is resolved when the check runs: this is how an authenticated check is built here, since pasting the credential itself is refused. Variables are created and edited in the app, not here. Read-only.
pause_monitorChanges dataPause monitor
Pause a monitor (stop its checks until resumed). For planned work, create_maintenance holds paging instead while the checks keep running. Asks for confirmation where the client can show a prompt; otherwise runs on the token's scope. Not read-only; idempotent.
idpost_incident_updatePost incident update
Post a public, customer-facing update to an incident's status-page timeline (phase + message). This is what your subscribers and status-page visitors see. Asks for confirmation where the client can show a prompt; otherwise runs on the token's scope. Not read-only.
idmessagephasepost_maintenance_updatePost maintenance update
Post an update to a maintenance window: say the work is running late, that it finished, or what changed. Works on an upcoming, running or completed window (a completed window is read-only otherwise, so this is how to add a closing note), not on a cancelled one. The update shows on the status pages that show the window and goes to their email and webhook subscribers; it cannot be edited or removed. Asks for confirmation where the client can show a prompt; otherwise runs on the token's scope. Not read-only.
idmessagepublish_incidentPublish incident
Publish an incident so it appears on every status page carrying the affected monitor, optionally seeding the public title and description. An incident with no monitor needs `status_page_ids` naming the pages to show it on; the list replaces its pages, so start from `get_incident`'s `status_page_ids`. Status-page subscribers may be notified. Asks for confirmation where the client can show a prompt; otherwise runs on the token's scope. Not read-only; idempotent.
idpublic_descriptionpublic_titlestatus_page_idsresolve_incidentChanges dataResolve incident
Resolve an incident (mark the operational state resolved). Internal only — does not post to the public status page. Asks for confirmation where the client can show a prompt; otherwise runs on the token's scope. Not read-only.
idnoteresume_monitorResume monitor
Resume a paused monitor (restart its checks). Asks for confirmation where the client can show a prompt; otherwise runs on the token's scope. Not read-only; idempotent.
idrun_check_nowRun check now
Run a check on a monitor immediately and record the result. Asks for confirmation where the client can show a prompt; otherwise runs on the token's scope. A down result may fire the org's normal alerts. Heartbeat monitors cannot be probed (they wait for your systems to ping them). Not read-only.
idset_monitor_stateChanges dataSet manual monitor state
Set the state of a manual monitor: up, degraded or down. A manual monitor has no probe; its state is whatever an operator last set, for a service only people can judge, such as a SIP trunk, a carrier link or a partner's back office. Down or degraded opens an incident within about 30 seconds, which pages the monitor's channels unless a maintenance window holds it, and shows on its status pages as a major outage or degraded performance; up closes the incident. A paused monitor, or one the plan no longer covers, keeps the state and acts on it once it runs again. The note becomes the incident's cause, so make it a reason a responder can act on. Refused for any other kind of monitor. Asks for confirmation where the client can show a prompt; otherwise runs on the token's scope. Not read-only; idempotent.
idnotestateunpublish_incidentChanges dataUnpublish incident
Hide a published incident from the public status pages again. Its operator timeline is untouched. Asks for confirmation where the client can show a prompt; otherwise runs on the token's scope. Not read-only; idempotent.
idupdate_maintenanceChanges dataEdit maintenance
Edit an upcoming or running maintenance window: its title, description, start, end, the monitors it covers (monitor_ids replaces the whole set) or whether it holds their paging. end_now ends a running window at once and keeps it as completed work. A completed or cancelled window is history and is refused. Shows the old and new value of every field before it runs, where the client can show a prompt; otherwise runs on the token's scope. Not read-only.
descriptionend_nowends_atidmonitor_idsstarts_atsuppress_alertstitleupdate_monitorChanges dataRetune monitor
Change how loudly a monitor is watched: check interval, alert confirmations, recovery notices, reminder interval, tags, group, the multi-region detection quorum, and which notification channels it alerts (channel_ids replaces the whole set, and needs the channels:read scope). It cannot change what the check watches — name, address, assertions, expected status, headers, body, probe regions and owner are refused. A monitor managed by Terraform is refused outright. Shows the old and new value of every field before it runs, where the client can show a prompt; otherwise runs on the token's scope. Not read-only.
alert_confirmationschannel_idsgroup_nameidinterval_secsnotify_recoveryrecovery_period_secsregion_policyrenotify_interval_secstagsupdate_monitor_groupChanges dataChange monitor group
Change a monitor group: its name, whether it alerts as one (a member's failure opens one group incident that pages the group's channels, and the members' own stay quiet), which notification channels the group incident alerts (channel_ids replaces the whole set, and needs the channels:read scope), the reminder interval, and whether another member going down sends a message. Turning alert as one on or off changes only failures that start afterwards. A group managed by Terraform is refused outright. Shows the old and new value of every field before it runs, where the client can show a prompt; otherwise runs on the token's scope. Not read-only.
alert_againalert_as_onechannel_idsidnamerenotify_interval_secsupdate_status_pageChanges dataUpdate status page
Rename a status page, move it to a new slug, publish and unpublish it, change who may open it, or set the IANA time zone of its subscriber emails. An omitted field is left alone. Changing the slug moves the public URL and breaks existing links. access replaces the page's access settings and list whole: protected true makes it private to the listed domains and addresses (Team plan), and removes subscribers the list does not cover; protected false makes it public again and keeps the list. Not read-only; idempotent.
accessenablednamenew_slugslugtimezoneupdate_status_page_componentUpdate status page component
Change how one monitor is presented on a status page: its public name, description, group or position; or, with section_id, a group section's heading. An omitted field is left alone. A section member's heading is its section's, so its public_group does nothing. Not read-only; idempotent.
headingmonitor_idpublic_descriptionpublic_grouppublic_namesection_idslugsort_order
Is this yours?
Claim it to hear the moment it breaks, correct this page and add your own ways to use it.
A test is the handshake and the tool list: no tool was called. Names and descriptions are as listed by whoever registered the server; we haven't checked them.