Better Stack MCP
MCPB · BETTERSTACK-MCP.MCPB
Every Better Stack Uptime feature, plus an offline SQLite mirror and cross-resource fleet analytics
Available components
Last scanned (5 hours ago)
Scores higher than 86% of MCPB servers
Category Monitoring and Observability
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security0
- No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
- Known CVEs could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).Unverified
- Install-script risk not yet assessed.Unverified
- Dependency health could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).Unverified
Provenance & Transparency48
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (Apache-2.0).Pass
- Actively maintained (last published 12 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability62
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 16385 tokens (~237/item across 69 items; 69 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management99
- Stability check failed: the tool surface changed between 0.1.3 and 0.1.7: 0 tool removals, 1 breaking changes, 0 additions. See how to fix → Fail
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 9 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 69 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 0
- Package version: 0.1.3 → 0.1.7 functional
- 31 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 96 to 99.
- 29 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 89 to 93.
- 27 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 86.
- 25 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 76 to 79.
- 23 Oct 26 +1
- Stability: 0.70 → fail ▼ security
- Maintenance: pass → unverified ▼ functional
- Package version: 0.1.5 → 0.1.7 functional
- Package version: 0.1.5 → 0.1.6 functional
- 22 Oct 26 0
- Stability: 0.67 → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Tool coverage: 100 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. functional
- Package version: 0.1.4 → 0.1.5 functional
- 21 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed mcpb/https://github.com/Servosity/msp-skills/releases/download/betterstack-v0.1.7/betterstack-mcp.mcpb@0.1.7
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | mcpb |
| Reason | No attestation published |
Background: How many MCP packages publish verified provenance →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
context ~29
Get API domain context: resource taxonomy, auth requirements, query tips, and unique capabilities. Call this first.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
coverage ~561
Use this command to find monitors with no escalation policy or alert channel. Do NOT use it for heartbeat configuration risk; use 'heartbeat-risk' instead. Do NOT use it to find rotations with nobody on call; use 'oncall-gaps' instead. Anti-joins monitors against escalation policies and direct alert channels in the local mirror to surface monitors that would page nobody if they failed. Run `sync` first.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| include-paused | boolean | – | Include paused monitors in the gap analysis (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
down ~528
Use this command for the focused list of monitors currently down and whether anyone is paged. Do NOT use it for a full-account summary including paused/healthy counts; use 'fleet' instead. Do NOT use it to age open incidents by acknowledgement state; use 'triage' instead. Reads the local SQLite mirror; run `sync` first.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
export ~564
Export paginated API data to a local file. Supports JSONL (one JSON object per line, streaming-friendly) and JSON (array). JSONL is recommended for large datasets as it has no memory pressure.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| args | string | – | Additional positional arguments or raw CLI flags to append to the command. |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| format | string | – | Output format: jsonl or json (default: jsonl) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| limit | number | – | Maximum records to export (0 = unlimited) (default: 0) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache for fresh data (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
flapping ~562
Use this command to rank monitors by how many incidents they generated (alert-fatigue sources). Do NOT use it for response-time math; use 'mttr' instead. Counts incidents per source (monitor/heartbeat) over the window from the local mirror and ranks the noisiest. Run `sync` first.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| days | number | – | Window in days to count incidents over (default: 7) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| top | number | – | Show only the top N noisiest sources (default: 10) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
fleet ~491
Join monitors, heartbeats, incidents, and on-call calendars from the local SQLite mirror into a single health board. Run `sync` first to populate the mirror.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
group_health ~503
Use this command for per-group (per-client) health rollups. Do NOT use it for the account-wide one-screen board; use 'fleet' instead. Reads the local SQLite mirror; run `sync` first.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
heartbeat_groups ~470
List, get, create, and delete heartbeat groups
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
heartbeat_risk ~548
Use this command to rank fragile heartbeats (cron/scheduled-task check-ins). Do NOT use it for monitor escalation coverage; use 'coverage' instead. Audits every heartbeat in the local mirror and scores risk from tight grace windows, paused state, and non-up status. Run `sync` first.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| top | number | – | Show only the top N riskiest heartbeats (0 = all) (default: 0) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
heartbeat-groups_create ~50
Create a heartbeat group. Required: name. Optional: sort-index. Returns the new HeartbeatGroup.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Group name |
| sort-index | number | – | Sort position |
No output schema declared.
No examples provided.
heartbeat-groups_delete ~33
Delete a heartbeat group. Required: id. Destructive.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Heartbeat group ID |
No output schema declared.
No examples provided.
heartbeat-groups_get ~38
Get a heartbeat group by ID. Required: id. Returns the HeartbeatGroup.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Heartbeat group ID |
No output schema declared.
No examples provided.
heartbeat-groups_list ~57
List heartbeat groups. Optional: page, per-page (default: 50). Returns array of HeartbeatGroup.
| Name | Type | Req | Description |
|---|---|---|---|
| page | number | – | Page number |
| per-page | number | – | Results per page (max 250) |
No output schema declared.
No examples provided.
heartbeats ~469
Heartbeats — cron/scheduled-task check-ins
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
heartbeats_create ~142
Create a heartbeat. Required: name. Optional: period, grace, group-id (plus 5 more). Returns the new Heartbeat.
| Name | Type | Req | Description |
|---|---|---|---|
| call | boolean | – | Send phone-call alerts |
| boolean | – | Send email alerts | |
| grace | number | – | Grace period in seconds before alerting |
| group-id | string | – | Heartbeat group to attach to |
| name | string | yes | Heartbeat name |
| period | number | – | Expected check-in period in seconds |
| policy-id | string | – | Escalation policy ID |
| push | boolean | – | Send push alerts |
| sms | boolean | – | Send SMS alerts |
No output schema declared.
No examples provided.
heartbeats_delete ~30
Delete a heartbeat. Required: id. Destructive.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Heartbeat ID |
No output schema declared.
No examples provided.
heartbeats_get ~34
Get a heartbeat by ID. Required: id. Returns the Heartbeat.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Heartbeat ID |
No output schema declared.
No examples provided.
heartbeats_list ~55
List heartbeats. Optional: page, per-page (default: 50). Returns array of Heartbeat.
| Name | Type | Req | Description |
|---|---|---|---|
| page | number | – | Page number |
| per-page | number | – | Results per page (max 250) |
No output schema declared.
No examples provided.
heartbeats_update ~97
Update a heartbeat (sends PATCH). Required: id. Optional: name, period, grace (plus 1 more). Returns the updated Heartbeat.
| Name | Type | Req | Description |
|---|---|---|---|
| grace | number | – | New grace period in seconds |
| id | string | yes | Heartbeat ID |
| name | string | – | New heartbeat name |
| paused | boolean | – | Pause or unpause the heartbeat |
| period | number | – | New expected period in seconds |
No output schema declared.
No examples provided.
import ~539
Import data from a JSONL file by issuing POST requests for each record. Each line must be a valid JSON object. Failed records are logged to stderr but do not stop the import.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| args | string | – | Additional positional arguments or raw CLI flags to append to the command. |
| batch-size | number | – | Records per batch (future: batch API support) (default: 1) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Preview import without sending requests (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
incidents ~470
Incidents — outages and alerts across monitors and heartbeats
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
incidents_acknowledge ~50
Acknowledge an incident. Required: id. Optional: by. Returns the new Incident.
| Name | Type | Req | Description |
|---|---|---|---|
| by | string | – | Email of the person acknowledging |
| id | string | yes | Incident ID |
No output schema declared.
No examples provided.
incidents_delete ~28
Delete an incident. Required: id. Destructive.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Incident ID |
No output schema declared.
No examples provided.
incidents_get ~31
Get an incident by ID. Required: id. Returns the Incident.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Incident ID |
No output schema declared.
No examples provided.
incidents_list ~135
List incidents. Optional: page, per-page (default: 50), from (plus 5 more). Returns array of Incident.
| Name | Type | Req | Description |
|---|---|---|---|
| acknowledged | boolean | – | Filter by acknowledged state |
| from | string | – | Start date filter (YYYY-MM-DD) |
| heartbeat-id | string | – | Filter by source heartbeat ID |
| monitor-id | string | – | Filter by source monitor ID |
| page | number | – | Page number |
| per-page | number | – | Results per page (max 250) |
| resolved | boolean | – | Filter by resolved state |
| to | string | – | End date filter (YYYY-MM-DD) |
No output schema declared.
No examples provided.
incidents_resolve ~47
Resolve an incident. Required: id. Optional: by. Returns the new Incident.
| Name | Type | Req | Description |
|---|---|---|---|
| by | string | – | Email of the person resolving |
| id | string | yes | Incident ID |
No output schema declared.
No examples provided.
monitor_groups ~470
List, get, create, and delete monitor groups
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
monitor-groups_create ~64
Create a monitor group. Required: name. Optional: sort-index, paused. Returns the new MonitorGroup.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Group name |
| paused | boolean | – | Pause all monitors in the group |
| sort-index | number | – | Sort position |
No output schema declared.
No examples provided.
monitor-groups_delete ~32
Delete a monitor group. Required: id. Destructive.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Monitor group ID |
No output schema declared.
No examples provided.
monitor-groups_get ~36
Get a monitor group by ID. Required: id. Returns the MonitorGroup.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Monitor group ID |
No output schema declared.
No examples provided.
monitor-groups_list ~56
List monitor groups. Optional: page, per-page (default: 50). Returns array of MonitorGroup.
| Name | Type | Req | Description |
|---|---|---|---|
| page | number | – | Page number |
| per-page | number | – | Results per page (max 250) |
No output schema declared.
No examples provided.
monitors ~473
Uptime monitors (HTTP, keyword, ping, TCP, heartbeat-backed)
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
monitors_create ~281
Create a monitor. Required: type. Optional: url, name, check-frequency (plus 13 more). Returns the new Monitor.
| Name | Type | Req | Description |
|---|---|---|---|
| call | boolean | – | Send phone-call alerts |
| check-frequency | number | – | Seconds between checks (e.g. 30, 60, 180) |
| confirmation-period | number | – | Seconds before a failure is confirmed |
| boolean | – | Send email alerts | |
| group-id | string | – | Monitor group to attach to |
| http-method | string | – | HTTP method for status/keyword monitors |
| keyword | string | – | Keyword to check for (keyword monitors) |
| name | string | – | Human-readable monitor name |
| paused | boolean | – | Create the monitor paused |
| policy-id | string | – | Escalation policy ID |
| push | boolean | – | Send push alerts |
| recovery-period | number | – | Seconds the monitor must be up before recovery |
| request-timeout | number | – | Request timeout in seconds |
| sms | boolean | – | Send SMS alerts |
| type | string | yes | Monitor type: status, expected_status_code, keyword, keyword_absence, ping, tcp, udp, smtp, pop, imap, dns, playwright |
| url | string | – | URL or host to monitor |
| verify-ssl | boolean | – | Verify SSL certificate |
No output schema declared.
No examples provided.
monitors_delete ~28
Delete a monitor. Required: id. Destructive.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Monitor ID |
No output schema declared.
No examples provided.
monitors_get ~31
Get a monitor by ID. Required: id. Returns the Monitor.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Monitor ID |
No output schema declared.
No examples provided.
monitors_list ~87
List all monitors. Optional: page, per-page (default: 50), url (plus 1 more). Returns array of Monitor.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | – | Filter by display name |
| page | number | – | Page number (starts at 1) |
| per-page | number | – | Results per page (max 250) |
| url | string | – | Filter by monitored URL |
No output schema declared.
No examples provided.
monitors_update ~107
Update a monitor (sends PATCH). Required: id. Optional: name, url, check-frequency (plus 2 more). Returns the updated Monitor.
| Name | Type | Req | Description |
|---|---|---|---|
| check-frequency | number | – | New check frequency in seconds |
| id | string | yes | Monitor ID |
| name | string | – | New display name |
| paused | boolean | – | Pause or unpause the monitor |
| policy-id | string | – | New escalation policy ID |
| url | string | – | New URL/host |
No output schema declared.
No examples provided.
mttr ~606
Use this command for response-time rollups (how fast incidents are acknowledged/resolved). Do NOT use it to rank monitors by incident count; use 'flapping' instead. Computes MTTA (acknowledged_at − started_at) and MTTR (resolved_at − started_at) across incidents started within the window, from the local mirror. Run `sync` first.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| by-monitor | boolean | – | Break MTTR down by source monitor (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| days | number | – | Window in days (incidents started within this many days back) (default: 30) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| top | number | – | With --by-monitor, show only the top N slowest-resolving sources (default: 10) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
on_calls ~468
On-call calendars and current on-call shifts
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
on-calls_get ~45
Get an on-call calendar by ID (includes current on-call users). Required: id. Returns the OnCallCalendar.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | On-call calendar ID |
No output schema declared.
No examples provided.
on-calls_list ~58
List on-call calendars. Optional: page, per-page (default: 50). Returns array of OnCallCalendar.
| Name | Type | Req | Description |
|---|---|---|---|
| page | number | – | Page number |
| per-page | number | – | Results per page (max 250) |
No output schema declared.
No examples provided.
How do I install the Better Stack MCP server?
Better Stack MCP ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, 9830ce127f3df76d099773cef486197a614aa4e34d9429d8ac6c0b47ae3fb963; the commands to do that are on this page. If it does not match, do not open it.
mcpb · betterstack-mcp.mcpb
Download bundleCheck the download matches the SHA-256 the MCP registry declares before you open it. If it does not match, do not open the file.
SHA-256
9830ce127f3df76d099773cef486197a614aa4e34d9429d8ac6c0b47ae3fb963
macOS / Linux
echo "9830ce127f3df76d099773cef486197a614aa4e34d9429d8ac6c0b47ae3fb963 betterstack-mcp.mcpb" | shasum -a 256 -c
Windows (PowerShell)
(Get-FileHash -Algorithm SHA256 .\betterstack-mcp.mcpb).Hash -eq "9830ce127f3df76d099773cef486197a614aa4e34d9429d8ac6c0b47ae3fb963"
Run it in the folder you saved the bundle to, then open the file with an MCPB-capable host such as Claude Desktop.
What is the Better Stack MCP server?
Better Stack MCP is listed in the public MCP registry as io.github.Servosity/betterstack-mcp. Every Better Stack Uptime feature, plus an offline SQLite mirror and cross-resource fleet analytics. This page covers its MCPB bundle (https://github.com/Servosity/msp-skills/releases/download/betterstack-v0.1.7/betterstack-mcp.mcpb).
Is the Better Stack MCP server safe to use?
Better Stack MCP scores 53 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Better Stack MCP server expose?
Better Stack MCP exposes 69 tools: context, coverage, down, export, flapping, and 64 more. Their descriptions and schemas cost roughly 16,385 tokens of context every time the server is loaded.
What licence is the Better Stack MCP server under?
Better Stack MCP declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.