Better Stack MCP logo

Integrate Better Stack MCP with your AI CRM

Investigate Better Stack observability data, monitors, incidents, and logs.

Explore Triggers and Actions

Acknowledge incident

Acknowledge an ongoing incident

ActionTry it

Add chart to dashboard

Add a new chart to a dashboard. Use the `section` parameter to organize charts into named sections — sections are auto-created if they don't exist, and charts are auto-positioned within them. **REQUIRED**: the `query`'s FROM must reference a source, either `{{source}}` or a source-type variable defined via `set_dashboard_variable` (e.g. `{{redis_source}}`). A query with no source is rejected with guidance to define it first. Dashboard chart queries run against the metrics collection: use `sum(logs_count)` (or the matching `sum(<row_type>_count)` for the source), `avgMerge(value_avg)`, `label('tag')`. Do NOT use `JSONExtract(raw, …)` — that is for live-tail charts and `query` only; dashboards have no `raw` column. Call `metrics_query_help` with the source ID **and `context: 'chart_query'`** for available metrics/labels and chart-query-style examples. **Workflow:** 1. Call `chart_building_help` for chart types, units, and settings. 2. Call `metrics_query_help` with `context: 'chart_query'` to see the source's metrics schema and chart-query examples. 3. Verify the query with `render_chart` (runs it and surfaces errors automatically) or with `query`. Use `{{source}}`, `{{start_time}}`, `{{end_time}}`, `{{time}}` variables for integration with dashboard filters. Queries can also reference custom dashboard variables — `{{var}}` (required) or `[[ AND col = {{var}} ]]` (optional clause, dropped while the variable is empty); define them with `set_dashboard_variable`.

ActionTry it

Add dashboard section

Add a section divider to a dashboard. Sections span the full width and help organize charts into groups. Charts and sections at or below the insertion point are shifted down to make room

ActionTry it

Application

Get comprehensive details of a specific application including its configuration, retention settings, ingestion details, custom bucket settings (if configured)

ActionTry it

Applications

List all available applications in a paginated table format. Returns application ID, name, platform type, team, status (active/paused), data region, and creation date

ActionTry it

Available incident escalation policies

Get available escalation policies for an incident

ActionTry it

Change team member role

Change a team member's role. Identify the member by `email` or `user_id` (from team_members) and pass the target `role_id` (from team_roles). The admin role cannot be assigned, and an existing admin's role cannot be changed, via the API. Pending invitations can't have their role changed — cancel and re-invite instead. If the token can reach more than one team, pass `team_id` (or `team_name`).

ActionTry it

Chart

Get detailed information about a specific chart including its SQL queries, configuration, and settings. Use dashboard first to find the chart ID

ActionTry it

Chart alert

Get detailed information about a specific chart alert including its configuration, SQL queries, status, and current incident info. Use chart_alerts first to find the alert ID

ActionTry it

Chart alert help

Get instructions for creating and configuring chart alerts, including alert types, operators, configuration fields, supported chart types, and common mistakes. Call this before creating or editing chart alerts

ActionTry it

Chart alerts

List chart alerts with optional filtering by team, chart, or dashboard. Returns alert ID, name, type, chart, dashboard, and status

ActionTry it

Chart building help

Get comprehensive instructions for building charts and dashboards, including chart types, units, axis settings, column mapping, legend placement, layout tips, and common mistakes. Call this before creating or editing charts

ActionTry it

Clusters

List all available storage clusters for a specific team. Returns a table with cluster IDs, names, and regions. Used primarily for creating cloud connections to query logs and metrics data directly via ClickHouse

ActionTry it

Create application

Create a new application in Better Stack. Returns the created application details including ID, ingestion token, ingesting host URL, retention settings, and platform-specific integration documentation links with next steps for configuration

ActionTry it

Create chart alert

Create a new chart alert on an existing chart. The chart must support alerts (line_chart, bar_chart, number_chart, or tail_chart with time variables). Call chart_alert_help for configuration reference. Use chart or dashboard first to find the chart ID

ActionTry it

