Skip to main content
The incident.io MCP server lets you connect any AI assistant that supports the Model Context Protocol directly to your incident data. Query incidents, analyze alerts, check who’s on call, manage escalations, and run deep operational analysis — all from your existing AI tools.
Already using the incident.io macOS app?If so, you already have full access to everything on this page (and more). The macOS app ships with a local MCP server that provides all the MCP tools described here, plus rich support for investigations and interaction with the native UI. No additional setup is needed. If you’ve installed the macOS app, you’re good to go!The remote MCP server described here is for people who want to connect without installing the macOS app. For example, using Claude.ai in a browser, ChatGPT, or plugging incident.io into automated agent pipelines.Learn more about the macOS app, or download it from Settings → Desktop app in your dashboard.

What you can do

Incident analysis and reporting

Ask questions across your entire incident history without manual data gathering:
  • “How many P1 incidents did we have this quarter, and which teams were most affected?”
  • “What’s the trend in overnight responder workload by alert source?”
  • “Show me the top 10 highest-workload incidents this month”
The incident_stats tool supports 10 grouping dimensions (severity, status, type, mode, alert source, custom fields, roles, time periods) with workload breakdowns showing where responder time is spent — during working hours, late evening, or overnight.

Alert and noise analysis

Understand where alert noise is coming from and which areas generate the most on-call work:
  • “Which alerts result in actual incidents vs noise?”
  • “Break down alert volume and workload by team and service”
  • “What proportion of our pages happen overnight, and what triggers them?”
You can analyze alerts by source, priority, time period, and whether they resulted in incidents. Combined with incident stats grouped by team, service, or any custom field, you can trace the full path from alert noise through to responder cost — and identify the highest-ROI improvements to make.

On-call and escalation management

Check schedules, respond to pages, and analyze paging patterns:
  • “Who’s on call for the platform team right now?”
  • “What’s our ack rate by escalation path this month?”
  • “Acknowledge the page for INC-456”
You can also change who’s on call and hold back paging during planned work:
  • “Put me on call for the platform schedule tomorrow afternoon”
  • “Ask if anyone can cover my shift on Friday night”
  • “Set up a maintenance window for the database migration on Saturday”

Incident management

Create and update incidents, track actions and follow-ups, and access investigation data:
  • “Create a P2 incident for the payments API degradation”
  • “Update INC-123 to resolved”
  • “What are the outstanding follow-ups from last week’s incidents?”
  • “Add an action on INC-456 to roll back the config change”
  • “INC-123 and INC-124 are the same problem, can you merge them”

Status page updates

Draft updates to your status pages:
  • “Draft a status page update for INC-123 saying we’ve identified the cause”
  • “Draft an update moving the payments incident to monitoring”
status_page_update only drafts. Publishing a status page update emails and texts everyone subscribed to the page, so a person always does that part. Your assistant hands you a draft to review, and you still need to publish it.

Structured operational analysis

Run guided analysis using built-in playbooks that provide step-by-step methodology, your organization’s configuration, and a branded HTML report template:
  • “Prepare an operational review for the last quarter”
  • “Analyze alert noise and recommend tuning improvements”
  • “Assess on-call burden across our teams”
The analysis_start tool downloads a workspace with everything needed: playbooks (operational review, alert noise, on-call burden, team health, response effectiveness), your org config for reference, and a report template. The AI follows the playbook stages: collecting stats, drilling into specifics, identifying themes, and synthesizing recommendations, producing much richer analysis than ad-hoc queries.

Deep investigation

For any specific incident, access AI investigation findings, post-mortem documents, and full status update history:
  • “Show me INC-123 with the investigation findings and post-mortem”
  • “What was the root cause of our most recent major incident?”
  • “Download the full investigation for INC-456 so I can analyze it”
Use incident_show with include: ["investigation", "postmortem"] for a summary of findings inline. For the complete investigation — all findings, checks, conversation history, and evidence — use investigation_sync, which downloads the full investigation filesystem as an archive. You can also drive an investigation, not just read one. investigation_start kicks one off for an incident that nothing is investigating yet, and investigation_steer feeds in what you know so the investigation re-assesses its hypothesis. This can be useful when a responder has found the real cause, or when it’s heading down the wrong path:
  • “Start an investigation for INC-789”
  • “Tell the investigation on INC-123 that Redis connections have been exhausted since 14:32, not Postgres”
