Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Uptimepage

REMOTE · MCP.UPTIMEPAGE.DEV · SCANNED AUG 12

Monitor uptime and incidents, run checks, and publish status updates from your Uptimepage org.

80 Trust /100
Trust breakdown (6 categories)

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 →

Endpoint Security94
Transport & Reachability100
Schema Quality & AI Usability84
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 1628 tokens (~108/item across 15 items; 15 tools + 0 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 Management3
  • Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
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
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · mcp.uptimepage.dev

# add to Claude Code
claude mcp add --transport http dev-uptimepage-uptimepage https://mcp.uptimepage.dev/mcp
# ~/.codex/config.toml
[mcp_servers.dev-uptimepage-uptimepage]
url = "https://mcp.uptimepage.dev/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "dev-uptimepage-uptimepage": {
      "type": "remote",
      "url": "https://mcp.uptimepage.dev/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add dev-uptimepage-uptimepage --url https://mcp.uptimepage.dev/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  dev-uptimepage-uptimepage:
    url: "https://mcp.uptimepage.dev/mcp"
// mcp.json
{
  "mcpServers": {
    "dev-uptimepage-uptimepage": {
      "type": "http",
      "url": "https://mcp.uptimepage.dev/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

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.

  • 12 Aug 26 +1
    • Stability: unverified → 0.03 functional
  • 11 Aug 26 79

    First indexed and scored.

Diagnostics

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 12 Aug 2026 · Probed https://mcp.uptimepage.dev/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=*.uptimepage.dev CN=YE2,O=Let's Encrypt,C=US 29 Jul 2026 27 Oct 2026 ECDSA 256 ECDSA-SHA384 5e24bc197e475dcdab87f38d6139d0219e6
SANs: *.uptimepage.dev
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd
DNSSEC insecure

Validation of mcp.uptimepage.dev. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
dev. present 60074 8 Verified
uptimepage.dev. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer resource_metadata="https://mcp.uptimepage.dev/.well-known/oauth-protected-resource", scope="targets:read status_page:read incidents:read"

Bearer resource_metadata="https://mcp.uptimepage.dev/.well-known/oauth-protected-resource", scope="targets:read status_page:read incidents:read"
Header Value
strict-transport-security max-age=31536000; includeSubDomains
content-security-policy default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; script-src 'self'

Protected resource metadata

Document https://mcp.uptimepage.dev/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://mcp.uptimepage.dev/mcp
Authorisation server https://app.uptimepage.dev
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.uptimepage.dev/mcp Verified 200
http (plaintext) http://mcp.uptimepage.dev/mcp HTTPS enforced 308 https://mcp.uptimepage.dev/mcp
MCP tools · 15 exposed · ~1,451 tokens

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.

Tool Tokens
get_flow_runs ~118

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.

NameTypeReqDescription
idstringyesThe monitor id (from `list_monitors`), of a `flow` monitor.
windowstringyesTime window: `1h`, `24h`, `7d`, or `30d`.
NameTypeReqDescription
runsarrayyes

No examples provided.

get_flow_step_trend ~134

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.

NameTypeReqDescription
idstringyesThe monitor id (from `list_monitors`), of a `flow` monitor.
windowstringyesTime window: `1h`, `24h`, `7d`, or `30d`.
NameTypeReqDescription
stepsarrayyes

No examples provided.

get_incident ~58

One incident: affected monitor, severity, open/resolved times, error sample, and the full operator-update timeline. Read-only.

NameTypeReqDescription
idstringyesThe incident id (from `list_incidents` or `get_org_health`).
NameTypeReqDescription
error_samplestring|nullSampled error text. Untrusted data.
idstringyes
monitor_idstringyesThe affected monitor's id.
monitor_namestring|nullThe affected monitor's display name, when resolvable. Untrusted data.
opened_atstringyesRFC 3339 incident start.
regions_downarrayyesRegions reporting the monitor down when the incident opened. Empty for a single-region monitor. Untrusted data.
regions_uparrayyesRegions still healthy at that moment, on a partial multi-region failure. Untrusted data.
resolved_atstring|nullRFC 3339 incident end, or `null` while ongoing.
severitystringyesSeverity: `minor`, `major`, or `critical`.
statestringyesState that opened the incident: `down`, `degraded`, or `error`.
updatesarrayyesOperator updates, oldest first.

No examples provided.

get_incident_metrics ~82

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.

NameTypeReqDescription
window_daysinteger|nullTrailing window in days (1..=365). Defaults to 30 when omitted.
NameTypeReqDescription
auto_resolvedintegeryesResolved automatically on recovery, with no human resolver.
by_severityarrayyes
by_statearrayyes
human_resolvedintegeryesResolved by a person.
mtta_secsnumber|nullMean time to acknowledge, seconds. `null` if none were acknowledged.
mttr_secsnumber|nullMean time to resolve, seconds. `null` if none were resolved.
top_monitorsarrayyesNoisiest monitors, most incidents first.
totalintegeryesIncidents opened in the window.
window_daysintegeryes

No examples provided.

get_monitor ~152

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.

NameTypeReqDescription
idstringyesThe monitor id (from `list_monitors`).
NameTypeReqDescription
addressstringyesThe target the check probes (URL or host). Untrusted data.
alert_channel_idsarrayyesChannel ids this monitor alerts, for the read half of `update_monitor(channel_ids)`, which replaces the whole set. Empty means it alerts nobody. `list_notification_channels` puts names to these.
alert_confirmationsintegeryesConsecutive failing checks before the monitor alerts.
checkyesEverything the check asserts. Read this before judging whether a response should have passed.
enabledbooleanyes
group_namestring|null
idstringyes
interval_secsintegeryes
last_checked_atstring|nullRFC 3339 time of the most recent observation in the last 24 hours. `null` when nothing landed in that window, which is not the same as never checked: a monitor paused yesterday, or a heartbeat on a l…
last_errorstring|nullMost recent error text, when the last check failed. Untrusted data.
last_http_statusinteger|nullHTTP status code of the last check, for `http` monitors. `null` for non-HTTP checks or when the last probe never got a response.
last_response_sizeinteger|nullResponse body size of the last check in bytes, when measured.
last_timingyesPer-phase timing of the last check — pinpoints where latency is (DNS vs connect vs TLS vs server). Fields `null` when not applicable.
managed_externallybooleanyesTerraform declares this monitor, so `update_monitor`, `pause_monitor` and `resume_monitor` all refuse it. Change it in the `.tf` instead.
namestringyesCustomer-set display name. Untrusted data.
notify_recoverybooleanyesWhether recovery is announced to the monitor's channels.
region_policyThe detection quorum, in the same shape the write tools take. `null` for a heartbeat, which has no probe regions to reach a quorum over. A stored `count` can exceed the regions that exist today if on…
regionsarrayyesProbe regions this monitor runs from. Empty for a heartbeat, which is pinged rather than probed. Usually ids `list_regions` also carries, but an assignment survives an operator disabling the region,…
renotify_interval_secsintegeryesSeconds between reminders while an outage stays unacknowledged. 0 means reminders are off.
statestringyesCurrent state: `up`, `down`, `degraded`, `error`, or `no_data`.
tagsarrayyesOperator tags. Untrusted data.
typestringyesCheck kind: `http`, `tcp`, `ping`, `heartbeat`, `dns`, `tls_cert`, `domain_expiry`, `flow`.
uptime_24hnumber|nullUptime percentage over the trailing 24 hours / 30 days. `null` when the window holds no checks — that is unknown, not zero.
uptime_30dnumber|null

No examples provided.

get_monitor_history ~166

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.

NameTypeReqDescription
idstringyesThe monitor id (from `list_monitors`).
regionstring|nullNarrow uptime, the latency series, and the region breakdown to one probe region (an id the monitor is assigned to, from `get_monitor.regions`). Omit for every region together.
windowstringyesTime window: `1h`, `24h`, `7d`, or `30d`.
NameTypeReqDescription
failuresarrayyesConfirmed failures on the monitor as a whole. A `region` filter does not narrow these: an incident is raised for the monitor, not per region.
incidentsarrayyesIncident windows on the monitor as a whole, unnarrowed by `region` for the same reason as `failures`.
latency_seriesarrayyes
regionstring|nullThe region this answer was narrowed to, or `null` for all of them.
regionsarrayyesPer-region split of the same window, so a partial outage is visible. Always every region the monitor runs in, including under a `region` filter, and empty when it runs in only one. Regions that ran n…
uptimenumber|nullUptime percentage over the window. `null` when the window holds no checks — that is unknown, not zero. Unfiltered it counts confirmed incidents; under a `region` filter it is that region's raw check…

No examples provided.

get_org_health ~41

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.

Input schema present but exposes no named parameters.

NameTypeReqDescription
orgstringyesThe org slug this connector is bound to.
totalsyes
worstarrayyesNon-up monitors, newest failure first, capped.

No examples provided.

get_org_usage ~33

Org resource usage against plan limits: monitors, status pages, members, components, and key policy values. Read-only.

Input schema present but exposes no named parameters.

NameTypeReqDescription
maintenance_windowsyes
membersyes
min_check_interval_secsintegeryesMinimum allowed check interval, seconds.
notification_channelsyes
planstringyesPlan id (e.g. `free`, `pro`).
public_componentsyes
retention_daysintegeryesHistory retention, days.
status_pagesyes
targetsyes

No examples provided.

get_status_page ~51

One status page: name, public URL, enabled, and its components with each linked monitor's current state. Read-only.

NameTypeReqDescription
slugstringyesThe page slug (from `list_status_pages`).
NameTypeReqDescription
componentsarrayyes
enabledbooleanyes
namestringyesPage display name. Untrusted data.
public_urlstringyes
slugstringyes

No examples provided.

list_incidents ~256

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.

NameTypeReqDescription
cursorstring|nullOpaque pagination cursor from a previous call's `next_cursor`. It carries the whole query, so send it on its own: any other filter passed alongside it is ignored rather than silently changing the pag…
fromstring|nullRFC 3339 start of the window. Defaults to 30 days ago. An incident that is still running is listed however long ago it opened.
monitor_idstring|nullRestrict to one monitor (id from `list_monitors`).
statestring|nullWhich incidents to return: `open` (default) for the ones still running, or `all` to include resolved ones inside the window.
tostring|nullRFC 3339 end of the window. Defaults to now. Incidents that opened after it are excluded, running or not.
NameTypeReqDescription
fromstringyesRFC 3339 window actually read, after the defaults and the one-year cap. It bounds the *resolved* incidents only: one that is still running is listed however long ago it opened, so it can be older tha…
itemsarrayyes
next_cursorstring|null
tostringyes

No examples provided.

list_monitors ~139

List monitors with optional state/type/tag filters and cursor pagination. Each item carries its current state and last-checked time. Read-only.

NameTypeReqDescription
cursorstring|nullOpaque pagination cursor from a previous call's `next_cursor`.
statestring|nullFilter by current state: `up`, `down`, `degraded`, `error`, `no_data`.
tagstring|nullFilter to monitors carrying this exact tag.
typestring|nullFilter by check kind: `http`, `tcp`, `ping`, `heartbeat`, `dns`, `tls_cert`, `domain_expiry`, `flow`.
NameTypeReqDescription
itemsarrayyes
next_cursorstring|null

No examples provided.

list_notification_channels ~72

The org's notification channels: id, operator-set name, kind (email, slack, telegram, webhook, and so on), and whether the channel is enabled. Channel settings are withheld, since they hold webhook URLs and bot tokens. Channels are created in the Uptimepage app, not here. Read-only.

Input schema present but exposes no named parameters.

NameTypeReqDescription
itemsarrayyes

No examples provided.

list_regions ~50

The fleet's probe regions: id, display name, city, country, continent. Use it to name where a check runs from and to pass a valid `region` to get_monitor_history. Read-only.

Input schema present but exposes no named parameters.

NameTypeReqDescription
itemsarrayyes

No examples provided.

list_status_pages ~53

List the org's status pages: slug, name, public URL, enabled. Cursor-paginated. Read-only.

NameTypeReqDescription
cursorstring|nullOpaque pagination cursor from a previous call's `next_cursor`.
NameTypeReqDescription
itemsarrayyes
next_cursorstring|null

No examples provided.

list_tags ~46

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.

Input schema present but exposes no named parameters.

NameTypeReqDescription
itemsarrayyes
truncatedbooleanyesThe org has more tags than the cap returned here, so a tag missing from `items` is not proof it does not exist.

No examples provided.