Skip to main content
Glama

Server Details

Read Spike.sh incidents, on-call, escalations and services; acknowledge, resolve, set priority.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.

Tool Definition Quality

Score is being calculated. Check back soon.

Available Tools

16 tools
spike_acknowledge_incidentsAcknowledge incidents
Destructive
Inspect

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:[...]}.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesIncident ids (the incident `_id` values) to acknowledge.
teamIdNoThe 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.
spike_get_escalationGet escalation policy
Read-only
Inspect

Get one escalation policy by id — {escalation, integrations:[...], isPinned, alertRules}. Spike: GET /escalations/{escalationId} (team-scoped).

ParametersJSON Schema
NameRequiredDescriptionDefault
teamIdNoThe 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.
escalationIdYesThe escalation policy's _id (from spike_list_escalations).
spike_get_incidentGet incident
Read-only
Inspect

Get a single incident's full detail by its counterId — {incident, duration, metadata, comments, repeatedIncidents}. Spike: GET /incidents/{counterId} (team-scoped).

ParametersJSON Schema
NameRequiredDescriptionDefault
teamIdNoThe 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.
counterIdYesThe incident's counterId (its human-facing incident number/id).
spike_get_incident_activity_logGet incident activity log
Read-only
Inspect

Get the chronological activity log for an incident — {incident, activities:[...]} (who acknowledged/resolved/commented and when). Spike: GET /incidents/{counterId}/activity-log (team-scoped).

ParametersJSON Schema
NameRequiredDescriptionDefault
teamIdNoThe 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.
counterIdYesThe incident's counterId.
spike_get_on_callGet on-call schedule
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
fromNoISO timestamp to render upcoming shifts from (e.g. "2026-07-19T00:00:00Z").
teamIdNoThe 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.
oncallIdYesThe on-call schedule's id (from spike_list_on_calls).
spike_get_serviceGet service
Read-only
Inspect

Get one service by its counterId — {service, org, openIncidentsCountForService, incidents, badgeURL}. Spike: GET /services/{counterId} (team-scoped).

ParametersJSON Schema
NameRequiredDescriptionDefault
teamIdNoThe 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.
counterIdYesThe service's counterId (from spike_list_services).
spike_list_acknowledged_incidentsList acknowledged incidents
Read-only
Inspect

List currently ACKNOWLEDGED (being worked on, not yet resolved) incidents for a team. Spike: GET /incidents/acknowledged (team-scoped).

ParametersJSON Schema
NameRequiredDescriptionDefault
teamIdNoThe 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.
spike_list_escalationsList escalation policies
Read-only
Inspect

List a team's escalation policies — {totalEscalations, escalations:[{_id, name, teams, org}], pagination}. Spike: GET /escalations (team-scoped).

ParametersJSON Schema
NameRequiredDescriptionDefault
teamIdNoThe 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.
spike_list_incidentsList incidents
Read-only
Inspect

List incidents for a team — {incidents:[...], totalIncidents, totalOpenIncidents, pagination}. Each incident carries title, status, priority, severity, and timing. Spike: GET /incidents (team-scoped).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number for pagination.
teamIdNoThe 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.
perPageNoResults per page.
spike_list_on_callsList on-call schedules
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
teamIdNoThe 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.
spike_list_servicesList services
Read-only
Inspect

List a team's services — {totalServices, services:[{_id, counterId, name, desc, teams, org}], pagination}. Spike: GET /services (team-scoped).

ParametersJSON Schema
NameRequiredDescriptionDefault
teamIdNoThe 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.
spike_list_teamsList teams
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

spike_list_triggered_incidentsList triggered incidents
Read-only
Inspect

List currently TRIGGERED (open, unacknowledged) incidents for a team — the active fire-fighting queue. Spike: GET /incidents/triggered (team-scoped).

ParametersJSON Schema
NameRequiredDescriptionDefault
teamIdNoThe 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.
spike_resolve_incidentsResolve incidents
Destructive
Inspect

RESOLVES (closes) one or more incidents — this CHANGES live incident state and marks them done. Spike: POST /incidents/resolve with {ids:[...]}.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesIncident ids (the incident `_id` values) to resolve.
teamIdNoThe 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.
spike_set_incident_prioritySet incident priorityA
Destructive
Inspect

Sets the PRIORITY (p1..p5) on one or more incidents — this CHANGES live incident state. Spike: POST /incidents/priority with {ids:[...], priority}.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesIncident ids (the incident `_id` values) to update.
teamIdNoThe 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.
priorityYesPriority level: p1 (highest) .. p5 (lowest).
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already include destructiveHint true. The description adds that it 'CHANGES live incident state,' which reinforces but does not significantly extend beyond annotations. No mention of permissions, rollback, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with the main action front-loaded. The second sentence includes the API endpoint, which may be extraneous for an AI agent but does not harm conciseness. No superfluous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, and the description lacks information about return values or confirmation of the update. Given the mutation nature, additional context on what happens after successful operation would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% as all parameters have descriptions in the schema. The description provides an example request format but does not add new meaning beyond what the schema already conveys.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Sets') and the resource ('incidents') with a specific attribute ('PRIORITY (p1..p5)'), and it distinguishes from sibling tools that handle other incident actions like acknowledging or resolving.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives. It mentions that it changes live incident state, which implies it's for mutation, but no guidance on prerequisites or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spike_who_is_on_call_nextWho is on call next
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
teamIdNoThe 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.
oncallIdYesThe on-call schedule's id.

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.