MCP serverMCP server

MCP server

Observer runs a remote Model Context Protocol server at mcp.use.observer. Connect Claude, Cursor, or any MCP client and let an assistant read your metrics, services, SLOs, incidents, and maintenance windows, and run operations, using your Observer API key.

Observer runs a remote Model Context Protocol server at https://mcp.use.observer/mcp. It lets any MCP-compatible assistant (Claude, Cursor, and other MCP clients) work with your Observer data: read metrics, services, SLOs, incidents, and maintenance windows, and run write operations such as opening an incident or applying config.

Every tool maps one-to-one to a public API operation and is governed by the same API key, the same scopes, and the same plan entitlement as the REST API. The server is stateless and holds no data: it forwards each call to the API with the key you supply on the connection.

Requirements

You need an obs_pub_ API key (create one under Settings → API keys in the console) with the scopes for the tools you intend to use, on a plan that includes public API access.

Connect

Create an API key

In the console, open Settings → API keys, create a key, and grant only the scopes you need (see the catalog below). Copy the obs_pub_… value.

Add the server to your MCP client

The server speaks Streamable HTTP and reads your key from the Authorization header. Most clients accept a remote server like this:

{
  "mcpServers": {
    "observer": {
      "url": "https://mcp.use.observer/mcp",
      "headers": { "Authorization": "Bearer obs_pub_your_key_here" }
    }
  }
}

Config shapes vary by client. Some expect a "type": "http" field alongside the url; check your client's remote-MCP documentation. The endpoint and the Authorization: Bearer header are the same in every case.

Confirm the connection

Ask the assistant to list your metrics. It should call listMetrics and return your metric definitions. If a call fails with a scope message, add the named scope to the key (or confirm your plan includes public API access).

Scopes are the boundary

A tool only runs if the key carries its scope. A call without the right scope returns an error naming the scope it needs. Give read-only keys for analysis, and scope write keys to just the operations you want an assistant to perform.

Agent skills

Ready-made skills that teach an assistant the working model (scope discipline, the export/apply loop, the incident lifecycle) live in the public skills repository. Copy a skill folder into your agent's skills directory, or let the assistant read it directly.

Tool catalog

Metrics

ToolScopeWhat it does
listMetricsread:metricsList metric definitions.
getMetricread:metricsGet a metric by id.
getMetricHistoryread:metricsAggregated metric values over a window (max 30 days).
setManualMetricStatuswrite:metricsSet the status on a manually-managed metric.

Services and SLOs

ToolScopeWhat it does
listServicesread:servicesList services.
getServiceread:servicesGet a service by id.
listSlosread:slosList SLOs.
getSloread:slosGet an SLO with its latest burn event.

Incidents

ToolScopeWhat it does
listIncidentsread:incidentsList incidents.
getIncidentread:incidentsGet an incident.
createIncidentwrite:incidentsCreate an incident (draft or published).
patchIncidentwrite:incidentsEdit title, severity, affected services, visibility.
publishIncidentwrite:incidentsPublish a draft incident.
resolveIncidentwrite:incidentsResolve an incident, with an optional final message.
appendIncidentMessagewrite:incidentsAppend a timeline message (a Resolved message auto-resolves the parent).
draftIncidentFromMetricwrite:incidentsPre-fill a draft incident from a metric's current state (idempotent within 30 minutes).
deleteIncidentwrite:incidentsSoft-delete an incident.

Maintenance

ToolScopeWhat it does
listMaintenancesread:maintenancesList maintenance windows.
getMaintenanceread:maintenancesGet a maintenance window.
createMaintenancewrite:maintenancesSchedule a maintenance window.
patchMaintenancewrite:maintenancesEdit a maintenance (only before it has started).
startMaintenancewrite:maintenancesMove a scheduled maintenance to in-progress.
completeMaintenancewrite:maintenancesMove an in-progress maintenance to completed.
cancelMaintenancewrite:maintenancesCancel a maintenance before completion.

Config as code

ToolScopeWhat it does
exportConfigread:configExport the org's configuration as a canonical apply document.
applyConfigwrite:configApply a config-as-code document (idempotent upsert by config key).

Change events

ToolScopeWhat it does
createChangeEventwrite:change_eventsRecord a deploy, commit, or release event for status-transition correlation.

Notes

  • The server is stateless: it opens a fresh session per request and keeps nothing. Your key is read from the connection header on each call and never stored.
  • Tool inputs and outputs match the REST API one-to-one. For full field shapes, request/response bodies, and error codes, see the API reference.
  • For safe exploration, connect a key with only read:* scopes. Add write:* scopes when you want an assistant to open incidents, schedule maintenance, or apply config.