Skip to main content

MCP Server

SolidPing ships a built-in Model Context Protocol (MCP) server, letting AI assistants and LLM agents read and manage your monitoring data through a standard tool interface. Point an MCP-capable client (such as Claude) at SolidPing and it can list checks, inspect incidents, build status pages, and schedule maintenance — all scoped to a single organization.

If your dashboard is running, the fastest path is the AI assistants page — /dash0/orgs/<org>/mcp, linked from the main sidebar (opening the MCP endpoint URL in a browser also lands there). It has copy-paste snippets and one-click install buttons pre-filled with your instance's URL. This page covers the same ground for reference, plus the underlying protocol details.

Connect with just the URL

SolidPing's MCP server supports the full OAuth 2.1 authorization flow, including metadata discovery (RFC 9728, RFC 8414) and dynamic client registration. In practice this means an OAuth-capable MCP client needs only the server URL — no manual token, no config file to hand-edit:

PropertyValue
URL{SP_BASE_URL}/api/v1/mcp
TransportJSON-RPC 2.0 over HTTP (Streamable HTTP)
Protocol version2025-03-26

Paste that URL into your client, log in when prompted, and approve the requested scope — that's the entire setup.

Claude (claude.ai / desktop)

Claude doesn't yet have a public one-click install link for custom connectors, so add it manually:

  1. Settings → Connectors → Add custom connector
  2. Paste the URL above
  3. Log in and approve the requested scope

Claude Code

claude mcp add --transport http solidping {SP_BASE_URL}/api/v1/mcp

Cursor

Cursor supports a one-click install deep link:

cursor://anysphere.cursor-deeplink/mcp/install?name=solidping&config=<base64 of {"url": "{SP_BASE_URL}/api/v1/mcp"}>

The dashboard's AI assistants page renders this as a ready-to-click button with your instance's URL already encoded.

VS Code

VS Code supports a similar one-click install deep link (an -insiders variant exists for VS Code Insiders):

vscode:mcp/install?<url-encoded {"name": "solidping", "type": "http", "url": "{SP_BASE_URL}/api/v1/mcp"}>

Again, the dashboard's AI assistants page gives you a pre-filled button for both.

Any other MCP client

Most remaining clients accept a mcpServers JSON block with just a URL — no headers, no token:

{
"mcpServers": {
"solidping": {
"url": "https://monitoring.example.com/api/v1/mcp"
}
}
}

Replace the URL with your SP_BASE_URL. The client discovers the OAuth endpoints itself (see below) and walks you through login.

How the URL-only flow works

A remote-MCP-aware client resolves everything it needs from the server URL alone, via these discovery endpoints:

EndpointPurpose
/.well-known/oauth-protected-resourceRFC 9728 — tells the client which authorization server protects this resource
/.well-known/oauth-authorization-serverRFC 8414 — the authorization server's metadata (endpoints, supported flows)
/.well-known/openid-configurationAlias of the above, for clients that only probe the OIDC-style path
/api/v1/oauth/registerDynamic client registration (RFC 7591) — the client registers itself, no pre-shared client ID needed

The client then runs a standard OAuth 2.1 authorization-code flow with PKCE, ending on the dashboard's consent screen, where you approve the requested scope (mcp or mcp:read — see below).

Authentication & Scopes

Whichever path a token arrives by — OAuth consent or a manual PAT (below) — it must carry one of:

ScopeAccess
mcpFull access — read and mutate
mcp:readRead-only — list/get tools only; mutation tools are refused

A token without either scope is rejected with a 403. Read-only (mcp:read) tokens can use every listing and inspection tool; tools that change state require the full mcp scope. The OAuth consent screen shows which one a connecting client is requesting and renders a distinct read-only variant when it's mcp:read.

Capabilities

The server exposes tools covering the core SolidPing surface, including:

  • Checks — list, get, create, update, delete
  • Results — list and filter check results
  • Incidents — list and get
  • Integrations — list and create notification connections
  • Status pages — manage pages, sections, and resources
  • Maintenance windows — list, create, update, and attach checks
  • Check groups & regions — list
  • Check types — list types, fetch sample configs, and validate a config
  • Diagnostics — diagnose a check and inspect incident notifications

Headless agents / CI

The OAuth flow above needs an interactive login — fine for a person connecting their own client, not for a CI job or an unattended agent. For those, mint a personal access token (PAT) instead and pass it as a bearer token:

Create an API token from the dashboard or with the CLI (sp tokens create), then configure your client with an Authorization header:

{
"mcpServers": {
"solidping": {
"url": "https://monitoring.example.com/api/v1/mcp",
"headers": {
"Authorization": "Bearer <your-token>"
}
}
}
}

Replace the URL with your SP_BASE_URL and supply a token carrying the mcp or mcp:read scope. The API itself accepts a scopes field on token creation (mcp:read for read-only); the dashboard's token page does not yet expose a scope picker in its UI, so a scoped token currently needs to be created via the API or CLI.

See also

The AI assistants page in the dashboard sidebar (/dash0/orgs/<org>/mcp) has the same instructions rendered with your instance's actual URL — copy buttons and one-click install links included.