# Stackpulse

> 8,900+ services' status, and your Stackpulse dashboards and URL monitors. Needs Pro.

- name: app.stackpulse/mcp
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 87/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/app.stackpulse%2Fmcp
- tools: https://api.protogrid.dev/v1/servers/app.stackpulse%2Fmcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "stackpulse": {
      "type": "http",
      "url": "https://stackpulse.app/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-10d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 87/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 16 of 16 tools declare readOnlyHint or destructiveHint
- warn `tools.directory_hints`: 8 of 16 tools declare all four hints; missing: get_service (destructiveHint, idempotentHint); list_outages (destructiveHint, idempotentHint); list_dashboards (destructiveHint, idempotentHint); …
- pass `tools.token_cost`: about 2,068 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 22 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 16, about 2,068 tokens to load them all
- tool set hash: 9d4c6ae72bca353180b818ce28e46ed8
- tools last changed: 2026-10-11T14:54:21.404Z
- badge: [![protogrid quality](https://protogrid.dev/badge/app.stackpulse/mcp.svg)](https://protogrid.dev/servers/app.stackpulse/mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-11 `resume_monitor` changed (annotations)
- 2026-10-11 `pause_monitor` changed (annotations)
- 2026-10-11 `check_monitor` changed (annotations)
- 2026-10-11 `add_monitor` changed (annotations)
- 2026-10-11 `remove_services` changed (annotations)
- 2026-10-11 `add_services` changed (annotations)
- 2026-10-11 `rename_dashboard` changed (annotations)
- 2026-10-11 `create_dashboard` changed (annotations)
- 2026-10-11 `get_reliability` changed (annotations)
- 2026-10-11 `get_monitor` changed (annotations)

Full history: https://api.protogrid.dev/v1/servers/app.stackpulse%2Fmcp/changes

## Remotes

- https://stackpulse.app/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (16)

- `add_monitor`: Watches a website or API endpoint on a dashboard: checks the address once first, and refuses what the app refuses (private addresses, other ports, past the plan). Without a name, the page’s title names it. Headers and request bodies stay in the app.
- `add_services`: Adds services to a dashboard by slug (search_services finds them), within the plan’s limit.
- `check_monitor`: Checks one of the account’s URL monitors now, as Check now does in the app, and says what it got.
- `create_dashboard`: Makes a dashboard with a name and, optionally, services by slug (search_services finds them), within the plan’s dashboards and services. Answers with its address.
- `get_incident_history`: Incidents on a dashboard in a window: the ones that started in it (with what else started at the same time) and the ones already going on. As far back as the plan’s history goes.
- `get_monitor`: One of the account’s URL monitors: its status, its uptime over the last 30 days (or since it started) with the failed checks apart, response times, its certificate and its latest checks.
- `get_reliability`: How reliable a dashboard’s services and URL monitors were over 7, 30 or 90 days: the least reliable first, with the share of time without a reported problem (minor issues count, so one long minor issue makes it low), time in each severity, incidents and recovery, and what tends to break together.
- `get_service`: One service’s status from its official status page: what’s wrong, the components with a problem, 90 days of history and recent incidents.
- `get_stack_status`: What’s going on now on a dashboard: a summary, then every service and URL monitor with a problem, with when the problem began and when its current status did. A URL monitor that’s down lists what started around then. Without a dashboard, every dashboard.
- `list_dashboards`: The account’s dashboards (the ones this connection can see), with how many services and URL monitors each has and its worst status now.
- `list_outages`: Services reporting a problem right now, the newest first: the 25 best-known, unless all is true or a limit is given.
- `pause_monitor`: Pauses a URL monitor, e.g. during a deploy: an open incident ends, and no alerts go out until it’s resumed.
- `remove_services`: Takes services off a dashboard. Their history stays; adding one back shows it again.
- `rename_dashboard`: Renames a dashboard. Its status page shares the name.
- `resume_monitor`: Resumes a paused URL monitor: it’s checked at once and starts fresh.
- `search_services`: Finds services in the catalog of 9,700+ status pages by name, with their status now. Use it to find a service’s slug.