Create cloud connection

Create a secure cloud connection for direct ClickHouse query access to logs, spans, and metrics data. Returns connection credentials (host, port, username, password), sample queries for each data type, and cURL command examples. Connections expire after 1 hour by default

ActionTry it

Create dashboard

Create a new dashboard. Optionally use a template to start with pre-configured charts. Call chart_building_help for guidance on dashboard structure and layout. Optionally specify a source_id to preconfigure the dashboard with that source. Returns the new dashboard ID which can be used with add_chart_to_dashboard to add charts

ActionTry it

Create heartbeat

Create a new heartbeat that expects a periodic request from a cron job, worker, or other background task, and alerts when that request stops arriving. Provide a `name` for the heartbeat. The heartbeat reports down once no request is received within `period` seconds plus the `grace` window. Use the returned heartbeat URL as the endpoint your job pings on every successful run.

ActionTry it

Create incident

Create a new incident providing a summary of the issue, requester email, and other optional details

ActionTry it

Create incident comment

Create a comment on an incident

ActionTry it

Create metric expression

Create a new metric expression (extract-metrics-from-logs rule) on a source. `sql_expression` runs against each log row; log fields live inside the `raw` JSON column — use `JSONExtract(raw, 'path', 'Nullable(Type)')`. The `Nullable(...)` wrapper is required. Nested paths use positional args: `JSONExtract(raw, 'request', 'headers', 'user-agent', 'Nullable(String)')`. Call `source_fields` to see what fields exist. Pass `aggregations` (e.g. `["avg", "count"]`) for an aggregated metric, or omit / pass `[]` for a label (group-by column). Prefer `build_type: new_data` (default). `historical_logs` re-runs the rule over every stored log — expensive; only when the user explicitly asks.

ActionTry it

Create monitor

Create a new monitor that tracks the availability of a website, host, or service. Provide the `url` to monitor. For ping, TCP, UDP, SMTP, POP, IMAP, and DNS monitors this is the host (e.g. `example.com`) rather than a full URL. The monitor starts checking immediately unless `paused` is set to true.

ActionTry it

Create source

Create a new log source in Better Stack. Returns the created source details including ID, ingestion token, ingesting host URL, retention settings, and platform-specific integration documentation links with next steps for configuration

ActionTry it

Create status page report

Create a new status page report

ActionTry it

Create status page report update

Create a new status update for an existing status page report

ActionTry it

Create status page resource