Both are visible to responders: starting an investigation posts a message into the incident channel and invites you to it, and steering it shows up in the investigation’s history.
For hands-on investigation work on macOS, the macOS app is the best experience. It renders investigation data inline, lets you pin incidents, and post findings directly to incident channels. The investigation_sync tool is designed for automated agents and pipelines that need to pull down investigation data programmatically for LLM analysis — for example, a coding agent that cross-references investigation findings with code changes, or an automation that summarises investigations across multiple incidents.

Team visibility

See which teams own what, and scope analysis to specific teams:
  • “What escalation paths and alert sources does the platform team own?”
  • “List all teams and their on-call schedules”

Your own runbooks and documentation

Search the runbooks, guides, post-mortems, and architecture notes you’ve synced into Investigations from sources like GitHub, Notion, and Confluence:
  • “What’s our runbook for a failing checkout service?”
  • “What did we conclude in the post-mortem for the January database outage?”
  • “How do we recover from a failed deploy?”
document_search finds documents by meaning or by specific terms and returns summaries. document_show reads one in full, so your assistant can follow a runbook’s steps rather than paraphrasing a summary of it. For questions about how incident.io itself behaves, such as how escalation paths choose who to page, what a stream is, how to set up an alert route, use help_query, which answers from our product documentation:
  • “How do escalation paths decide who gets paged?”
  • “What’s the difference between streams and incidents?”

Telemetry and observability

Query logs, metrics, traces, and dashboards across all the observability platforms you’ve connected to Investigations — including Datadog, Grafana, Splunk, Honeycomb, Elasticsearch, GCP Cloud Logging, and more. This works for any debugging scenario, not just active incidents. Use it to investigate production issues, check service health, run ad-hoc queries, or pull data for reports:
  • “What are the error rates for the payments service over the last hour?”
  • “Show me the logs around the time of INC-123”
  • “Query the CPU and memory dashboards for the worker pods”
  • “Are there any anomalies in the checkout service latency this week?”
  • “Pull the Datadog traces for requests over 5 seconds”
The AI agent plans queries across your datasources, handles pagination and time ranges, and synthesizes the results. It can search dashboards by name, query metrics with the right labels, and correlate signals across multiple platforms — saving you from switching between tabs and writing queries manually.

Third-party service status

An upstream outage is often the cheapest explanation to rule in or out, so you can check the vendors we monitor centrally:
  • “Is AWS having problems in eu-west-1 right now?”
  • “Did anything change on Datadog’s status page around 14:00 yesterday?”
external_service_list gives you the services we monitor and the exact names to ask for, and external_service_status returns their current state plus any changes in a window, telling you whether the vendor published it themselves or we inferred it from our own monitoring.

Setup

The remote MCP server is available at https://mcp.incident.io/mcp. Install the incident.io plugin to get it configured for you along with our skills, or connect it directly if your setup doesn’t support plugins.
You can enable the remote MCP server from Settings → MCP.

Install the plugin

Install the plugin by running the following in a session:
Third-party marketplaces don’t auto-update by default, so turn auto-update on once you’ve installed. For a team, an administrator can register the marketplace with auto-update already on, in managed settings:

Keeping the plugin up to date

We ship new skills and improve existing ones regularly. How that reaches you depends on your agent.
  • Claude Code disables auto-update for third-party marketplaces like ours by default, so turn it on: run /plugin, select Marketplaces, choose the incident.io marketplace, and select Enable auto-update. See Claude Code’s configure auto-updates for what that changes. To pull an update by hand instead, run /plugin marketplace update incident-io-skills.
  • Cursor syncs daily when installed from the official marketplace.
  • Codex syncs daily when a workspace admin imports our marketplace, and an admin can select Sync now under Admin → Plugins → Marketplaces to expedite it. If you added the marketplace yourself, run codex plugin marketplace upgrade to pull a new version.

Connect the MCP server on its own

If your agent doesn’t support plugins, or you only want the tools without our skills, connect the server directly. There are two ways to authenticate, depending on your use case.

For interactive use (OAuth)

