MCP Integration

The Model Context Protocol (MCP) server exposes Hyperping's monitoring data and controls to AI agents over HTTP. Works with any MCP-compatible client: Claude Desktop, Claude Code, Cursor, Windsurf, mcp-inspector, or custom clients built on the MCP SDK.

Endpoint

URL
https://api.hyperping.io/v1/mcp
Methods
POSTGETDEL
Transport
Streamable HTTP · JSON-RPC 2.0
Auth
Bearer token
Scope
One project per key
Tools
25 read · 5 write

Quick start

  1. Create an API key

    Go to Project Settings → API Keys and create a read_only or read_write key. Keys are strictly scoped to one project.

  2. Add the server to your client

    Paste the mcpServers block below into your Claude Desktop, Cursor, or Windsurf config.

  3. Restart the client

    Restart your client. Start asking questions: "What's down?", "SLA on the API monitor this month?"

Client configuration

Claude Desktop, Cursor, Windsurf, Claude Code. Add to the mcpServers block of your client config:

Streamable HTTP (recommended)JSON
{
  "mcpServers": {
    "hyperping": {
      "type": "http",
      "url": "https://api.hyperping.io/v1/mcp",
      "headers": {
        "Authorization": "Bearer sk_..."
      }
    }
  }
}

Older clients that only speak stdio can bridge via mcp-remote:

stdio bridge via mcp-remoteJSON
{
  "mcpServers": {
    "hyperping": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://api.hyperping.io/v1/mcp",
        "--header",
        "Authorization: Bearer sk_..."
      ]
    }
  }
}

Tool reference

Your AI composes the queries; Hyperping returns the facts. Writes are scoped to reversible operations, delete_monitor is intentionally not exposed.

Monitors 6 tools

list_monitors(status?, page?, limit?)read
Paginated list with optional filter: up, down, paused, ssl_expiring.
get_monitor(uuid)read
Single monitor with full config.
search_monitors_by_name(query)read
Case-insensitive substring match across names and URLs.
create_monitor(...)write
HTTP, ICMP, port, or DNS. Accepts regions, frequency (10s to 24h), expected status, keyword, headers, escalation policy.
update_monitor(uuid, ...)write
Partial update.
pause_monitor(uuid) / resume_monitor(uuid)write
Toggle without losing history.

Status & reporting 5 tools

get_status_summary()read
Counts plus list of down monitors with duration.
get_monitor_uptime(from?, to?, resolution?, monitor_uuids?)read
SLA %, aggregate plus per-day, hour, week, or month.
get_monitor_response_time(...)read
Latency trend.
get_monitor_mttr(...)read
Mean time to resolve, per monitor.
get_monitor_mtta(...)read
Mean time to acknowledge, per monitor.

Outages 4 tools

list_outages(page?, search?, status?, type?)read
Paginated.
get_outage(uuid)read
Flat record.
get_outage_timeline(uuid)read
Detection, cross-region verification, alerts dispatched, acknowledgement, resolution.
get_monitor_outages(monitor_uuid, page?, status?)read
Scoped to one monitor.

Observability 3 tools

get_monitor_anomalies(uuid)read
Anomaly detection (flapping, latency spikes).
get_monitor_http_logs(uuid, page?, limit?, level?)read
Recent probe logs.
list_recent_alerts(from?, to?, resolution?, monitor_uuids?)read
Notification history across all channels.

On-call context 5 tools

list_on_call_schedules()read
All current rotations.
get_on_call_schedule(uuid)read
Rotation detail with overrides.
list_escalation_policies()read
Full policy chain.
get_escalation_policy(uuid)read
Policy detail.
list_team_members()read
Name and email for user-ID lookups.

Integrations 2 tools

list_integrations()read
All configured channels: Slack, Telegram, Discord, PagerDuty, OpsGenie, Teams, webhook, email.
get_integration(uuid)read
Channel-specific config.

Security

Project scope
API keys are bound to exactly one project in the database (FK-constrained). req.projectuuid is resolved server-side from the key. Client headers cannot override.
Row-level isolation
Every controller SQL scopes by projectuuid = ?. Cross-project access returns 404, never leaks.
Read-only enforcement
Write tools check apiKeyPermissions === 'read_only' and refuse with a clear error. Enforced at the tool handler, not at the route.
Role gating
Session-auth endpoints (reporting, schedules, on-call, integrations) run hasAccountRole with the user's actual project role. viewer keys cannot invoke write-adjacent endpoints.
Revocation
Deactivating a key in the dashboard blocks the next MCP call immediately. No TTL to wait out.

Not available via MCP

Scoped out by design
  • delete_monitor. Pause instead, or delete via dashboard / REST API.
  • Billing, API key management, SSO, teammate invites, password reset.
  • Status-page incidents (/v3/incidents/*). Different resource. Contact us if you need them exposed.

Limits

Pagination
Up to 200 monitors or outages per page.
Rate limit
Shared with the REST API: 300 req / min / key.
Response size
Large windows (for example, 30-day alert history) can be capped by narrowing from / to.

Next steps