From betterstack
Provides API patterns for Better Stack MCP tools covering Uptime, Telemetry (Logtail), and Error Tracking: Bearer token auth, cursor pagination, rate limits, error handling.
npx claudepluginhub wyre-technology/msp-claude-plugins --plugin betterstackThis skill uses the workspace's default tool permissions.
Better Stack provides an official hosted MCP server at `mcp.betterstack.com` covering three products in one server: **Uptime** (monitors, on-call, incidents, status pages), **Telemetry** (logs, metrics, ClickHouse SQL, dashboards), and **Error Tracking** (exceptions, releases). When accessed through the MCP Gateway, the Bearer token is injected automatically.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Calculates TAM/SAM/SOM using top-down, bottom-up, and value theory methodologies for market sizing, revenue estimation, and startup validation.
Better Stack provides an official hosted MCP server at mcp.betterstack.com covering three products in one server: Uptime (monitors, on-call, incidents, status pages), Telemetry (logs, metrics, ClickHouse SQL, dashboards), and Error Tracking (exceptions, releases). When accessed through the MCP Gateway, the Bearer token is injected automatically.
Better Stack authenticates using an API token passed as a Bearer token:
| Header | Description |
|---|---|
Authorization | Bearer <your-api-token> |
| Token Type | Scope | Where to Generate |
|---|---|---|
| Global API Token | All products, all teams | Better Stack > API tokens > Global API tokens |
| Uptime API Token | Uptime product only, team-scoped | Better Stack > API tokens > (select team) > Uptime API tokens |
Use the Global API Token for full MCP access across Uptime, Telemetry, and Error Tracking.
Environment Variables:
export BETTERSTACK_API_TOKEN="your-api-token"
IMPORTANT: Never hardcode credentials. Always use environment variables.
The MCP Gateway stores your token as an org credential and automatically forwards:
Authorization: Bearer <stored-api-token>
| Tool | Description |
|---|---|
list_monitors | List all monitors with status and uptime metrics |
get_monitor | Get monitor details (URL, threshold, check interval) |
create_monitor | Create a new uptime monitor |
update_monitor | Update monitor settings |
delete_monitor | Delete a monitor |
pause_monitor | Pause monitoring (during maintenance) |
resume_monitor | Resume a paused monitor |
| Tool | Description |
|---|---|
list_heartbeats | List all heartbeats |
get_heartbeat | Get heartbeat details |
create_heartbeat | Create a heartbeat monitor |
update_heartbeat | Update heartbeat settings |
delete_heartbeat | Delete a heartbeat |
| Tool | Description |
|---|---|
list_incidents | List incidents with status filters |
get_incident | Get incident details |
create_incident | Create a manual incident |
acknowledge_incident | Acknowledge an active incident |
resolve_incident | Resolve an incident |
| Tool | Description |
|---|---|
list_on_call_schedules | List all on-call schedules |
get_on_call_schedule | Get schedule details with rotation |
create_on_call_schedule | Create a new schedule |
update_on_call_schedule | Update schedule settings |
delete_on_call_schedule | Delete a schedule |
list_schedule_policies | List escalation/notification policies |
| Tool | Description |
|---|---|
list_status_pages | List all status pages |
get_status_page | Get status page details |
create_status_page | Create a new status page |
update_status_page | Update status page settings |
list_status_page_sections | List sections on a status page |
create_status_page_incident | Post an incident update to status page |
| Tool | Description |
|---|---|
execute_query | Run ClickHouse SQL against log/metric data |
list_saved_queries | List saved query templates |
get_saved_query | Get a saved query |
| Tool | Description |
|---|---|
list_dashboards | List all dashboards |
get_dashboard | Get dashboard details and panels |
create_dashboard | Create a new dashboard |
list_dashboard_panels | List panels on a dashboard |
| Tool | Description |
|---|---|
list_applications | List error tracking applications |
get_application | Get application error tracking details |
list_releases | List application releases |
create_release | Register a new release (for error tracking) |
Better Stack uses cursor-based pagination:
| Parameter | Description |
|---|---|
per_page | Results per page (max 50) |
page[after] | Cursor from previous response to fetch next page |
Pattern:
per_page=50pagination.next in response -- if present, it contains the cursor URLpage[after] cursor and pass to the next callpagination.next is nullBetter Stack enforces API rate limits per token.
| Code | Meaning | Resolution |
|---|---|---|
| 401 | Unauthorized | Verify token; check it's a Global or Uptime API token |
| 403 | Forbidden | Global token needed for Telemetry/Error Tracking |
| 404 | Not Found | Verify ID with a list call |
| 422 | Unprocessable Entity | Check required fields in the request |
| 429 | Rate Limited | Back off 30 seconds; retry |
| 503 | Service Unavailable | Check status.betterstack.com |
{
"errors": [
{
"status": "422",
"title": "Unprocessable Entity",
"detail": "URL is not a valid URL"
}
]
}
execute_query) for log analysis over browsing