---
title: "incident.io MCP in Slack: ask an AI teammate who is on call | Chickpea"
description: "Use incident.io's MCP server from Slack. Give a channel an AI teammate connected to incident.io, then ask who is on call and what is open. Open source."
canonical: https://chickpea.co/connectors/incident-io
keyword: "incident.io MCP in Slack"
verified: 2026-09-17
---

# An incident.io teammate in Slack that answers who is on call, on incident.io's MCP server.

> Chickpea gives a channel a named AI teammate that holds its own incident.io connection. It calls [incident.io's MCP server](https://docs.incident.io/ai/remote-mcp) at `mcp.incident.io/mcp` with an API key you create in Settings, so there is no client to configure anywhere. Ask it in Slack who is on call for the platform team, or what is still open and how bad, and it answers in the thread. incident.io calls the server a public beta and puts it on the Team, Pro, and Enterprise plans.

Facts checked against the sources on September 17, 2026. The HTML page is at https://chickpea.co/connectors/incident-io; every connector is listed at https://chickpea.co/connectors; the site index for agents is at https://chickpea.co/llms.txt.

**incident.io** (Pineapple Technology Ltd, https://incident.io): Query incidents and alerts, check on-call, and manage escalations. Category: Engineering. Lane: Vendor MCP server. Sign in: API key.

**Chickpea**: an open source Slack app that gives a workspace named AI teammates, each with its own handle, instructions, memory, connected accounts, schedules, and model, deployed to your own Cloudflare account or a Node host.

## What people ask it
The teammate in these examples is @oncall, published to #eng.

### Who is on call right now
- @oncall who is on call for the platform team right now
- @oncall who is on call for payments this weekend, and who picks it up on Monday

Reads never need confirmation, and a rota comes back as a table in the thread. incident.io's tool table lists reading schedules, showing a schedule's current and upcoming shifts, and showing who would be paged at each level of an escalation path. Those tools need the On-call product. Without it they still appear in the list and return an error naming what the account is missing.

### What is open, and how bad
- @oncall what incidents are open right now and what severity are they
- @oncall how many P1s did we have this quarter, and which teams were most affected

Searching and browsing incidents with filters is one tool, and aggregate counts by severity, status, type, team, and other dimensions is another. incident.io suggests asking for the shape first and drilling in afterwards, which is what the teammate does. What it can see is what your API key has permission to see.

### What happened on one incident
- @oncall summarise the timeline on INC-482, I am writing the update
- @oncall what did we conclude in the post-mortem for the checkout outage

Another read, so it comes straight back. The server returns full incident details, the whole status update history, and, where your account has them, the AI investigation findings and the written post-mortem. The teammate quotes what it was handed and links the incident, rather than paraphrasing a document it did not open.

### Page someone, or escalate
- @oncall page whoever is on call for payments, checkout is returning 500s
- @oncall escalate INC-482 to the database escalation path

Paging wakes a person, so the teammate says who it would reach and waits for a yes. incident.io's tool table has one tool for paging a user or an escalation path, and another for showing who would be paged at each level, so the teammate can check before it asks. A write also needs your own message to name it: thread history, retrieved content, and memory cannot authorize one on their own.

### On a schedule
- @oncall every Monday at 9am Eastern, post last week's incidents here with their severity
- @oncall every weekday at 8am Pacific, post who is on call for platform and payments today

A schedule saves on the spot. It needs an explicit IANA time zone in the request, and "every Monday at 9am" without one is refused rather than guessed. It runs under the incident.io connection of the person who asked, and stops with a named reason rather than running if that connection goes away.

### Example conversations

**Who is on call**
> **Sofia:** @oncall who is on call for platform and payments right now?
> **@oncall:** Four schedules, two of them yours. Marco has platform until Thursday 09:00, and payments hands over tonight.
>
> | Schedule | On call now | Until | Next up |
> |---|---|---|---|
> | Platform primary | Marco | Thu 09:00 | Priya |
> | Platform secondary | Dana | Thu 09:00 | Marco |
> | Payments primary | Priya | Tonight 18:00 | Sofia |
> | Payments secondary | Sofia | Mon 09:00 | Dana |

**What is open**
> **Dana:** @oncall what is open right now and what severity?
> **@oncall:** Three open. INC-482 is a P1 on checkout, declared 22 minutes ago, Marco leading, already merged with INC-483 because they were the same alert. INC-479 is a P3 on the search index, monitoring since this morning. INC-471 is a P4 on stale docs, nobody paged. Nothing else has fired since 14:02. Open INC-482

**Summarise a timeline**
> **Priya:** @oncall summarise the timeline on INC-482, I am writing the update.
> **@oncall:** Declared 14:06 at P2 from a checkout latency alert, raised to P1 at 14:19 when the error rate passed 8 percent. Marco took lead at 14:21 and paged the database path at 14:24. Two status updates so far: "investigating" at 14:26, "identified" at 14:41, both naming connection pool exhaustion. Still open, no post-mortem yet. That is everything incident.io has on it; I have not read anything from outside it.

**Page someone**
> **Marco:** @oncall page whoever is on call for payments, checkout is returning 500s.
> **@oncall:** The payments path pages Priya first, then Sofia after five minutes, then the whole rota. It is 23:40 where Priya is, so this wakes her. Paging is not something I do on my own, so say the word and I will send it.
> Buttons: Page the payments path · Page Priya only · Leave it

**Every Monday**
> **Dana:** @oncall every Monday at 9am Eastern, post last week’s incidents here with their severity.
> **@oncall:** Saved. Every Monday at 9:00 AM Eastern I’ll post the incidents declared in the previous seven days, with severity, who led each one, and how long it stayed open, in #eng. First run is Mon Sep 21. It runs on your incident.io connection, so say "pause the Monday digest" if you want it to stop.

## Connect incident.io
1. In incident.io, open **Settings → MCP** and turn the remote MCP server on. incident.io documents it as a public beta and lists it on the Team, Pro, and Enterprise plans, not on Basic.
2. Still in incident.io, open **Settings → API keys** and create one. incident.io bundles scopes into named permissions, and each permission can be account-level or scoped to particular teams, so a key for a teammate can be narrowed to what one team owns. The key is shown once.
3. In Chickpea Admin, open the teammate, then **Connections**, find **incident.io**, and choose **Connect**. Or ask in Slack, `@oncall connect incident.io`, and follow the link it posts.
4. Choose who uses it. **Team** is one shared key that everyone who can use the teammate acts through. **Personal** means each member pastes their own. Then paste the key into the write-only **Credential** field, which is stored once on your deployment and never returned to the browser.
5. Ask something. `@oncall who is on call for platform right now` is a good first question, because it reads and cannot change anything.

A connection belongs to one teammate. Giving a second teammate incident.io means a second key with its own permissions, so the support teammate never inherits what the on-call teammate can reach.

## What the teammate is handed with incident.io
There is no built-in Chickpea skill for incident.io, and none is needed. The tools arrive from incident.io's MCP server. Chickpea connects before it saves anything, records what the server answered with, and exposes only those tools. incident.io publishes the whole tool table, and marks which ones need a product an account may not have: the schedule, escalation, cover request, and maintenance window tools need On-call, and the document and telemetry tools need Investigations.

incident.io lists every tool the server exposes: https://docs.incident.io/ai/remote-mcp

## Beside incident.io
- **Sentry:** The error that started it, read beside the incident it became
- **Cloudflare API:** What the edge was doing at the time the page went out
- **Linear:** The follow-up from the post-mortem, filed where the work happens
- **BugSnag:** The other error tracker, for the app that has not moved off it yet
- All 37 connectors: https://chickpea.co/connectors

## Questions people ask

### Does incident.io have an MCP server?
Yes, a remote one at mcp.incident.io/mcp. incident.io documents it as a way to query incidents, analyse alerts, check who is on call, manage escalations, and run operational analysis from any assistant that speaks the Model Context Protocol, and it names Claude Code, Cursor, Codex, VS Code, Claude Desktop, and ChatGPT among its clients. Chickpea connects to that same server over streamable HTTP and sends your API key as a bearer token. There is no incident.io endpoint written by Chickpea, and the connection cannot reach any other address.

### What is incident.io used for?
incident.io describes itself as a software reliability platform. Teams use it to declare and run incidents, route alerts, hold on-call rotations and escalation paths, publish status pages, and write post-mortems afterwards. Its pricing page sells Basic, Team, Pro, and Enterprise plans, plus an on-call-only tier. A Chickpea teammate does not replace any of that. It reads and acts on what is already in your incident.io account, from a Slack channel, when someone asks.

### How can Slack be used for incident management?
incident.io is built around Slack and its own app does most of the work: declare an incident with /incident, run it in a dedicated channel, send alerts and updates into Slack, and run more than forty slash commands on the incident. Keep that app. A Chickpea teammate adds something else. It holds incident.io beside your other connected accounts in one channel, so a question about what broke, who is on call, and what the error tracker said can be one message rather than three tabs.

### Which plan does this need?
On incident.io's side, the MCP server sits on the Team, Pro, and Enterprise plans. incident.io's pricing page leaves it out of the free Basic plan, and the changelog entry that announced it calls it a public beta available to all paying customers. Past the plan, individual tools depend on products. incident.io marks the on-call tools as needing On-call and the document and telemetry tools as needing Investigations. A tool you are missing the product for still appears, and returns an error explaining why. Chickpea itself is Apache 2.0 and runs on your own Cloudflare account, so there are no seats and no metering on this side.

### Is this incident.io's own AI agent?
No, and incident.io has two of its own. @incident is an agent you tag in a Slack channel, a Teams tab, or the dashboard, and incident.io documents it as available to Pro and Enterprise customers. The Slack assistant is the same agent in Slack's assistant sidebar, and incident.io says it needs a Pro or Enterprise plan and a paid Slack plan. incident.io says both act with your own permissions and are attributed to you. A Chickpea teammate is different. It runs on your own deployment, it holds incident.io beside your other connectors, and on the API key path incident.io authenticates it as a service actor rather than as a person.

### Can it page someone?
Yes, if the key allows it and your account has On-call. incident.io's tool table lists paging a user or an escalation path, acknowledging or declining a page, and putting someone on call for a period. Because a page wakes a person, the teammate says who it would reach and waits for a yes in the thread. Under that sits the gate: during a Slack turn Chickpea refuses any MCP tool whose name does not start with an unambiguous read verb unless your own message named that action.

### Can it delete anything?
incident.io's published tool table includes a few deletes, among them deleting an incident action, cancelling a maintenance window that has not started, and removing a schedule override. Each one is a write by name, so the read-verb gate applies: it is refused unless the message you just sent names it, and the teammate asks before anything that reaches other people. Past that, the key decides. A key without the permission for a thing gets an error from incident.io rather than doing it.

### Can it publish a status page update?
No. incident.io's status page tool drafts an update and nothing more, and incident.io explains why: publishing emails and texts everyone subscribed to the page, so a person always does that part. The teammate can hand you a draft in the thread. You publish it in incident.io.

### Do I still need incident.io's Slack app?
Yes, and it is the point of incident.io. Its Slack app creates an incident with /incident, opens the incident channel, pulls in responders, sends updates over Slack, SMS, and email, and carries commands like /incident escalate and /incident whoisoncall. It also syncs a schedule into a Slack user group, so a mention like @platform-on-call always reaches whoever is on call now. A Chickpea teammate hears nothing from incident.io and posts nothing unprompted. It answers when someone asks, in the channel where the question came up. Both can be installed.

### Where does the API key live?
On your deployment, in a write-only Credential field outside the teammate record. It never enters the model's context, the tool arguments the model writes, or Slack. The model picks a connection by id and the key goes in at the last step on the way out. incident.io says API keys authenticate as a service actor rather than a specific user and do not expire until deleted, so create one for the teammate and delete it there when you disconnect. Disconnecting in Chickpea removes the stored secret and stops any schedule that depended on it.

## Sources
- [Chickpea docs: connector catalog, the incident.io preset, its lane and its beta note](https://docs.chickpea.co/reference/connector-catalog/)
- [Chickpea docs: connections, team and personal accounts, the binding as a ceiling](https://docs.chickpea.co/agents/connections/)
- [Chickpea docs: authority and confirmation, including the read-verb gate](https://docs.chickpea.co/security/authority-and-confirmation/)
- [Chickpea docs: connect a service, the write-only credential field and the Slack link](https://docs.chickpea.co/agents/connect-a-service/)
- [Chickpea docs: schedules, the explicit time zone rule and what a stopped schedule does](https://docs.chickpea.co/agents/schedules/)
- [Chickpea source: the incident.io preset (server URL, transport, bearer key)](https://github.com/pejmanjohn/chickpea/blob/main/src/config/presets.ts)
- [Chickpea source: an MCP connection exposes approved tools that are still discovered](https://github.com/pejmanjohn/chickpea/blob/main/src/config/types.ts)
- [incident.io docs: the remote MCP server, what it can do, and the full tool table](https://docs.incident.io/ai/remote-mcp)
- [incident.io docs: API keys, the permissions they bundle and who can create one](https://docs.incident.io/admin/api-keys)
- [incident.io changelog: the MCP server as a public beta for paying customers](https://incident.io/changelog/remote-mcp-server)
- [incident.io pricing: Basic, Team, Pro, and Enterprise, and where the MCP server sits](https://incident.io/pricing)
- [incident.io docs: @incident, what it does and which plans have it](https://docs.incident.io/ai/at-incident)
- [incident.io docs: the Slack assistant, its plan and its Slack requirement](https://docs.incident.io/ai/slack-assistant)
- [incident.io: running incidents from Slack with its own app](https://incident.io/incident-response-slack)
- [incident.io docs: the Slack shortcuts cheatsheet, including whoisoncall and escalate](https://docs.incident.io/incidents/shortcuts)
- [incident.io docs: syncing an on-call schedule into a Slack user group](https://docs.incident.io/on-call/sync-slack-groups)
- [Chickpea source on GitHub](https://github.com/pejmanjohn/chickpea)

## More
- [Ahrefs MCP in Slack](https://chickpea.co/connectors/ahrefs.md)
- [Airtable MCP in Slack](https://chickpea.co/connectors/airtable.md)
- [Asana AI agent in Slack](https://chickpea.co/connectors/asana.md)
- [Jira and Confluence MCP in Slack](https://chickpea.co/connectors/atlassian.md)
- [BugSnag MCP in Slack](https://chickpea.co/connectors/bugsnag.md)
- [Cloudflare MCP in Slack](https://chickpea.co/connectors/cloudflare-api.md)
- [Exa MCP in Slack](https://chickpea.co/connectors/exa.md)
- [Firecrawl MCP in Slack](https://chickpea.co/connectors/firecrawl.md)
- [Fireflies MCP in Slack](https://chickpea.co/connectors/fireflies.md)
- [Gamma MCP in Slack](https://chickpea.co/connectors/gamma.md)
- [Gmail AI agent in Slack](https://chickpea.co/connectors/gmail.md)
- [Gong AI agent in Slack](https://chickpea.co/connectors/gong-managed.md)
- [Google Ads AI agent in Slack](https://chickpea.co/connectors/google-ads.md)
- [Google Analytics AI agent in Slack](https://chickpea.co/connectors/google-analytics.md)
- [Google Calendar AI agent in Slack](https://chickpea.co/connectors/google-calendar.md)
- [Google Docs AI agent in Slack](https://chickpea.co/connectors/google-docs.md)
- [Google Drive AI agent in Slack](https://chickpea.co/connectors/google-drive.md)
- [Google Search Console AI agent in Slack](https://chickpea.co/connectors/google-search-console.md)
- [Google Sheets AI agent in Slack](https://chickpea.co/connectors/google-sheets.md)
- [Google Slides AI agent in Slack](https://chickpea.co/connectors/google-slides.md)
- [Granola MCP in Slack](https://chickpea.co/connectors/granola.md)
- [HubSpot AI agent in Slack](https://chickpea.co/connectors/hubspot-managed.md)
- [Hugging Face MCP in Slack](https://chickpea.co/connectors/huggingface.md)
- [Intercom MCP in Slack](https://chickpea.co/connectors/intercom.md)
- [Linear MCP in Slack](https://chickpea.co/connectors/linear.md)
- [LunarCrush MCP in Slack](https://chickpea.co/connectors/lunarcrush.md)
- [Meta Ads MCP in Slack](https://chickpea.co/connectors/meta-ads.md)
- [Monday.com MCP in Slack](https://chickpea.co/connectors/monday.md)
- [Neon MCP in Slack](https://chickpea.co/connectors/neon.md)
- [Notion Slack integration with an AI agent](https://chickpea.co/connectors/notion-managed.md)
- [PostHog MCP in Slack](https://chickpea.co/connectors/posthog.md)
- [Sentry MCP in Slack](https://chickpea.co/connectors/sentry.md)
- [Stripe MCP in Slack](https://chickpea.co/connectors/stripe.md)
- [Supabase MCP in Slack](https://chickpea.co/connectors/supabase.md)
- [YouTube AI agent in Slack](https://chickpea.co/connectors/youtube-managed.md)
- [Zendesk AI agent in Slack](https://chickpea.co/connectors/zendesk.md)
- [All connectors](https://chickpea.co/connectors.md)

## Try Chickpea
- Site: https://chickpea.co/
- Deploy to Cloudflare: https://deploy.workers.cloudflare.com/?url=https://github.com/pejmanjohn/chickpea
- Source, Apache 2.0: https://github.com/pejmanjohn/chickpea
- Docs: https://docs.chickpea.co
