incident.io MCP server: 32 tools, three are agents
An incident connector that answers with statistics rather than records. Three of its tools are incident.io's own AI agents. One downloads a whole investigation as an archive.
Last verified 27 August 2026 · from incident.io's own remote MCP documentation and the archived repository's GitHub record
This page is one of 90 in a directory of monitoring and developer tools. Each page checks what an AI coding agent can get out of the tool through its MCP server, the connector that lets the agent query the tool directly.
Summary
incident.io runs a hosted MCP server at mcp.incident.io/mcp, and its documentation lists 32 tools across incidents, alerts, escalations, schedules, the catalog and follow-ups.
Three tools are described as AI agents rather than as queries: ask, ask_incident and ask_telemetry. Their answers are generated, not retrieved.
Another tool, analysis_start, downloads a workspace of playbooks, your organization's configuration and a report template, then has the agent work through named stages.
What is the incident.io MCP server?
It is incident.io's server for the Model Context Protocol. Incident.io runs incident response, so a connected agent reaches incidents, the alerts behind them and the people who were paged.
The documentation leads with statistics rather than with records. incident_stats aggregates by more than ten dimensions. It also reports workload, meaning how much responder time fell in working hours, in the late evening or overnight.
investigation_sync goes the other way and downloads a complete investigation as an archive: every finding, check, conversation and piece of evidence, meant for the agent to read in full.
incident.io has two live MCP servers and one archived one:
| Server | Tools | State |
|---|---|---|
Remote MCP · mcp.incident.io/mcp | 32 | The documented connector. OAuth or API keys, enabled from Settings |
| macOS application, local server | 32, plus tools incident.io does not enumerate | Documented as carrying every tool below, with extra investigation and interface support |
incident-io/incidentio-mcp-golang on GitHub | Not counted here | Archived prototype. Last pushed 1 April 2026, 30 stars |
The macOS application needs no separate configuration; the remote endpoint exists for clients that cannot run the macOS application, such as a browser or an automated pipeline.
It sits in production observability, reaches telemetry only through an agent that queries other systems, and reaches nothing in code review, CI or cost.
| Part of the work | What incident.io has here | Can an agent reach it |
|---|---|---|
| Code, tests & review | None | Nothing for code or review |
| CI & release | None | No pipeline or deployment tools. Incidents reference services, not builds |
| Production observability | Incidents, alerts, escalations, schedules, catalog | Yes. Core strength. Incident history, paging patterns and on-call state are all reachable |
| Agent observability & evals | None | No traces or evaluations for your own agents |
| AI cost management | Responder workload | Partial, and not money. Workload breakdowns show where responder time went; there is no spend surface |
For an agent, incident.io answers who was paged, how often and at what hour. It answers patterns across many incidents better than the detail of one incident. It cannot show the telemetry itself except through ask_telemetry, which queries systems you have connected to incident.io.
What can an AI agent do with incident.io?
| Task | Tools | Works | Watch out for |
|---|---|---|---|
| Ask how the quarter went | incident_stats incident_list | Yes | Statistics group by more than ten dimensions, including custom fields |
| Separate real pages from noise | alert_stats alert_list alert_source_list | Yes | Alert statistics carry workload from the incidents they produced |
| Check who is on call | schedule_list schedule_show escalation_path_show | Yes | escalation_path_show says who would be paged at each level |
| Respond to a page | escalation_respond | Yes | This acknowledges or declines a real page |
| Open or update an incident | incident_create incident_update follow_up_create | Yes | All three write to live incident records |
| Read a full investigation | incident_show investigation_sync | Yes | investigation_sync downloads an archive rather than returning a summary |
| Run a structured review | analysis_start resource_show | Yes | It downloads playbooks and a report template, then works through stages |
The documentation's own advice is to read the configuration first with resource_show, then start with statistics and drill in, rather than listing records and counting them in the model.
32 tools documented, covering reads, writes and three agents
- Incidents4
incident_listincident_showincident_statsincident_update_list- Alerts4
alert_listalert_showalert_source_listalert_stats- Escalation5
escalation_listescalation_showescalation_statsescalation_path_listescalation_path_show- On-call4
schedule_listschedule_showteam_listteam_show- Catalog3
catalog_type_listcatalog_entry_listcatalog_entry_show- Follow-ups1
follow_up_list- Agents3
askask_incidentask_telemetry- Deep reading3
investigation_syncanalysis_startresource_show- Changing state4Write
incident_createincident_updatefollow_up_createescalation_respond- Other1
feedback
Counts come from incident.io's own remote MCP documentation, read 24 August 2026. The hosted endpoint answers tools/list only after authenticating, so the inventory is documentary rather than captured.
What connecting costs before the first question
A context window is the amount of text a model can hold at once. Thirty-two tools cost 1,875 to 2,122 tokens on Claude at connection. Three of them are AI agents rather than data reads, and they carry their own descriptions like any other tool.
Statistics tools come before record tools in the documented list, which is the order incident.io recommends working in.
| Tool set | Tools | Tokens (GPT-5.6, GPT-5.5) | Tokens (GPT-4, GPT-3.5) | Tokens (Claude Haiku 4.5 to Opus 5) | Share of a 200,000-token window |
|---|---|---|---|---|---|
| Every tool documented | 32 | 534 to 851 | 528 to 845 | 1,875 to 2,122 | 0.3% to 1.1% |
Encodings: GPT-5.6, GPT-5.5 o200k_base; GPT-4, GPT-3.5 cl100k_base; Claude Haiku 4.5 to Opus 5 count_tokens. Counted from the 32 tool entries in the vendor's own documentation. That documentation is the only public inventory.
The server could not be run for a live tools/list. No input schemas are available, so these figures cover each tool's name and description only. They are a floor, not the figure.
The Claude columns are measured through the API's count_tokens endpoint with an empty schema per tool. So they cover the same content as the GPT columns. The range there is two tokenizer generations. Haiku 4.5 and Opus 4.6 are at the low end. Opus 5 and Sonnet 5 are at the high end. The gap between them is about a tenth.
incident.io MCP server limits: where answers come back incomplete
incident.io mixes tools that return records with tools that generate answers; the limits below follow from that split.
The agent says: “The root cause was a bad deploy.” An agent tool may have concluded that.
ask, ask_incident and ask_telemetry are described as AI agents for on-call queries, incident investigation and telemetry. Their output is generated rather than retrieved.
The three sit in the same tool list as incident_show and incident_list, which do return records, and a transcript does not distinguish them.
Guard: Require the agent to name which tool produced a claim, and to treat the three agents as sources of opinion.
The agent says: “I have acknowledged that.” A real escalation was answered.
escalation_respond acknowledges or declines a page. It arrives in the same list as the read-only escalation tools and needs no separate step to reach.
Guard: Decide before connecting whether an agent may respond to pages, and check the client's approval settings.
The agent says: “Overnight paging is down.” That depends on the grouping used.
incident_stats groups by more than ten dimensions and reports workload split across working hours, late evening and overnight. Two groupings of the same period can support opposite readings.
Guard: Have the agent state the period and every grouping dimension behind a statistic.
How to configure incident.io MCP for agents
- 1
Check whether you already have it
The macOS application ships a local server carrying the same tools, so a team using it needs no extra setup.
- 2
Enable it in Settings first
The remote server is switched on from the MCP page in incident.io settings before any client can connect.
- 3
Choose OAuth or an API key deliberately
OAuth suits interactive clients; API keys are documented for automated systems.
- 4
Decide about the agent tools
ask,ask_incidentandask_telemetrygenerate answers, which is a different kind of result fromincident_list.
Paste this into your agent’s instructions
Three tools are agents and one downloads an archive, so a claim can come from generation, from a record or from a file. The block makes the agent say which.
When you answer using incident.io MCP tools, state: - The tool you called. ask, ask_incident and ask_telemetry are agents, so their answers are generated, not returned. - The period and grouping behind any statistic. - Whether you called incident_create, incident_update, follow_up_create or escalation_respond. All four change state. Never state that data does not exist. State that no incidents matched the filters above. Write your answer in ASD-STE100 Simplified Technical English. Use short sentences with one idea in each.
Do you need the MCP server at all?
Not for reporting on a schedule. incident.io has a public API, and for that it is the cheaper route.
The connector earns its place on the statistics tools and the playbooks. incident_stats with workload breakdowns is analysis the raw API does not do, and analysis_start supplies a method rather than data.
If the macOS application is already installed, its local server is the same surface without a remote connection to configure.
Connect it for operational review and triage. Use the API for scheduled reporting.
incident.io MCP server setup
The remote server is enabled from Settings, then MCP, inside incident.io. Nothing is installed.
If the macOS application is already in use, it carries a local server with the same tools and needs no configuration at all.
Claude Code
The client opens a browser to authorize with OAuth, so no credential is stored here.
claude mcp add --transport http incidentio \ https://mcp.incident.io/mcp
Cursor
In ~/.cursor/mcp.json. Authorization happens in the browser on first connection.
{"mcpServers":{"incidentio":{
"url":"https://mcp.incident.io/mcp"}}}Codex CLI
Codex reads TOML, so the JSON blocks above will not transfer. OAuth still runs in a browser.
[mcp_servers.incidentio] url = "https://mcp.incident.io/mcp"
Every other client
Each block below is the configuration for one client, with the file path and the key that client expects.
Claude Desktop
macOS ~/Library/Application Support/Claude/claude_desktop_config.json. Windows %APPDATA%\Claude\claude_desktop_config.json. There is no CLI. Edit through Settings, Developer, Edit Config.
Quit and restart fully for changes to load. Paths in args must be absolute. Logs at ~/Library/Logs/Claude/mcp.log.
No credentials appear in the file. The client opens a browser to authorize with OAuth on first connection.
{"mcpServers":{"incidentio":{"url":"https://mcp.incident.io/mcp"}}}Gemini CLI
~/.gemini/settings.json globally, or .gemini/settings.json per project. Key mcpServers. CLI: gemini mcp add.
No credentials appear in the file. The client opens a browser to authorize with OAuth on first connection.
{"mcpServers":{"incidentio":{"url":"https://mcp.incident.io/mcp"}}}VS Code Copilot
.vscode/mcp.json per workspace, or your user profile. CLI: code --add-mcp.
No credentials appear in the file. The client opens a browser to authorize with OAuth on first connection.
{"servers":{"incidentio":{"url":"https://mcp.incident.io/mcp"}}}The key is `servers`, not `mcpServers`. VS Code is the only client that uses that name, and copying a config from anywhere else fails silently.
Windsurf
~/.codeium/windsurf/mcp_config.json, which is the path Windsurf documents. Key mcpServers, the same JSON shape as Cursor, carrying the same OAuth sign-in.
Zed
~/.config/zed/settings.json, carrying the same OAuth sign-in as the blocks above.
The key is `context_servers`. Zed does not call them MCP servers in config, so searching its settings for mcp finds nothing.
Google Antigravity
~/.gemini/config/mcp_config.json globally, or .agents/mcp_config.json per project. Key mcpServers. There is no CLI. Use the /mcp overlay in the editor. Supports stdio, streamable HTTP, SSE and websocket.
No credentials appear in the file. The client opens a browser to authorize with OAuth on first connection.
{"mcpServers":{"incidentio":{"url":"https://mcp.incident.io/mcp"}}}Amp (Sourcegraph)
~/.config/amp/settings.json or .amp/settings.json, carrying the same OAuth sign-in. The amp mcp CLI covers approve, doctor and oauth.
The key is `amp.mcpServers`, namespaced. A bare mcpServers block is ignored.
Cline
~/.cline/mcp.json per the docs. The source also reads ~/.cline/data/settings/cline_mcp_settings.json. Key mcpServers, standard JSON shape, carrying the same OAuth sign-in. Supports stdio, streamable HTTP and SSE.
Goose (Block)
~/.config/goose/config.yaml, carrying the same OAuth sign-in.
YAML, and servers are called `extensions`. Goose does not use the MCP vocabulary in config at all. Add one interactively with goose configure, or per session with goose session --with-extension.
Kiro (AWS)
.kiro/settings/mcp.json per workspace, or ~/.kiro/settings/mcp.json globally. Key mcpServers, standard JSON shape, carrying the same OAuth sign-in.
Warp
~/.warp/.mcp.json or .warp/.mcp.json. Key mcpServers, standard shape, carrying the same OAuth sign-in. Also addable through the /agent-add-mcp skill.
JetBrains Junie
.junie/mcp/mcp.json per project, or ~/.junie/mcp/mcp.json. Key mcpServers, carrying the same OAuth sign-in. Use /mcp in the CLI to manage.
Roo Code
.roo/mcp.json per project. The global file is mcp_settings.json, opened from the Roo Code MCP settings view with Edit Global MCP. Key mcpServers, carrying the same OAuth sign-in.
Continue
.continue/mcpServers/*.yaml, one file per server, carrying the same OAuth sign-in.
YAML, and `mcpServers` is a list, not an object. Every JSON client keys servers by name. Continue takes an array, so a converted config will not parse.
Trae
.trae/mcp.json per project, or paste into the UI under Raw Config (JSON). Key mcpServers, standard shape, carrying the same OAuth sign-in.
Devin
Devin has no config file to edit. Servers are added through a web form in the settings UI, and Devin's documentation states you do not need to write or paste JSON. The block below is the shape those fields describe, shown for reference. Either route uses the same OAuth sign-in.
API key, for automated systems
incident.io documents API keys for pipelines and other unattended clients that cannot complete a browser flow.
{"mcpServers":{"incidentio":{"command":"npx",
"args":["-y","mcp-remote","https://mcp.incident.io/mcp",
"--header","Authorization: Bearer $INCIDENT_IO_API_KEY"],
"env":{"INCIDENT_IO_API_KEY":"<your-key>"}}}}Read-only access, permissions and security
Four tools change live incident state
incident_create,incident_update,follow_up_createandescalation_respondall act on real records and real pages.escalation_respondanswers a pageAcknowledging or declining an escalation is an operational action with people on the other side of it.
investigation_syncdownloads everythingIt returns the full investigation filesystem as an archive, including conversation history and evidence.
Three tools are agents
ask,ask_incidentandask_telemetryproduce generated answers, andask_telemetryreaches the logging and metrics systems connected to incident.io.
Troubleshooting
- The client cannot connect
- The remote server is enabled from Settings, then MCP, in incident.io. Until it is switched on there is nothing to authenticate against.
- An OAuth client cannot complete the flow
- API keys are documented for automated systems that cannot open a browser. The key travels in an Authorization header.
- An answer cannot be traced to a record
- Check whether the agent used
ask,ask_incidentorask_telemetry. All three are agents, so the answer was generated rather than looked up. - The analysis stops halfway
analysis_startdownloads a workspace and expects the agent to work through stages: collecting statistics, drilling in, identifying themes and synthesizing. A session that ends before the last stage leaves the analysis unfinished.
incident.io MCP server: Reference
| Item | Value |
|---|---|
| Endpoint | mcp.incident.io/mcp |
| Enablement | Settings, then MCP, inside incident.io |
| Auth | OAuth for interactive clients; API keys for automated ones |
| Tools | 32 documented |
| Agent tools | ask, ask_incident, ask_telemetry |
| State-changing tools | incident_create, incident_update, follow_up_create, escalation_respond |
| Local alternative | The macOS application ships the same tools |
| Archived prototype | incident-io/incidentio-mcp-golang, last pushed 1 April 2026 |
| Inventory source | incident.io's own documentation, read 24 August 2026 |
What engineers report
The documentation is specific about tool behavior, so the counts below come from it directly.
| What was checked | What it shows |
|---|---|
| Documented tools | 32 |
| Agent tools | 3 |
| State-changing tools | 4 |
Grouping dimensions on incident_stats | More than ten, per the documentation |
| Analysis playbooks | 5. incident.io names them in its documentation; this page does not reproduce the names |
| Archived prototype stars | 30 |
| Archived prototype last push | 1 April 2026 |
Tool inventory and behavior read from incident.io's own remote MCP documentation on 24 August 2026. The documentation gives the grouping-dimension count on incident_stats only as more than ten, so the counts table repeats that wording rather than a number. An unauthenticated tools/list against mcp.incident.io/mcp returned 401 on the same date, which is why this page is sourced from documentation rather than from the wire. Repository facts from the GitHub API.
Should you connect an agent to incident.io?
Yes. Best for teams that already run the macOS application, since it carries the same tools with no remote setup.
- Strongest fit
- incident.io teams who want an agent to run operational reviews rather than to look up single incidents.
- Main advantage
- Statistics with workload breakdowns and downloadable playbooks, which go beyond returning records.
- Main weakness
- Three tools generate answers, and nothing in a transcript separates them from tools that return records.
- Operational risk
escalation_respondanswers real pages, and three other tools create or change incident records.
From Oodle
One platform for agent traces and infrastructure
Agent traces usually sit in a different product from the rest of your telemetry, so when a slow database makes an agent slow the symptom is in one tool and the cause is in another. Oodle keeps both in one query surface, from $10 per million spans.
See agent observabilityFrequently asked questions
How many tools does the incident.io MCP server have?
32 documented. Counted from incident.io's own remote MCP documentation on 24 August 2026, because the hosted endpoint answers tools/list only after authenticating.
What are ask, ask_incident and ask_telemetry?
AI agents, described as such in the documentation. They generate answers about on-call, incidents and telemetry rather than returning records.
Do I need the remote server?
Not if you use the macOS application. It ships a local MCP server with the same tools and needs no additional setup.
Can an agent acknowledge a page?
Yes, through escalation_respond. It arrives alongside the read-only escalation tools, so set client approvals before connecting.
What does analysis_start do?
It downloads a workspace of playbooks, your organization's configuration and a report template, then guides the agent through named analysis stages.