Read Spike.sh incidents, on-call, escalations and services; acknowledge, resolve, set priority.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
ACKNOWLEDGES one or more incidents — this CHANGES live incident state (stops escalation and marks them as being worked on). Spike: POST /incidents/acknowledge with {ids:[...]}.
Incident ids (the incident `_id` values) to acknowledge.
The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
ACKNOWLEDGES one or more incidents — this CHANGES live incident state (stops escalation and marks them as being worked on). Spike: POST /incidents/acknowledge with {ids:[...]}.
| Argument | Type | Description |
|---|---|---|
| ids* | array | Incident ids (the incident `_id` values) to acknowledge. |
| teamId | string | The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ids"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "Incident ids (the incident `_id` values) to acknowledge."
},
"teamId": {
"type": "string",
"description": "The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams."
}
}
}Get one escalation policy by id — {escalation, integrations:[...], isPinned, alertRules}. Spike: GET /escalations/{escalationId} (team-scoped).
| Argument | Type | Description |
|---|---|---|
| teamId | string | The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams. |
| escalationId* | string | The escalation policy's _id (from spike_list_escalations). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"escalationId"
],
"properties": {
"teamId": {
"type": "string",
"description": "The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams."
},
"escalationId": {
"type": "string",
"description": "The escalation policy's _id (from spike_list_escalations)."
}
}
}Get a single incident's full detail by its counterId — {incident, duration, metadata, comments, repeatedIncidents}. Spike: GET /incidents/{counterId} (team-scoped).
| Argument | Type | Description |
|---|---|---|
| teamId | string | The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams. |
| counterId* | string | The incident's counterId (its human-facing incident number/id). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"counterId"
],
"properties": {
"teamId": {
"type": "string",
"description": "The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams."
},
"counterId": {
"type": "string",
"description": "The incident's counterId (its human-facing incident number/id)."
}
}
}Get the chronological activity log for an incident — {incident, activities:[...]} (who acknowledged/resolved/commented and when). Spike: GET /incidents/{counterId}/activity-log (team-scoped).
| Argument | Type | Description |
|---|---|---|
| teamId | string | The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams. |
| counterId* | string | The incident's counterId. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"counterId"
],
"properties": {
"teamId": {
"type": "string",
"description": "The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams."
},
"counterId": {
"type": "string",
"description": "The incident's counterId."
}
}
}Get one on-call schedule by id — {oncall:{_id, name, timezone, teams, users, activeShift, renderedShifts}}. `from` optionally sets the window start for rendered shifts. Spike: GET /on-calls/{oncallId} (team-scoped).
| Argument | Type | Description |
|---|---|---|
| from | string | ISO timestamp to render upcoming shifts from (e.g. "2026-07-19T00:00:00Z"). |
| teamId | string | The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams. |
| oncallId* | string | The on-call schedule's id (from spike_list_on_calls). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"oncallId"
],
"properties": {
"from": {
"type": "string",
"description": "ISO timestamp to render upcoming shifts from (e.g. \"2026-07-19T00:00:00Z\")."
},
"teamId": {
"type": "string",
"description": "The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams."
},
"oncallId": {
"type": "string",
"description": "The on-call schedule's id (from spike_list_on_calls)."
}
}
}Get one service by its counterId — {service, org, openIncidentsCountForService, incidents, badgeURL}. Spike: GET /services/{counterId} (team-scoped).
| Argument | Type | Description |
|---|---|---|
| teamId | string | The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams. |
| counterId* | string | The service's counterId (from spike_list_services). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"counterId"
],
"properties": {
"teamId": {
"type": "string",
"description": "The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams."
},
"counterId": {
"type": "string",
"description": "The service's counterId (from spike_list_services)."
}
}
}List currently ACKNOWLEDGED (being worked on, not yet resolved) incidents for a team. Spike: GET /incidents/acknowledged (team-scoped).
| Argument | Type | Description |
|---|---|---|
| teamId | string | The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"teamId": {
"type": "string",
"description": "The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams."
}
}
}List a team's escalation policies — {totalEscalations, escalations:[{_id, name, teams, org}], pagination}. Spike: GET /escalations (team-scoped).
| Argument | Type | Description |
|---|---|---|
| teamId | string | The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"teamId": {
"type": "string",
"description": "The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams."
}
}
}List incidents for a team — {incidents:[...], totalIncidents, totalOpenIncidents, pagination}. Each incident carries title, status, priority, severity, and timing. Spike: GET /incidents (team-scoped).
| Argument | Type | Description |
|---|---|---|
| page | integer | 1-based page number for pagination. |
| teamId | string | The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams. |
| perPage | integer | Results per page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "1-based page number for pagination."
},
"teamId": {
"type": "string",
"description": "The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams."
},
"perPage": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page."
}
}
}List a team's on-call schedules — {oncalls:[...]}. Each on-call has an id, name, timezone, and layers. Use the id with spike_get_on_call / spike_who_is_on_call_next. Spike: GET /on-calls (team-scoped).
| Argument | Type | Description |
|---|---|---|
| teamId | string | The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"teamId": {
"type": "string",
"description": "The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams."
}
}
}List a team's services — {totalServices, services:[{_id, counterId, name, desc, teams, org}], pagination}. Spike: GET /services (team-scoped).
| Argument | Type | Description |
|---|---|---|
| teamId | string | The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"teamId": {
"type": "string",
"description": "The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams."
}
}
}List all teams in the Spike.sh organization — {teams:[{_id, name, uid, private, org}]}. NOT team-scoped (no x-team-id needed). The `_id` values here are what you pass as `teamId` (x-team-id) to every other tool. Spike: GET /teams/get-all-teams.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List currently TRIGGERED (open, unacknowledged) incidents for a team — the active fire-fighting queue. Spike: GET /incidents/triggered (team-scoped).
| Argument | Type | Description |
|---|---|---|
| teamId | string | The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"teamId": {
"type": "string",
"description": "The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams."
}
}
}RESOLVES (closes) one or more incidents — this CHANGES live incident state and marks them done. Spike: POST /incidents/resolve with {ids:[...]}.
| Argument | Type | Description |
|---|---|---|
| ids* | array | Incident ids (the incident `_id` values) to resolve. |
| teamId | string | The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ids"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "Incident ids (the incident `_id` values) to resolve."
},
"teamId": {
"type": "string",
"description": "The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams."
}
}
}Sets the PRIORITY (p1..p5) on one or more incidents — this CHANGES live incident state. Spike: POST /incidents/priority with {ids:[...], priority}.
| Argument | Type | Description |
|---|---|---|
| ids* | array | Incident ids (the incident `_id` values) to update. |
| teamId | string | The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams. |
| priority* | string | Priority level: p1 (highest) .. p5 (lowest). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ids",
"priority"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "Incident ids (the incident `_id` values) to update."
},
"teamId": {
"type": "string",
"description": "The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams."
},
"priority": {
"enum": [
"p1",
"p2",
"p3",
"p4",
"p5"
],
"type": "string",
"description": "Priority level: p1 (highest) .. p5 (lowest)."
}
}
}Get the NEXT scheduled shift for an on-call schedule — {nextShift:{userId, startTimeInUTC, endTimeInUTC}} (or {} if none). Spike: GET /on-calls/{oncallId}/who-is-on-call-next (team-scoped).
| Argument | Type | Description |
|---|---|---|
| teamId | string | The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams. |
| oncallId* | string | The on-call schedule's id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"oncallId"
],
"properties": {
"teamId": {
"type": "string",
"description": "The 24-char hex team _id to scope this request to (x-team-id). Omit to use the configured default (SPIKE_TEAM_ID). List ids with spike_list_teams."
},
"oncallId": {
"type": "string",
"description": "The on-call schedule's id."
}
}
}