Spike integration
Spike (spike.sh) is an incident management and on-call platform. List, create, acknowledge, resolve and escalate incidents, set their priority and severity, add notes and responders, read and edit on-call schedules, layers and overrides, and manage services, escalation policies, alert rules, integrations and status pages (components, status page incidents, planned maintenances, subscribers). Most routes are scoped to one team: send its _id from list_all_teams in the x-team-id parameter. Authentication is an organisation API key created in the Spike dashboard under Settings > API, sent in the x-api-key header; it has full access to the organisation.
Say what should happen.
The workflow builds itself.
What you can do with Spike
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Incident, 21 operations
acknowledge_incidentsAcknowledge incidentsPOSTAcknowledges one or more incidents by counterId. An acknowledge timeout set on the incident's integration still applies.create_incidentCreate incidentPOSTCreates an incident and sends alerts through the integration named by integrationWebhook (its token from list_integrations); routing to a service and escalation policy comes from that integration.escalate_incidentsEscalate incidentsPOSTEscalates one or more incidents by counterId to the next step of their escalation policy.get_incidentGet incidentGETReturns one incident by counterId: title, metadata, priority, severity, duration, grouped and repeated incidents and comments.get_incident_contextGet incident contextGETReturns an overview of an incident: the incident, its duration and its grouped incident.get_incident_overviewGet incident overviewGETReturns a team incident overview: incidents assigned to the given user (id), triggered and acknowledged incidents, and affected services.get_previous_incident_occurrenceGet previous incident occurrenceGETReturns one previous occurrence of an incident with its details.list_acknowledged_incidentsList acknowledged incidentsGETLists the acknowledged (ACK) incidents of a team.list_incident_occurrencesList incident occurrencesGETLists every incident occurrence between start and end (ISO 8601), filtered by teams, status, service or integration, paged with page and perPage (default 25, max 100).list_incidentsList incidentsGETLists the incidents of a team with their counterId, status (NACK triggered, ACK acknowledged, RES resolved), priority, severity, service and responders.list_incidents_assigned_to_userList incidents assigned to userGETReturns the open (NACK and ACK) incidents of a team assigned to one user, given the user _id as id.list_previous_incident_occurrencesList previous incident occurrencesGETLists the previous occurrences of an incident, given its counterId. Each has an _id to pass to get_previous_incident_occurrence.list_service_incidentsList service incidentsGETLists the incidents of one service.list_triggered_incidentsList triggered incidentsGETLists the triggered (NACK, not yet acknowledged) incidents of a team.remove_incident_priorityRemove incident priorityDELETERemoves the priority from one or more incidents by counterId.remove_incident_severityRemove incident severityDELETERemoves the severity from one or more incidents by counterId.resolve_incidentsResolve incidentsPOSTResolves one or more incidents by counterId.set_incident_prioritySet incident priorityPOSTSets the priority (p1 to p5) of one or more incidents by counterId.set_incident_public_sharingSet incident public sharingPATCHTurns public sharing of an incident on or off. When on, the answer carries the public URL anyone can open.set_incident_severitySet incident severityPOSTSets the severity (sev1, sev2 or sev3) of one or more incidents by counterId.unacknowledge_incidentsUnacknowledge incidentsPOSTMoves one or more acknowledged incidents back to triggered, by counterId.
Escalation policy, 6 operations
archive_escalation_policyArchive escalation policyDELETEArchives (soft-deletes) an escalation policy. Check first that no active integration uses it, or its incidents may stop escalating.create_escalation_policyCreate escalation policyPOSTCreates an escalation policy for a team: ordered steps of notification rules (who, via which channel) with the delay before each escalation.get_escalation_policyGet escalation policyGETReturns one escalation policy with its rules, plus the integrations and alert rules that use it.list_escalation_policiesList escalation policiesGETLists the escalation policies of a team: who is alerted, through which channel, and when an unacknowledged incident moves to the next step.list_on_call_escalation_policiesList on call escalation policiesGETLists the escalation policies that use an on-call schedule, to see what a change to the schedule affects.update_escalation_policyUpdate escalation policyPUTReplaces an escalation policy entirely; partial updates are not supported. Read it with get_escalation_policy first and send name and the full escalation steps back with your change.
Integration, 6 operations
archive_integrationArchive integrationDELETEArchives an integration; archived integrations are hidden in the Spike dashboard.create_integrationCreate integrationPOSTCreates an integration for a team, of a type from list_available_integrations, routed to a service and an escalation policy. The answer carries its token and webhook URL.get_integrationGet integrationGETReturns one integration by token, with its incidents.list_available_integrationsList available integrationsGETLists the integration types Spike offers (name, slug, category); the slug is what create_integration takes.list_integrationsList integrationsGETLists the integrations of a team with their token, which create_incident takes as integrationWebhook.list_service_integrationsList service integrationsGETLists the integrations of one service with their details and webhook.
Planned maintenance, 6 operations
create_planned_maintenanceCreate planned maintenancePOSTSchedules a planned maintenance on a status page for the given components. Times are UTC. notifyNow sends subscribers a notice immediately; notify, notifyOnEnd and reminders notify them later.get_planned_maintenanceGet planned maintenanceGETReturns one planned maintenance of a status page.list_ongoing_maintenancesList ongoing maintenancesGETLists the planned maintenances in progress on a status page. For future or past ones use list_upcoming_maintenances or list_previous_maintenances.list_previous_maintenancesList previous maintenancesGETLists the past planned maintenances of a status page.list_upcoming_maintenancesList upcoming maintenancesGETLists the upcoming planned maintenances of a status page.update_planned_maintenanceUpdate planned maintenancePOSTEdits a planned maintenance of a status page (title, message, dates, components, notifications). Times are UTC; notifyNow notifies subscribers immediately.
Alert rule, 5 operations
archive_alert_ruleArchive alert ruleDELETEArchives (soft-deletes) an alert rule: it stops evaluating incoming incidents.create_alert_ruleCreate alert rulePOSTCreates an alert rule for a team: actions (reassign, suppress, acknowledge, resolve, change escalation, set priority or severity, run a webhook or playbook) run on incoming incidents that match its conditions.get_alert_ruleGet alert ruleGETReturns one alert rule with all its conditions and actions.list_alert_rulesList alert rulesGETLists the alert rules of a team, enabled and disabled. Each rule has name, conditions (OR groups of AND conditions), actions and enabled.update_alert_ruleUpdate alert rulePUTReplaces an alert rule entirely; partial updates are not supported. Read the rule with get_alert_rule first and send its name, conditions and actions back with your change.
Incident note, 5 operations
archive_incident_noteArchive incident noteDELETEArchives a note on an incident: a reversible soft-hide, not a delete. Its author can restore it from the incident page; archiving an archived note is harmless.create_incident_noteCreate incident notePOSTWrites a note (Markdown or plain text, up to 10000 characters) on an incident; it is attributed to the API key and shows as "<key name> (API)". isResolution marks it as what fixed the incident.list_incident_notesList incident notesGETLists every note of an incident, oldest first, and names the pinned one. An archived note comes back with archived true and content null.pin_incident_notePin incident notePUTPins a note so the incident leads with it as its current state. Only one note is pinned at a time: pinning another note moves the pin.unpin_incident_noteUnpin incident noteDELETEUnpins a note so the incident no longer leads with it; the note stays in the timeline. noteId must be the note holding the pin, else the call is refused.
On call shift, 5 operations
check_user_on_callCheck user on callGETTells whether a person is on call right now, with the active shift, when it ends and whether they are in several on-calls.get_next_on_call_shiftGet next on call shiftGETReturns the next scheduled shift of an on-call, looking up to 7 days ahead; an empty answer means no shift in that window or no such on-call.get_on_call_active_shiftGet on call active shiftGETReturns the shift active right now in an on-call schedule; activeShift is null when nobody is on call.list_active_on_call_shiftsList active on call shiftsGETLists the shifts active right now in a team, with the user on call in each.list_upcoming_shiftsList upcoming shiftsGETReturns one user's upcoming shifts across the on-call schedules of a team, from the start of the current week to one month ahead (user given by id).
Service, 5 operations
create_serviceCreate servicePOSTCreates a service in a team.get_serviceGet serviceGETReturns one service with its open incident count, its incidents and its status badge URL.list_affected_servicesList affected servicesGETLists the services of a team that currently have open incidents.list_servicesList servicesGETLists the services of a team. A service groups integrations and their incidents; its counterId is what the service tools take.update_serviceUpdate servicePUTUpdates the name and description of a service.
Status page incident, 5 operations
add_status_page_incident_updateAdd status page incident updatePOSTPosts a status update (investigating, identified, update, resolved or postmortem) on a status page incident and sets component statuses. Subscribers are notified only when notify is true.create_status_page_incidentCreate status page incidentPOSTPublishes a new incident on a status page and sets the status of the affected components. Subscribers are notified only when notify is true. Times are UTC.get_status_page_incidentGet status page incidentGETReturns one incident of a status page with its updates.list_status_page_incidentsList status page incidentsGETLists the incidents published on a status page.update_status_page_incidentUpdate status page incidentPOSTEdits a status page incident: title, description, severity and the status of its components.
On call, 4 operations
create_on_callCreate on callPOSTCreates an on-call schedule for the team in x-team-id: send users and a rotation for one layer (shifts follow the order of users), or a layers array for several escalation tiers.get_on_callGet on callGETReturns one on-call schedule with its layers, shifts and users, starting from the from date.list_on_callsList on callsGETLists the on-call schedules of a team. x-team-id is required for an API key.update_on_callUpdate on callPUTUpdates an on-call schedule's name, team or timezone; send only what changes. Changing the timezone reinterprets every stored layer time in the new zone. Edit rotations with the layer tools.
Status page component, 4 operations
create_status_page_componentsCreate status page componentsPOSTCreates one or more components on a status page in one call. Each entry needs a name; set parent to an existing top-level component _id to nest it (one level deep). One invalid entry saves nothing.get_status_page_componentGet status page componentGETReturns one status page component, including its parent (the component it is nested under, or null), its order and its status.list_status_page_componentsList status page componentsGETLists the components of a status page as a flat list: each carries parent (the component it nests under, or null) and order, parents first. Read the rolled-up status in effectiveStatus.update_status_page_componentUpdate status page componentPOSTUpdates a status page component: name, description, status, private flag, start date, nesting (parent) or order. Leave a field out to keep its current value.
On call layer, 3 operations
add_on_call_layerAdd on call layerPOSTAdds a layer (rotation) to an on-call schedule as its next escalation tier; shifts follow the order of users. Returns the updated on-call.delete_on_call_layerDelete on call layerDELETEDeletes a layer from an on-call schedule; deleting its last layer is refused with 409. Returns the updated on-call.update_on_call_layerUpdate on call layerPUTUpdates a layer of an on-call schedule: send any of users, rotation, desc, customTimings; omitted fields keep their values and rotation fields merge onto the current cadence. Returns the updated on-call.
On call override, 3 operations
add_on_call_overrideAdd on call overridePOSTAdds a temporary override to an on-call schedule: another user covers the shift between start and end (ISO 8601).delete_on_call_overrideDelete on call overrideDELETEDeletes an override from an on-call schedule. layerId is the override id from list_on_call_overrides, not the on-call id.list_on_call_overridesList on call overridesGETLists the overrides of an on-call schedule between from and to. Each override id is what delete_on_call_override takes as layerId.
Incident responder, 2 operations
add_incident_responderAdd incident responderPOSTAdds a user as responder to one or more incidents by counterId.remove_incident_responderRemove incident responderPOSTRemoves a user from the responders of one or more incidents by counterId.
Status page, 2 operations
get_status_pageGet status pageGETReturns the details of one status page.list_status_pagesList status pagesGETLists every status page of the organisation. Use a page _id from here as status_page_id in the other status page tools.
Suppressed incident, 2 operations
get_suppressed_incidentGet suppressed incidentGETReturns one suppressed incident with its details.list_suppressed_incidentsList suppressed incidentsGETLists the incidents suppressed under an incident: events that arrived for the same service while it was still triggered.
Team, 2 operations
list_all_teamsList all teamsGETLists every team of the organisation. A team _id from here is the x-team-id that most other tools require (not the short uid).list_my_teamsList my teamsGETLists the teams a member belongs to.
User, 2 operations
get_userGet userGETReturns one member of the organisation.list_usersList usersGETLists the members of the organisation, including removed members, with _id, name, email, phone, role and timezone.
Incident activity, 1 operation
get_incident_activity_logGet incident activity logGETReturns the activity log of an incident: alerts sent, acknowledgements, escalations and other events.
Organization, 1 operation
get_org_infoGet org infoGETReturns the organisation the API key belongs to: _id, name and uid.
Organization member, 1 operation
list_org_membersList org membersGETLists the members of the organisation, including removed members, with name, email, phone, role and timezone.
Status page subscriber, 1 operation
list_status_page_subscribersList status page subscribersGETLists the subscribers of a status page.
Use Spike from Claude Code, Cursor or Codex
Connect Spike in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Spike operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect Spike
- Create your workspace
Sign up free. Nothing to install.
- Connect Spike once
Add your Spike connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
Spike integration FAQ
What can you do with the Spike integration?
LiveContext exposes 92 operations on Spike, covering incident, escalation policy, integration and planned maintenance.
