Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Betterstack MCP server

Vendor MCP
Open markdown

The Betterstack MCP connector routes your AI agent's tool calls to Betterstack's own MCP server through Scalekit. Each user signs in to Betterstack once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 130 tools.

Tools
130
What they doRead · write · destructive
50 · 68 · 1250 read68 write12 destructive
Users sign in with
OAuth app
Scalekit's or your own

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the Betterstack MCP connection

    In AgentKit > Connections, create a Betterstack MCP connection. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for Betterstack MCP server, so you don't need to register an OAuth app.

  4. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'betterstackmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Betterstack MCP:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'betterstackmcp_applications',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • betterstackmcp_applicationsList all available applications in a paginated table format.Read-only

    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

    Inputs

    namestring
    Filter applications by name (case-insensitive partial match)
    pageinteger
    Page number for pagination (starts at 1)
    per_pageinteger
    Number of results per page (default: 50, max: 250)
    team_idinteger
    Filter applications by team ID (use teams to get team IDs)
  • betterstackmcp_chart_alert_helpGet instructions for creating and configuring chart alerts, including alert types, operators, configuration fields, supported chart types, and common mistakes.Read-only

    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

    Inputs

    This tool takes no inputs.

  • betterstackmcp_chart_alertsList chart alerts with optional filtering by team, chart, or dashboard.Read-only

    Chart Alerts

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

    Inputs

    chart_idinteger
    Filter to alerts on a specific chart
    dashboard_idinteger
    Filter to alerts on charts in a specific dashboard
    pageinteger
    Page number for pagination (default: 1, 25 per page)
    team_idinteger
    Filter alerts by team ID (use teams to get team IDs)
  • betterstackmcp_chart_building_helpGet comprehensive instructions for building charts and dashboards, including chart types, units, axis settings, column mapping, legend placement, layout tips, and common mistakes.Read-only

    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

    Inputs

    This tool takes no inputs.

  • betterstackmcp_clustersList all available storage clusters for a specific team.Read-only

    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

    Inputs

    team_idintegerrequired
    The ID of the team (use teams to get team IDs)
  • betterstackmcp_dashboard_query_helpGet instructions for writing a ClickHouse query to use inside a Better Stack Dashboard chart (or chart alert).Read-only

    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`.

    Inputs

    source_idintegerrequired
    The ID of the source to get query instructions for
  • betterstackmcp_dashboard_templatesList all available dashboard templates in a paginated table format.Read-only

    Dashboard Templates

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

    Inputs

    pageinteger
    Page number for pagination (starts at 1)
    per_pageinteger
    Number of results per page (default: 50, max: 250)
  • betterstackmcp_dashboardsList all available dashboards in a paginated table format.Read-only

    Dashboards

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

    Inputs

    pageinteger
    Page number for pagination (starts at 1)
    per_pageinteger
    Number of results per page (default: 50, max: 250)
    resource_group_idinteger
    Filter dashboards by dashboard group ID (use dashboard_groups to get group IDs)
    team_idinteger
    Filter dashboards by team ID (use teams to get team IDs)