---
title: "openstatus MCP Server for Claude, ChatGPT and Cursor"
url: "https://www.openstatus.dev/tooling/mcp-server"
date: "2026-04-29"
updated: "2026-10-05"
author: "Maximilian Kaske"
description: "Connect Claude, ChatGPT, Cursor or any MCP client to your openstatus workspace. OAuth sign-in, audit-logged changes, explicit control over notifications."
category: "Product"
---

The openstatus MCP server connects Claude Desktop, ChatGPT, Cursor, and any other [Model Context Protocol](https://modelcontextprotocol.io) client to your workspace — so an AI assistant can read monitors, response logs, and audit history, and drive status pages, status reports, and maintenance windows directly from a conversation.

## Quickstart

```
https://api.openstatus.dev/mcp
```

Add the URL as a custom connector in Claude, ChatGPT, or Cursor, or run `claude mcp add --transport http openstatus https://api.openstatus.dev/mcp` for Claude Code. The client opens a consent screen, you pick a workspace and an access level, and the openstatus tools appear in the picker. The server is stateless Streamable HTTP and scales horizontally.

## What you can do

The server exposes **23 tools**, grouped by entity:

- **Status pages** — `list_status_pages` · `list_page_components`
- **Status reports** — `list_status_reports` · `create_status_report` · `add_status_report_update` · `update_status_report` · `resolve_status_report`
- **Maintenance** — `list_maintenances` · `create_maintenance`
- **Incidents** *(10 more, on workspaces with [incident management](/incident-management) enabled)* — `list_incidents` · `get_incident` · `declare_incident` · `update_incident` · `set_incident_status` · `resolve_incident` · `add_incident_note` · `get_postmortem` · `draft_postmortem` · `approve_postmortem`
- **Monitors** — `list_monitors` · `get_monitor` · `get_monitor_status` · `get_monitor_summary`
- **Response logs** — `list_response_logs` · `get_response_log`
- **Notifications** — `list_notifications`
- **Private locations** — `list_private_locations`
- **Audit log** *(workspaces on the audit-log plan only)* — `list_audit_logs` · `get_audit_log`
- **Content** *(public openstatus.dev pages)* — `search_docs` · `get_doc_page` · `search_content` · `get_content_page`

The four **publishing** tools (`create_status_report`, `add_status_report_update`, `resolve_status_report`, `create_maintenance`) require `notify: true | false` — the assistant must explicitly choose whether to notify subscribers, so an LLM cannot quietly fan out an alert. `update_status_report` is metadata-only and cannot notify.

The same tool registry powers the [in-app assistant](/blog/from-clickops-to-chatops) — every tool you see in `/chat` is the same tool you call over MCP, kept in sync by shape-equivalence tests.

## Auth & scopes

The MCP server is an OAuth 2.1 authorization server. Connect from any client that implements the MCP authorization spec and you get a consent screen instead of a key to paste: pick the **workspace** and choose **Read-only** or **Read & write**. Tokens rotate automatically, and every connection is listed under **Settings > Integrations > Connected apps**, where it can be revoked with immediate effect.

For CI and headless agents, the `x-openstatus-key` header still works — the same API key the CLI, API, and Terraform use, from **Settings > General > API Keys**.

Both credentials carry a `read` or `write` scope. Read-only connections never see write tools in `tools/list` — they don't exist for that session. Write tools throw a clean error if a read-only credential somehow attempts them.

Every mutation lands in the audit log under `actor_type = 'mcp'`, so you can trace any change back to a connection, a user, and a transport.

## Other surfaces

- Want chat inside the dashboard instead of an external client? See the [in-app assistant](/blog/from-clickops-to-chatops).
- Want a terminal interface for AI agents (Claude Code, etc.)? See [skills](/tooling/cli#ai-skills) on the CLI page.
- Building an in-app integration? Call the [API](/tooling/api) directly.
- Want Slack instead of Claude or ChatGPT? See the [Slack agent](/docs/guides/how-to-setup-slack-agent).

## Setup guides

- [Claude Code](/guides/connect-openstatus-to-claude-code) · [Claude Desktop](/guides/connect-openstatus-to-claude-desktop)
- [Codex](/guides/connect-openstatus-to-codex) · [ChatGPT](/guides/connect-openstatus-to-chatgpt)
- [opencode](/guides/connect-openstatus-to-opencode)

## Reference

Full tool schema, error codes, and per-client config in the [MCP reference](/docs/reference/mcp-server).

## Frequently asked questions

<details>
  <summary>What does the MCP server let an assistant do?</summary>
  The MCP server exposes 19 read and write tools scoped to your workspace: list status pages, monitors, response logs, notifications, private locations, and audit logs; inspect a single monitor or response log; create, update, and resolve status reports; schedule maintenance windows. Workspaces with incident management enabled get 10 more to declare incidents, change their status, add timeline notes, and draft and approve the postmortem. Every mutation writes to the audit log, and publishing tools require an explicit notify decision.
</details>

<details>
  <summary>Are skills different from the MCP server?</summary>
  Skills are prompt and command bundles installed into your local agent (Claude Code, etc.) that wrap the openstatus CLI. The MCP server is a remote endpoint that any MCP-compatible client can connect to. Skills are great for terminal-shaped workflows; MCP is great for chat-shaped workflows.
</details>

<details>
  <summary>Do I need an API key to connect an MCP client?</summary>
  No. The MCP server is an OAuth 2.1 authorization server: Claude, ChatGPT, Cursor, and other clients open a consent screen where you pick a workspace and read-only or read & write access, and tokens are issued and refreshed automatically. The `x-openstatus-key` header still works for CI and headless agents, with the same key the CLI, API, and Terraform use.
</details>

<details>
  <summary>Can the assistant accidentally notify subscribers?</summary>
  No. Every publishing tool requires the assistant to set notify: true | false explicitly — there's no default. Metadata-only edits like update_status_report can't notify at all. Every mutation lands in the audit log under actor_type = 'mcp', so you can see exactly what happened.
</details>