Add a resource (monitor, heartbeat, or group) to a status page. Provide the `resource_type` and `resource_id` of the thing to display, plus a `public_name` shown to visitors (usually the resource's own name). Use `status_page_sections` to find the section to place it in; when omitted the resource is added to the status page's first section.

ActionTry it

Create status page section

Create a section (resource group) on a status page to group resources under a heading

ActionTry it

Dashboard

Get detailed information about a specific dashboard including its charts, sections, layout, template variables, and configuration. Use this to understand a dashboard structure before modifying it

ActionTry it

Dashboard query help

Get instructions for writing a ClickHouse query to use inside a Better Stack **Dashboard** chart (or chart alert). The query uses template variables (`{{source}}`, `{{time}}`, `{{start_time}}`, `{{end_time}}`) and runs against the source's metrics collection — it is meant to be saved as a dashboard chart via `add_chart_to_dashboard` / `edit_chart`, NOT run directly. To instead write an ad-hoc query you will run directly via `query` or `render_chart`, use `metrics_query_help`.

ActionTry it

Dashboard templates

List all available dashboard templates in a paginated table format. Returns template ID, name, description, and other metadata

ActionTry it

Dashboards

List all available dashboards in a paginated table format. Returns dashboard ID, name, creation date, and last updated date

ActionTry it

Data regions

List all available data regions and clusters for application and source creation. Returns a table with region IDs (to use when creating applications or sources), display names, types (Region or Cluster), and geographical locations. Includes usage instructions for both standard regions and custom clusters

ActionTry it

Delete chart alert

Delete a chart alert permanently. This will also clean up any associated incidents and anomaly models. This action cannot be undone. Use chart_alerts or chart_alert first to find the alert ID

ActionTry it

Delete metric expression

Delete a metric expression from a source. This action cannot be undone. Call `metric_expressions` first to get the ID. `build_type: new_data` (default) stops the rule from applying to future logs but leaves already-extracted data. `build_type: historical_logs` also rebuilds the source's metrics without this rule — expensive.

ActionTry it

Documentation

Search for relevant documentation articles and return their contents

ActionTry it

Edit application

Edit an existing application in Better Stack - rename it, pause or resume ingesting, or set its VRL transformations, including the exception grouping program. Only provide the fields you want to change. Use applications or application first to find the application ID.

ActionTry it

Edit chart

Edit an existing chart name, query, type, or settings. Only provide the fields you want to change. **If changing the query:** the new query's FROM must reference a source, either `{{source}}` or a source-type variable defined via `set_dashboard_variable` (queries with no source are rejected). Dashboard chart queries run against the metrics collection: use `sum(logs_count)` (or the matching `sum(<row_type>_count)` for the source), `avgMerge(value_avg)`, `label('tag')`. `JSONExtract(raw, …)` only works in live-tail charts — dashboards have no `raw` column. Verify the new query with `render_chart` (runs it and surfaces errors automatically) or with `query` before saving. Queries can also reference custom dashboard variables — `{{var}}` (required) or `[[ AND col = {{var}} ]]` (optional clause, dropped while the variable is empty); define them with `set_dashboard_variable`. Call `chart_building_help` for chart/settings reference and `metrics_query_help` with `context: 'chart_query'` for the source's metrics schema and chart-query-style examples. Use `dashboard` first to find the chart ID.

ActionTry it

Edit chart alert

Edit an existing chart alert configuration. Only provide the fields you want to change. Call chart_alert_help for configuration reference. Use chart_alerts or chart_alert first to find the alert ID

ActionTry it

Edit dashboard

Edit an existing dashboard's name or source eligibility. Only provide the fields you want to change. Use dashboard first to find the dashboard ID.

ActionTry it

Edit dashboard section

Edit an existing dashboard section. Only provide the fields you want to change. Use dashboard first to find the section ID

ActionTry it

Error

Get comprehensive details of a specific error including its type, message, call site information, first occurrence, current state (unhandled, unresolved, ignored, resolved, or reoccurred), and linked Linear/Jira issues

ActionTry it

Errors

List error patterns for an application with occurrence counts, affected users, current state, and links. Defaults to unresolved errors and supports filtering by state. For specialized error analytics or custom SQL, use errors_query_help instead.

ActionTry it

Errors query help

Get comprehensive instructions for building SQL ClickHouse queries for error tracking, including both error patterns (metrics) and individual exceptions. Explains when to use each source and provides examples for common use cases

ActionTry it

Escalate incident

Escalate an ongoing incident to a user, team, schedule, or policy

ActionTry it

Escalation policies

List all escalation policies with their steps and configuration

ActionTry it

Escalation policy

Get detailed information about a specific escalation policy

ActionTry it

Exploration

Get detailed information about a specific exploration (saved Explore query) including its sources, chart type, template variables, saved time range, and query. Use this to understand an exploration before modifying its source or variables

ActionTry it

Explorations

List saved explorations (saved Explore queries) in a paginated table. Returns exploration ID, name, chart type, sources, group, and last updated date. Use this to discover explorations before viewing or modifying one

ActionTry it

Explore logs query help

Get instructions for writing a ClickHouse query to use inside the Better Stack **Explore logs** page (and live-tail charts) for log and span data. The query uses template variables (`{{source}}`, `{{time}}`, `{{start_time}}`, `{{end_time}}`) and reads fields from the `raw` JSON column — it is meant to be used in the Explore UI, NOT run directly. To instead write an ad-hoc logs/spans query you will run directly via `query`, use `query_help`.

ActionTry it

Export dashboard

Export a dashboard configuration as JSON. Returns the complete dashboard data structure including charts, sections, presets, and settings

ActionTry it

Heartbeat

Get details of a specific heartbeat

ActionTry it

Heartbeat availability

Get availability summary for a specific heartbeat

ActionTry it

Heartbeats

List all heartbeats with filtering and pagination options

ActionTry it

Import dashboard

Import a dashboard from JSON configuration. Creates a new dashboard with the provided data structure

ActionTry it

Incident

Get detailed information about a specific incident

ActionTry it

Incident comments

Get comments for an incident

ActionTry it

Incident timeline

Get the timeline of events for an incident

ActionTry it

Incidents

List incidents with filtering and pagination options

ActionTry it

Invite team member

Invite someone to a Better Stack team by e-mail address. Optionally set their role by system-role name (`role`: responder, member, team_lead, billing_admin) or by `role_id` (use team_roles to look up ids). Defaults to responder. The admin role cannot be assigned via the API. Someone who already belongs to the organization is added to the team directly, with no invitation to accept; an organization-wide role they hold (Admin, Billing admin) is kept. If the token can reach more than one team, pass `team_id` (or `team_name`).

ActionTry it

Metric

Get comprehensive details about a specific metric. Returns metric overview (data points, active series, available aggregations), definition (SQL expression or JSON path), example queries for different aggregation functions, and Prometheus tags (for pure metrics). Essential for understanding how to query and use a metric

ActionTry it

Metric expressions

List the metric expressions (extract-metrics-from-logs rules) on a source. Returns the rule ID, name, kind (metric vs label), ClickHouse type, SQL expression, and aggregations. IDs use a short prefixed form that feeds straight into update_metric_expression / delete_metric_expression

ActionTry it

Metrics query help

Get instructions for building SQL ClickHouse queries for metrics (available metrics, aggregations, examples) to run directly via the query tools (`query` / `render_chart`), using concrete `remote(...)` / `s3Cluster(...)` collection names and explicit time filters. To instead write a query for use inside a Dashboard chart, use `dashboard_query_help`. Pass `context: 'chart_query'` when the query will be saved as a dashboard chart or chart alert — the prompt will emphasize `{{source}}` / `{{time}}` / `{{start_time}}` / `{{end_time}}` template variables and chart column aliases. (`context: 'direct_query'` is the default, for ad-hoc queries.)

ActionTry it

Metrics schema

Get metrics and cardinality for a source. Returns a paginated table of available metrics (user-defined and ingested) ordered by active series (highest cardinality first), with their names, types, storage layout, data points count, and active series count. Sources with many metrics are paginated — use the `page` argument to read the rest

ActionTry it

Monitor

Get details of a specific monitor

ActionTry it

Monitor availability

Get availability (SLA) summary for a specific monitor

ActionTry it

Monitor response times

Get response time metrics for a specific monitor

ActionTry it

Monitors

List monitors with optional filtering and pagination

ActionTry it

Move charts

Move one or more charts to new positions on a dashboard. Validates the final layout for overlaps, allowing swaps and complex rearrangements. All moves are applied atomically - if any move is invalid, none are applied. Grid is 12 columns wide

ActionTry it

On call

Get detailed information about a specific on-call calendar or the default calendar

ActionTry it

On call event

Get detailed information about a specific on-call event

ActionTry it

On call events

List all on-call schedule events for a specific calendar

ActionTry it

On call rotation

Get on-call rotation configuration for a specific calendar

ActionTry it

On calls

List all on-call calendars for the team

ActionTry it

Query

Execute a ClickHouse SQL query to retrieve logs, traces/spans, errors, and metrics from telemetry data. - **IMPORANT**: Use `query_help` to get instructions on how to create the correct query for logs and spans - **IMPORANT**: Use `errors_query_help` to get instructions on how to create the correct query for errors - **IMPORANT**: Use `metrics_query_help` to get instructions on how to create the correct query for metrics

ActionTry it

Query help

Get instructions for building SQL ClickHouse queries for logs and spans (fields, aggregations, examples) to run directly via the query tools (query / render_chart) against the ClickHouse proxy. To instead write a query for use inside the Explore logs UI, use explore_logs_query_help.

ActionTry it

Releases

List all releases for a specific application in a paginated table format. Returns release reference, environments, first seen, and last seen timestamps

ActionTry it

Remove chart

Remove a chart from its dashboard permanently. This action cannot be undone and will also remove any alerts associated with the chart. Use dashboard first to find the chart ID

ActionTry it

Remove dashboard

Remove a dashboard permanently. This action cannot be undone

ActionTry it

Remove dashboard section

Remove a section divider from a dashboard permanently. This action cannot be undone. Charts are not affected - only the section header is removed. Use dashboard first to find the section ID

ActionTry it

Remove dashboard variable

Remove a dashboard template variable by name. Cannot remove the automatic variables source, start_time, end_time, or time. A chart still referencing a removed variable as a required {{name}} errors until it is redefined (the next chart save auto-creates it again, empty). Use dashboard first to see the defined variables.

ActionTry it

Remove exploration variable

Remove a variable from an exploration (saved Explore query) by name. Cannot remove the automatic variables source, start_time, end_time, or time. A query still referencing a removed variable as a required {{name}} errors until it is redefined. Use exploration first to see the defined variables.

ActionTry it

Remove status page resource

Remove a resource from a status page

ActionTry it

Remove status page section

Remove a section from a status page. Resources in the section are removed with it.

ActionTry it

Remove team member

Remove a member from a Better Stack team, or cancel a pending invitation. Identify them by `email` or `user_id` (from team_members). Admins cannot be removed via the API, and the organization's last member cannot be removed. If the token can reach more than one team, pass `team_id` (or `team_name`). This permanently removes the person's access to the team.

ActionTry it

Render chart

Execute a ClickHouse SQL query and visualize the result as a chart. Use `chart_type` to choose the visualization: - `line` (default) — trends over time. Alias columns as `time`, `value`, and optional `series`. - `bar` — magnitude over time or across buckets. Uses the same columns as `line`; set `stacked: true` to stack the series. - `pie` — share of a total across categories. Alias a categorical column `AS series` (the slice label) and a numeric column `AS value` (the slice size), e.g. `SELECT service AS series, count() AS value FROM ... GROUP BY service`. Alias result columns as (line/bar): - `... AS time` — the time bucket (e.g., `toStartOfHour(dt) AS time`) - `... AS value` — the numeric metric (e.g., `count() AS value`) - `... AS series` — optional: a grouping column for multiple series (e.g., `service AS series`) **IMPORTANT (line/bar): Always choose a time granularity that produces 50–500 data points** — too few points make the chart useless, too many make it unreadable. Use these rules based on the query's time range: - Up to 1 hour → `toStartOfMinute(dt) AS time` → ~60 points - 1–24 hours → `toStartOfInterval(dt, INTERVAL 5 MINUTE) AS time` → up to 288 points - 1–7 days → `toStartOfHour(dt) AS time` → up to 168 points - 7–30 days → `toStartOfInterval(dt, INTERVAL 4 HOUR) AS time` → up to 180 points - 30–90 days → `toStartOfInterval(dt, INTERVAL 12 HOUR) AS time` → up to 180 points - 90+ days → `toStartOfDay(dt) AS time` Additional query instructions (data access patterns) are in: - `query_help` — logs and spans - `errors_query_help` — errors - `metrics_query_help` — metrics

ActionTry it

Reopen incident

Reopen a resolved incident (must be within 24 hours of resolution)

ActionTry it

Replays query help

Get comprehensive instructions for building SQL ClickHouse queries for session replays. Explains data structure, provides examples for listing replays, finding replays linked to errors, and filtering by user/environment

ActionTry it

Resolve incident

Resolve an ongoing incident

ActionTry it

Set dashboard variable

Create or update a dashboard template variable — a user-facing filter in the dashboard toolbar, referenced in chart SQL as `{{name}}` (required — the chart errors until it resolves to a value) or `[[ AND col = {{name}} ]]` (optional — the whole `[[ ... ]]` clause is dropped while the variable is empty). Saving a chart auto-creates a plain text variable (or a source variable when the name contains 'source') for any undefined required `{{name}}`, but it starts empty — use this tool to give it a typed definition or a default value so the chart resolves without manual input. Fields per type: - `select_value` (shown as "Static list") → the options in `default_values` (first = default selection) - `select_with_sql` (shown as "Dynamic list") → an option-yielding **expression** (NOT a full query) in `sql_definition`, e.g. `label('_host')`; see the `sql_definition` parameter for how it is interpolated - Both list types accept `allow_multiple_values: true` to let users pick several options at once (interpolates as a regex used with `match()`). `multi_select_with_sql` is the legacy always-multiple Dynamic list; prefer `select_with_sql` with `allow_multiple_values: true`. - `select_predefined_sql` (shown as "Query per value") → named SQL filters in `filters` (each a **full query**), default picked via `selected_label` - `string` / `number` / `boolean` → `[default]` in `default_values` - `sql_expression` → `[raw SQL]` in `default_values`, spliced into chart SQL unescaped - `source` → the source IDs in `source_ids`. Name it `source` to set the dashboard's own source (which sources every chart queries by default), or use a custom name for an extra source variable that a chart references in its FROM (e.g. `FROM {{name}}`) to query a different set of sources than the dashboard default. - `date` / `datetime` → an ISO date in `default_values`, e.g. `['2026-07-23']` or `['2026-07-23T14:30:00Z']` SQL-backed types are validated at save time by running their SQL against the dashboard's source — the save is refused when it fails. The names `start_time`, `end_time`, and `time` are reserved (they come from the time picker). `source` is the exception: set it as a source-type variable to change the dashboard's source. Use `dashboard` to list a dashboard's variables and `dashboard_query_help` for how each type is referenced in chart SQL.

ActionTry it

Set exploration variable

Create or update a variable on an exploration (saved Explore query), referenced in its query as `{{name}}`. The most common use is setting the exploration's source: name it `source`, type `source`, and pass the source IDs in `source_ids` — the query then runs against those sources. Fields per type: - `source` → the source IDs in `source_ids`. Name it `source` to set the exploration's own source, or use a custom name for an extra source variable the query references in its FROM (e.g. `FROM {{name}}`). - `select_value` → the options in `default_values` (first = default selection) - `select_with_sql` / `multi_select_with_sql` → an option-yielding expression (NOT a full query) in `sql_definition`, e.g. `label('_host')` - `select_predefined_sql` → named SQL filters in `filters` (each a full query), default picked via `selected_label` - `string` / `number` / `boolean` → `[default]` in `default_values` - `sql_expression` → `[raw SQL]` in `default_values`, spliced into the query unescaped - `date` / `datetime` → an ISO date in `default_values`, e.g. `['2026-07-23']` or `['2026-07-23T14:30:00Z']` SQL-backed types are validated at save time by running their SQL against the exploration's source — the save is refused when it fails. The names `start_time`, `end_time`, and `time` are reserved (they come from the time picker). `source` is the exception: set it as a source-type variable to change the exploration's source. Use `exploration` to list an exploration's variables.

ActionTry it

Severities

List all severities (urgency levels) with their notification settings

ActionTry it

Severity

Get detailed information about a specific severity (urgency level)

ActionTry it

Source

Get comprehensive details of a specific source including its configuration, retention settings, ingestion details, custom bucket settings (if configured)

ActionTry it

Source fields

Get complete field catalog for a logs or spans source. Returns a table of all queryable fields with their paths and data types. Essential for understanding what fields can be queried for building custom queries

ActionTry it

Sources

List all available sources in a paginated table format. Returns source ID, name, platform type, team, status (active/paused), data region, and creation date

ActionTry it

Status page

Get details of a specific status page

ActionTry it

Status page report update

Get details of a specific status page report update

ActionTry it

Status page report updates

List status updates for a specific status report

ActionTry it

Status page reports

List status reports (incidents/maintenance) for a specific status page

ActionTry it

Status page resources

Get resources (monitors/heartbeats) for a specific status page

ActionTry it

Status page sections

List the sections (resource groups) of a status page

ActionTry it

Status pages

List all status pages with filtering and pagination options

ActionTry it

Team members

List the members of a Better Stack team, including pending invitations. Returns each member's email, name, role and the mobile app platforms they have signed in on. Supports the same email filter and pagination as the REST team-members API. If the token can reach more than one team, pass `team_id` (or `team_name`) to pick one; call it without a team first to see the list of accessible teams. Useful for auditing who has access — e.g. offboarding.

ActionTry it

Team roles

List the roles defined in a Better Stack organization, including their role_id and system-role identifier (admin, billing_admin, team_lead, responder, member, or "custom"). Use this to discover valid role_id values for interpreting team member roles. If the token can reach more than one team/organization, pass `team_id` (or `team_name`) to choose one.

ActionTry it

Teams

List all available teams in Better Stack Logs. Returns a table with team IDs and names, grouped by organization

ActionTry it

Toggle chart alert pause

Pause or unpause a chart alert. When paused, the alert will not trigger any incidents

ActionTry it

Update error state

Update the state of a specific error (mark as resolved, ignored, or unresolved)

ActionTry it

Update metric expression

Update an existing metric expression. Call `metric_expressions` first to get the ID. At least one of `name`, `sql_expression`, `type`, `aggregations` must be provided — `build_type` alone is not a change and will be rejected. See `create_metric_expression` for `sql_expression` / `type` / `aggregations` guidance. Prefer `build_type: new_data` (default). `historical_logs` re-runs the rule over every stored log — expensive; only when the user explicitly asks.

ActionTry it

Update status page

Update the settings of a status page (company name, contact URL, theme, layout, and more)

ActionTry it

Update status page resource

Update a resource on a status page. Change its public name, description, widget type (e.g. show or hide the uptime history), or move it by setting `position` (zero-based) and/or `status_page_section_id`. Use `status_page_resources` to find resource IDs.

ActionTry it

Update status page section

Rename a status page section or move it by setting its position

ActionTry it

How the Better Stack MCP integration works

The Better Stack MCP integration connects your Dench AI CRM directly to Better Stack MCP, so agents can read and act on your Better Stack MCP data as part of everyday work — answering questions in chat, keeping your CRM in sync, and running automations without anyone copying data between tools.

111 actions are available for agents to invoke on your behalf. Every call runs through Better Stack MCP's own authorization, scoped to the account you connect.

Set up Better Stack MCP in Dench

  1. 1

    Sign in to your Dench workspace and open Integrations.

  2. 2

    Find Better Stack MCP and click Connect — you'll authorize access through Better Stack MCP's own sign-in flow. No API keys or code required.

  3. 3

    Ask an agent to use Better Stack MCP in chat, or call it from an automation.

  4. 4

    Manage or disconnect the connection any time from workspace settings.

Frequently asked questions

How does the Better Stack MCP integration work with Dench?

The Dench Better Stack MCP integration connects your AI CRM to Better Stack MCP, so AI agents can work with your Better Stack MCP data as part of chats, automations, and CRM workflows. You connect your account once, and every agent in your workspace can use it — governed by your workspace permissions.

What actions can AI agents perform with Better Stack MCP via Dench?

The Better Stack MCP integration currently exposes 111 actions, including Acknowledge incident, Add chart to dashboard, Add dashboard section, Application, Applications, and Available incident escalation policies. Agents invoke them on your behalf from chat or from automations.

Do I need to write code to connect Better Stack MCP to Dench?

No. You connect Better Stack MCP from your Dench workspace using Better Stack MCP's own sign-in and authorization flow — no API keys to copy, no glue code to maintain.

Is the Better Stack MCP integration secure?

Connections are authorized through Better Stack MCP's own authentication flow, and Dench stores only the authorization needed to act on your behalf. You can review and disconnect the Better Stack MCP connection from your workspace settings at any time.

Better Stack MCP | Dench AI CRM