# UptimeGlobe — MCP server > Remote Model Context Protocol server to read and manage uptime monitors, incidents, notification channels, alert rules, maintenance windows, and status pages from an AI agent. - Endpoint: https://mcp.uptimeglobe.com - Transport: Streamable HTTP, JSON-RPC 2.0 (protocol 2025-06-18) - Auth: OAuth 2.1 one-click (no key) OR a scoped API key as `Authorization: Bearer sk_live_…` - Plan: any paid plan (a free-plan key authenticates but is rejected with plan_upgrade_required) - Tools: 40 (per-resource read/write scopes; a key only ever sees tools its scopes allow) - [Full docs](https://docs.uptimeglobe.com) - [MCP server docs](https://docs.uptimeglobe.com/mcp) - [Tool reference](https://docs.uptimeglobe.com/mcp#tool-reference) - [HTTP monitors](https://docs.uptimeglobe.com/http-monitors): what an HTTP check sends, what counts as up beyond a 2xx, timeouts and the degraded threshold, the region set, and the failure/quorum/recovery settings that decide whether an incident opens. - [Cron / heartbeat monitoring](https://docs.uptimeglobe.com/heartbeats): push-based dead-man's-switch for cron jobs, backups and scheduled tasks: how to ping, how interval, cron and deadline schedules differ, and how to alert on what the job reported. - [NTP / time-server monitoring](https://docs.uptimeglobe.com/ntp-monitors): external clock checking — what offset, stratum and root distance mean, why a measurement can come back "not measured", the 10 ms precision floor, what a check's margin is made of, and the thresholds that make it useful (Kerberos, IoT fleets, distributed databases). - [Alert channels and rules](https://docs.uptimeglobe.com/alert-channels): the channel types and how a channel (where an alert goes) differs from a rule (when it goes there), including tag-based targeting, event switches, renotify cadence and severity routing. - [Reducing alert noise](https://docs.uptimeglobe.com/alert-noise): how simultaneous incidents are grouped into one event, and how a monitor declares a dependency so its alert is held when the cause is already down. - [Checking the response, not just the status](https://docs.uptimeglobe.com/response-checks): asserting on the status code, response headers, the body and JSON fields, so a 200 that returns the wrong thing still opens an incident. - [Monitoring endpoints behind a login](https://docs.uptimeglobe.com/authenticated-endpoints): basic auth, static bearer tokens, and an OAuth2 client-credentials grant that refreshes itself so a short-lived token never reads as an outage. - [Checking a sequence, not just a URL](https://docs.uptimeglobe.com/multi-step-checks): multi-step HTTP checks that sign in, keep a token from the reply, and use it in a later request — with per-step failure detail and one shared time budget. - [Public status pages](https://docs.uptimeglobe.com/status-pages): subdomain and custom-domain status pages, how the slug is derived from a primary monitor's hostname, the free-tier slug-snatch policy, and what a visitor sees. - [Status badges, embed widget and public status JSON](https://docs.uptimeglobe.com/embed) - OAuth discovery: protected-resource metadata at https://mcp.uptimeglobe.com/.well-known/oauth-protected-resource; 401 responses carry a WWW-Authenticate header naming the authorization server. ## Connect — OAuth (recommended for IDE clients) Point the client at https://mcp.uptimeglobe.com with NO auth configured. OAuth-capable clients (Cursor, VS Code, Claude Desktop, Windsurf) open a browser sign-in automatically. MCP OAuth is still rolling out across clients — if a client doesn't open a browser, it likely doesn't support OAuth yet; use the scoped-key path below. Cursor (~/.cursor/mcp.json (or .cursor/mcp.json per-project)): ```json { "mcpServers": { "uptimeglobe": { "url": "https://mcp.uptimeglobe.com" } } } ``` VS Code (Copilot) (.vscode/mcp.json (or "MCP: Open User Configuration")): ```json { "servers": { "uptimeglobe": { "type": "http", "url": "https://mcp.uptimeglobe.com" } } } ``` Windsurf (~/.codeium/windsurf/mcp_config.json): ```json { "mcpServers": { "uptimeglobe": { "serverUrl": "https://mcp.uptimeglobe.com" } } } ``` Zed (settings.json → "context_servers"): ```json { "context_servers": { "uptimeglobe": { "url": "https://mcp.uptimeglobe.com" } } } ``` Claude Desktop: Settings → Connectors → Add custom connector → paste the endpoint URL and approve in the browser. No config file or key needed. ## Connect — scoped API key (CLI / headless) Create a key at https://app.uptimeglobe.com/settings/api-keys with the scopes the agent needs, then: Claude Code (CLI): ``` claude mcp add --transport http uptimeglobe https://mcp.uptimeglobe.com --header "Authorization: Bearer sk_live_YOUR_KEY" ``` Cursor (~/.cursor/mcp.json): ``` { "mcpServers": { "uptimeglobe": { "url": "https://mcp.uptimeglobe.com", "headers": { "Authorization": "Bearer sk_live_YOUR_KEY" } } } } ``` Windsurf (~/.codeium/windsurf/mcp_config.json): ``` { "mcpServers": { "uptimeglobe": { "serverUrl": "https://mcp.uptimeglobe.com", "headers": { "Authorization": "Bearer sk_live_YOUR_KEY" } } } } ``` Any other HTTP MCP client: ``` { "mcpServers": { "uptimeglobe": { "url": "https://mcp.uptimeglobe.com", "headers": { "Authorization": "Bearer sk_live_YOUR_KEY" } } } } ``` stdio-only clients (mcp-remote bridge): ``` npx mcp-remote https://mcp.uptimeglobe.com --header "Authorization: Bearer sk_live_YOUR_KEY" ```