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.
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
Authorizationheader. 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 theurl; check your client's remote-MCP documentation. The endpoint and theAuthorization: Bearerheader are the same in every case.Confirm the connection. Ask the assistant to list your metrics. It should call
listMetricsand 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).
Tool catalog
Metrics
| Tool | Scope | What it does |
|---|---|---|
listMetrics | read:metrics | List metric definitions. |
getMetric | read:metrics | Get a metric by id. |
getMetricHistory | read:metrics | Aggregated metric values over a window (max 30 days). |
setManualMetricStatus | write:metrics | Set the status on a manually-managed metric. |
Services and SLOs
| Tool | Scope | What it does |
|---|---|---|
listServices | read:services | List services. |
getService | read:services | Get a service by id. |
listSlos | read:slos | List SLOs. |
getSlo | read:slos | Get an SLO with its latest burn event. |
Incidents
| Tool | Scope | What it does |
|---|---|---|
listIncidents | read:incidents | List incidents. |
getIncident | read:incidents | Get an incident. |
createIncident | write:incidents | Create an incident (draft or published). |
patchIncident | write:incidents | Edit title, severity, affected services, visibility. |
publishIncident | write:incidents | Publish a draft incident. |
resolveIncident | write:incidents | Resolve an incident, with an optional final message. |
appendIncidentMessage | write:incidents | Append a timeline message (a Resolved message auto-resolves the parent). |
draftIncidentFromMetric | write:incidents | Pre-fill a draft incident from a metric's current state (idempotent within 30 minutes). |
deleteIncident | write:incidents | Soft-delete an incident. |
Maintenance
| Tool | Scope | What it does |
|---|---|---|
listMaintenances | read:maintenances | List maintenance windows. |
getMaintenance | read:maintenances | Get a maintenance window. |
createMaintenance | write:maintenances | Schedule a maintenance window. |
patchMaintenance | write:maintenances | Edit a maintenance (only before it has started). |
startMaintenance | write:maintenances | Move a scheduled maintenance to in-progress. |
completeMaintenance | write:maintenances | Move an in-progress maintenance to completed. |
cancelMaintenance | write:maintenances | Cancel a maintenance before completion. |
Config as code
| Tool | Scope | What it does |
|---|---|---|
exportConfig | read:config | Export the org's configuration as a canonical apply document. |
applyConfig | write:config | Apply a config-as-code document (idempotent upsert by config key). |
Change events
| Tool | Scope | What it does |
|---|---|---|
createChangeEvent | write:change_events | Record 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. Addwrite:*scopes when you want an assistant to open incidents, schedule maintenance, or apply config.