Better Stack MCP server
Better Stack's official MCP server: query logs, metrics, and traces, manage monitors and incidents, and drive on-call from one remote endpoint.
The Better Stack MCP server is Better Stack's official integration that connects an AI agent to its three products: Uptime (monitors, heartbeats, incidents, on-call, status pages), Telemetry (logs, metrics, traces, dashboards, charts, and alerts backed by ClickHouse), and Error Tracking (applications, releases, exceptions, and session replays). With it an agent can list and inspect monitors and their availability and response times, create and resolve incidents, acknowledge or escalate alerts and read incident timelines, build and run telemetry queries (including ClickHouse SQL behind dashboards), render charts, manage dashboards and chart alerts, and triage application errors end to end. Because the tool surface spans the whole stack, an agent can move from an alert to the underlying logs to a code-level fix without you switching tools.
It is delivered as a hosted remote server at https://mcp.betterstack.com. OAuth is the recommended authentication: clients that support it prompt the user to sign in through the browser with no token configuration. For clients without OAuth, you can pass a Better Stack API token as an Authorization: Bearer header. The endpoint exposes a large tool surface (65+ operations across the three product areas), and you can narrow what the agent sees with the X-MCP-Tools-Only and X-MCP-Tools-Except headers to enforce least privilege or keep the tool list focused.
Quick install
Copy-paste configs are provided for all 8 supported clients. Pick your client below.
Available tools
| Tool | Description |
|---|---|
| uptime_list_monitors | Lists Uptime monitors, with filtering options. |
| uptime_get_monitor_details | Gets the configuration and status of a single monitor. |
| uptime_get_monitor_availability | Returns availability/uptime statistics for a monitor. |
| uptime_get_monitor_response_times | Returns response-time data for a monitor. |
| uptime_list_heartbeats | Lists heartbeat checks. |
| uptime_get_heartbeat_details | Gets the details of a single heartbeat. |
| uptime_get_heartbeat_availability | Returns availability statistics for a heartbeat. |
| uptime_create_incident | Creates a new incident. |
| uptime_list_incidents | Lists incidents, with filtering options. |
| uptime_get_incident_details | Gets the details of a single incident. |
| uptime_get_incident_timeline | Returns the timeline of events for an incident. |
| uptime_get_incident_comments | Lists the comments on an incident. |
| uptime_create_incident_comment | Adds a comment to an incident. |
| uptime_acknowledge_incident | Acknowledges an incident. |
| uptime_escalate_incident | Escalates an incident. |
| uptime_resolve_incident | Resolves an incident. |
| uptime_get_on_call_details | Gets current on-call details. |
| uptime_list_on_call_calendars | Lists on-call calendars. |
| uptime_list_on_call_events | Lists on-call events. |
| uptime_get_on_call_event_details | Gets the details of a single on-call event. |
| uptime_get_on_call_rotation_details | Gets the details of an on-call rotation. |
| uptime_get_incident_escalation_options | Returns the available escalation options for an incident. |
| uptime_list_escalation_policies | Lists escalation policies. |
| uptime_get_escalation_policy_details | Gets the details of an escalation policy. |
| uptime_list_severities | Lists incident severities. |
| uptime_get_severity_details | Gets the details of a severity. |
| uptime_list_status_pages | Lists status pages. |
| uptime_get_status_page_details | Gets the details of a status page. |
| uptime_get_status_page_resources | Lists the resources on a status page. |
| uptime_create_status_page_report | Creates a status page report (incident/maintenance). |
| uptime_create_status_page_report_update | Adds an update to a status page report. |
| uptime_list_status_page_reports | Lists status page reports. |
| uptime_list_status_page_report_updates | Lists the updates on a status page report. |
| uptime_get_status_page_report_update_details | Gets the details of a status page report update. |
| telemetry_execute_query | Executes a telemetry query over logs, metrics, or traces. |
| telemetry_render_line_chart | Renders a line chart from query results. |
| telemetry_get_query_instructions | Returns guidance for writing telemetry queries. |
| telemetry_get_metric_query_instructions | Returns guidance for writing metric queries. |
| telemetry_get_errors_query_instructions | Returns guidance for writing error queries. |
| telemetry_get_replays_query_instructions | Returns guidance for writing session-replay queries. |
| telemetry_list_sources | Lists telemetry sources. |
| telemetry_get_source_details | Gets the details of a telemetry source. |
| telemetry_create_source | Creates a new telemetry source. |
| telemetry_get_source_fields | Lists the fields available on a source. |
| telemetry_list_dashboards | Lists dashboards. |
| telemetry_get_dashboard_details | Gets the details of a dashboard. |
| telemetry_list_dashboard_templates | Lists available dashboard templates. |
| telemetry_create_dashboard | Creates a new dashboard. |
| telemetry_rename_dashboard | Renames a dashboard. |
| telemetry_export_dashboard | Exports a dashboard definition. |
| telemetry_import_dashboard | Imports a dashboard definition. |
| telemetry_remove_dashboard | Removes a dashboard. |
| telemetry_get_chart_details | Gets the details of a chart. |
| telemetry_get_chart_building_instructions | Returns guidance for building charts. |
| telemetry_add_chart_to_dashboard | Adds a chart to a dashboard. |
| telemetry_edit_chart | Edits an existing chart. |
| telemetry_remove_chart | Removes a chart from a dashboard. |
| telemetry_add_dashboard_section | Adds a section to a dashboard. |
| telemetry_remove_dashboard_section | Removes a section from a dashboard. |
| telemetry_move_charts | Reorders or moves charts within a dashboard. |
| telemetry_list_chart_alerts | Lists chart alerts. |
| telemetry_get_chart_alert_details | Gets the details of a chart alert. |
| telemetry_create_chart_alert | Creates a chart alert. |
| telemetry_edit_chart_alert | Edits a chart alert. |
| telemetry_delete_chart_alert | Deletes a chart alert. |
| telemetry_toggle_chart_alert_pause | Pauses or resumes a chart alert. |
| telemetry_build_explore_query | Builds an explore query over logs and spans. |
| telemetry_get_metrics_and_cardinality | Lists metrics and their cardinality. |
| telemetry_get_metric_details | Gets the details of a metric. |
| telemetry_build_metric_query | Builds a metric query for a dashboard chart. |
| telemetry_list_data_regions | Lists available data regions. |
| telemetry_list_clusters | Lists ClickHouse clusters. |
| telemetry_list_teams | Lists teams. |
| telemetry_create_cloud_connection | Creates a cloud infrastructure connection. |
| error_list_applications | Lists error-tracking applications. |
| error_get_application_details | Gets the details of an application. |
| error_create_application | Creates a new error-tracking application. |
| error_list_releases | Lists releases for error tracking. |
| error_get_error_details | Gets the details of a tracked error/exception. |
| error_update_error_state | Updates the state (e.g. resolved, ignored) of a tracked error. |
Required configuration
- BETTERSTACK_API_TOKENOptional
Better Stack API token, passed as an Authorization: Bearer header for clients that do not support OAuth. Not needed when using OAuth.
What you can do with it
Run an incident from alert to fix
The agent reads the incident timeline, acknowledges or escalates as needed, queries the underlying logs and traces in Telemetry, and resolves the incident once the change ships.
Build and maintain dashboards
Create sources, write ClickHouse-backed telemetry queries, render charts, and assemble dashboards with alerts so a new service is observable without hand-clicking the UI.
FAQ
- Is it free?
- The MCP server is included with Better Stack; you need a Better Stack account, and usage of Uptime, Telemetry, and Error Tracking is governed by your plan. Better Stack markets itself as a lower-cost alternative to incumbents, but data ingestion and retention follow your subscription.
- Does it support remote/OAuth?
- Yes. It is a hosted remote server at https://mcp.betterstack.com. OAuth is the recommended method (browser sign-in, no token config), and clients without OAuth can pass a Better Stack API token as an Authorization: Bearer header.
- Can I limit which tools the agent gets?
- Yes. The endpoint exposes a large tool surface, and you can pass the X-MCP-Tools-Only header to allowlist specific tools or X-MCP-Tools-Except to blocklist them, keeping the tool list focused and enforcing least privilege.