If you’re a human connecting via an AI assistant like Claude, ChatGPT, or Cursor, you’ll authenticate with your incident.io account via OAuth. The MCP client handles the flow — you just approve access in your browser when prompted. Actions are attributed to your user account, and you see the same data you’d see in the dashboard.
Most clients discover the OAuth configuration automatically from the server URL, so you never see these details. Some — like Google’s Gemini Enterprise custom connector — ask you to enter them by hand. If yours does, see Connecting a client that needs OAuth details manually below.
Add the remote MCP server:
Claude Code will prompt you to authorize via your browser on first use.

Connecting a client that needs OAuth details manually

Our remote MCP server uses the standard MCP OAuth pattern: clients discover the configuration from the server URL and register themselves automatically. Assistants like Claude, ChatGPT, and Cursor use this, which is why you only ever paste the server URL. Some clients — such as Google’s Gemini Enterprise custom MCP connector — instead ask you to fill in the OAuth details yourself. Because our server is a PKCE public client, there’s no client secret to enter, so make sure you enable your client’s PKCE option. Use these values:
You’ll need an admin to allow the client’s redirect domain first. Built-in clients like Claude, ChatGPT, and Cursor are trusted automatically, but any other client’s redirect host must be added under Settings → MCP server → Allowed redirect domains (up to five). For Gemini Enterprise this is vertexaisearch.cloud.google.com. If it’s missing, authorization fails — the exact domain to add is shown in the error, and you can add it from there in one click.
An OAuth connection acts as the person who approves it — so pick the right account, ideally a dedicated service account, since it’ll see and act on only what that user can. The connection lasts 28 days, after which you’ll need to re-approve it in the browser.

For automated systems (API keys)

If you’re connecting programmatic agents, custom workflows, or automation pipelines, use an API key. API keys authenticate as a service actor rather than a specific user, and don’t expire until deleted.
  1. Go to Settings → API keys in your incident.io dashboard.
  2. Create a new API key with the scopes you need.
  3. Pass it as a Bearer token in the Authorization header when connecting your MCP client to https://mcp.incident.io/mcp.
For example, to test connectivity, send the MCP initialize request — every MCP client opens a session with this call, and a successful response confirms that the endpoint is reachable, your API key is valid, and the protocol version is compatible:
To list or call tools beyond this connectivity check, use a real MCP client library — calling tools by hand requires completing the rest of the MCP handshake and parsing server-sent events. This is ideal for integrating incident.io into your own agents, n8n workflows, Dust, or custom automation pipelines.

Getting the most out of it

Read the configuration first

Before filtering or grouping, ask the tools for your organization’s configuration — it lists your severity levels, custom fields, roles, and other values you’ll need:
  • Use the resource_show tool with resource: "organisation", or
  • Read the config://organisation resource directly (if your client supports MCP resources)
resource_list shows everything else available to read, including the analysis playbooks and your telemetry datasources. Before setting a custom field on an incident, use custom_field_values to find the values that field actually accepts. It also tells you whether the field can be set or is derived automatically.

Use includes for deeper analysis

When investigating an incident, always request the investigation and post-mortem data:
Without these, you only get the basic metadata. With them, you get the AI’s analysis of what happened, the team’s written post-mortem, and all the evidence gathered during investigation.

Start with stats, then drill in

For analytical questions, follow the stats → list → show pattern:
  1. incident_stats to get the shape (counts, workload, trends)
  2. incident_list to browse the interesting groups
  3. incident_show to get full details on specific incidents
This is much more efficient than paginating through individual incidents.

Use playbooks for structured analysis

For periodic reviews or deep analysis, use analysis_start rather than querying tools ad-hoc. It downloads a workspace with playbooks that guide the AI through a multi-stage process — scoping, data collection, deep dives, theme identification, and synthesis — producing structured recommendations and an HTML report. This consistently produces better results than asking open-ended analytical questions.

Send feedback

If you hit friction or wish a tool worked differently, use the feedback tool to let us know. Your AI assistant will prompt you about this after completing tasks — approve the feedback to help us prioritise improvements.

Available tools

Some tools only function when you are using the associated product. Where the table names one, the tool still appears in your assistant’s list of tools, but calling it returns an error explaining what your account is missing.