PluginBench
MCP Server

io.github.us-all/dbt MCP Server

io.github.us-all/dbt

What is the io.github.us-all/dbt MCP server?

dbt MCP — manifest/run_results/sources/catalog parsing + DQ result tables (BigQuery/Postgres)

How to install io.github.us-all/dbt

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • DBT_PROJECT_DIR
    required

    Path to dbt project root (where dbt_project.yml lives).

  • DBT_TARGET_DIR

    dbt target dir for manifest.json/run_results.json (default: $DBT_PROJECT_DIR/target).

  • DBT_RUN_HISTORY_DIR

    Optional dir for archived run_results.json history (glob-scanned).

  • DQ_BACKEND

    DQ result table backend: 'bigquery' (default) or 'postgres'.

  • DQ_RESULTS_TABLE

    Fully qualified DQ checks table, e.g. 'project.data_ops.quality_checks'.

  • DQ_SCORE_TABLE

    Fully qualified DQ score-daily table, e.g. 'project.data_ops.quality_score_daily'.

  • GOOGLE_APPLICATION_CREDENTIALS

    Service account key path for BigQuery (ADC fallback supported).

  • BQ_PROJECT_ID

    Explicit BigQuery project ID for DQ queries.

  • PG_CONNECTION_STRING
    secret

    Postgres connection string when DQ_BACKEND=postgres.

  • DBT_ALLOW_WRITE

    Reserved for future write tools. Default read-only.

  • DQ_SCHEMA

    DQ result-table schema preset: 'generic' (default) or 'us-all'. Use DQ_COL_* env vars to override individual columns on top of the preset.

  • DQ_COL_RUN_AT

    Override for the timestamp/date column on the DQ checks table. Default depends on DQ_SCHEMA preset.

  • DQ_COL_CHECK_TYPE

    Override for the check-type column on the DQ checks table. Default 'check_type'.

  • DQ_COL_STATUS

    Override for the status column on the DQ checks table. Default 'status'.

  • DQ_COL_DATASET

    Override for the dataset/source column on the DQ checks table. Default depends on preset.

  • DQ_COL_TABLE_NAME

    Override for the table/target-name column on the DQ checks table. Default depends on preset.

  • DQ_COL_SEVERITY

    Override for the severity/dimension column on the DQ checks table. Default depends on preset.

  • DQ_COL_FAILURE_COUNT

    Override for the numeric failure-count column on the DQ checks table. Default depends on preset.

  • DQ_COL_MESSAGE

    Override for the message column on the DQ checks table. Default depends on preset.

  • DQ_COL_CHECK_NAME

    Override for the check_name column on the DQ checks table. Set to 'none'/'null'/'-' to synthesize check_name from check_type and table_name.

  • DQ_COL_SCORE_DATE

    Override for the date column on the DQ score-daily table. Default depends on preset.

  • DQ_COL_SCOPE

    Override for the scope column on the DQ score-daily table. Set to 'none'/'null'/'-' if the table has no per-scope rollup.

  • DQ_COL_TIER

    Override for the tier column on the DQ score-daily table. Set to 'none'/'null'/'-' if the table has no tier dimension.

  • DQ_TIER1_TARGET_PCT

    When no tier column is configured (us-all preset or DQ_COL_TIER=none), the overall_score threshold dq-tier-status compares against (default 99.5). Superseded by DBT_SLA_CONFIG_PATH tier_sla.1 if both are set.

  • DBT_SLA_CONFIG_PATH

    Optional path to a YAML file that defines tier_sla (per-tier overall_score targets) and dbt_sla (test/freshness pass rates). When set, dq-tier-status and dq-tier-by-source read tier targets from this file, and dbt-sla-status compares run_results / sources pass rates against dbt_sla.test_pass_pct / freshness_pass_pct. Mtime cached.

  • DBT_TOOLS

    Comma-separated category allowlist (dbt,quality,meta).

  • DBT_DISABLE

    Comma-separated category disablelist.

Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "dbt": {
      "command": "npx",
      "args": [
        "-y",
        "@us-all/dbt-mcp"
      ],
      "env": {
        "DBT_PROJECT_DIR": "<YOUR_DBT_PROJECT_DIR>",
        "DBT_TARGET_DIR": "<YOUR_DBT_TARGET_DIR>",
        "DBT_RUN_HISTORY_DIR": "<YOUR_DBT_RUN_HISTORY_DIR>",
        "DQ_BACKEND": "<YOUR_DQ_BACKEND>",
        "DQ_RESULTS_TABLE": "<YOUR_DQ_RESULTS_TABLE>",
        "DQ_SCORE_TABLE": "<YOUR_DQ_SCORE_TABLE>",
        "GOOGLE_APPLICATION_CREDENTIALS": "<YOUR_GOOGLE_APPLICATION_CREDENTIALS>",
        "BQ_PROJECT_ID": "<YOUR_BQ_PROJECT_ID>",
        "PG_CONNECTION_STRING": "<YOUR_PG_CONNECTION_STRING>",
        "DBT_ALLOW_WRITE": "<YOUR_DBT_ALLOW_WRITE>",
        "DQ_SCHEMA": "<YOUR_DQ_SCHEMA>",
        "DQ_COL_RUN_AT": "<YOUR_DQ_COL_RUN_AT>",
        "DQ_COL_CHECK_TYPE": "<YOUR_DQ_COL_CHECK_TYPE>",
        "DQ_COL_STATUS": "<YOUR_DQ_COL_STATUS>",
        "DQ_COL_DATASET": "<YOUR_DQ_COL_DATASET>",
        "DQ_COL_TABLE_NAME": "<YOUR_DQ_COL_TABLE_NAME>",
        "DQ_COL_SEVERITY": "<YOUR_DQ_COL_SEVERITY>",
        "DQ_COL_FAILURE_COUNT": "<YOUR_DQ_COL_FAILURE_COUNT>",
        "DQ_COL_MESSAGE": "<YOUR_DQ_COL_MESSAGE>",
        "DQ_COL_CHECK_NAME": "<YOUR_DQ_COL_CHECK_NAME>",
        "DQ_COL_SCORE_DATE": "<YOUR_DQ_COL_SCORE_DATE>",
        "DQ_COL_SCOPE": "<YOUR_DQ_COL_SCOPE>",
        "DQ_COL_TIER": "<YOUR_DQ_COL_TIER>",
        "DQ_TIER1_TARGET_PCT": "<YOUR_DQ_TIER1_TARGET_PCT>",
        "DBT_SLA_CONFIG_PATH": "<YOUR_DBT_SLA_CONFIG_PATH>",
        "DBT_TOOLS": "<YOUR_DBT_TOOLS>",
        "DBT_DISABLE": "<YOUR_DBT_DISABLE>"
      }
    }
  }
}
Cursor
~/.cursor/mcp.json
{
  "mcpServers": {
    "dbt": {
      "command": "npx",
      "args": [
        "-y",
        "@us-all/dbt-mcp"
      ],
      "env": {
        "DBT_PROJECT_DIR": "<YOUR_DBT_PROJECT_DIR>",
        "DBT_TARGET_DIR": "<YOUR_DBT_TARGET_DIR>",
        "DBT_RUN_HISTORY_DIR": "<YOUR_DBT_RUN_HISTORY_DIR>",
        "DQ_BACKEND": "<YOUR_DQ_BACKEND>",
        "DQ_RESULTS_TABLE": "<YOUR_DQ_RESULTS_TABLE>",
        "DQ_SCORE_TABLE": "<YOUR_DQ_SCORE_TABLE>",
        "GOOGLE_APPLICATION_CREDENTIALS": "<YOUR_GOOGLE_APPLICATION_CREDENTIALS>",
        "BQ_PROJECT_ID": "<YOUR_BQ_PROJECT_ID>",
        "PG_CONNECTION_STRING": "<YOUR_PG_CONNECTION_STRING>",
        "DBT_ALLOW_WRITE": "<YOUR_DBT_ALLOW_WRITE>",
        "DQ_SCHEMA": "<YOUR_DQ_SCHEMA>",
        "DQ_COL_RUN_AT": "<YOUR_DQ_COL_RUN_AT>",
        "DQ_COL_CHECK_TYPE": "<YOUR_DQ_COL_CHECK_TYPE>",
        "DQ_COL_STATUS": "<YOUR_DQ_COL_STATUS>",
        "DQ_COL_DATASET": "<YOUR_DQ_COL_DATASET>",
        "DQ_COL_TABLE_NAME": "<YOUR_DQ_COL_TABLE_NAME>",
        "DQ_COL_SEVERITY": "<YOUR_DQ_COL_SEVERITY>",
        "DQ_COL_FAILURE_COUNT": "<YOUR_DQ_COL_FAILURE_COUNT>",
        "DQ_COL_MESSAGE": "<YOUR_DQ_COL_MESSAGE>",
        "DQ_COL_CHECK_NAME": "<YOUR_DQ_COL_CHECK_NAME>",
        "DQ_COL_SCORE_DATE": "<YOUR_DQ_COL_SCORE_DATE>",
        "DQ_COL_SCOPE": "<YOUR_DQ_COL_SCOPE>",
        "DQ_COL_TIER": "<YOUR_DQ_COL_TIER>",
        "DQ_TIER1_TARGET_PCT": "<YOUR_DQ_TIER1_TARGET_PCT>",
        "DBT_SLA_CONFIG_PATH": "<YOUR_DBT_SLA_CONFIG_PATH>",
        "DBT_TOOLS": "<YOUR_DBT_TOOLS>",
        "DBT_DISABLE": "<YOUR_DBT_DISABLE>"
      }
    }
  }
}
Windsurf
~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "dbt": {
      "command": "npx",
      "args": [
        "-y",
        "@us-all/dbt-mcp"
      ],
      "env": {
        "DBT_PROJECT_DIR": "<YOUR_DBT_PROJECT_DIR>",
        "DBT_TARGET_DIR": "<YOUR_DBT_TARGET_DIR>",
        "DBT_RUN_HISTORY_DIR": "<YOUR_DBT_RUN_HISTORY_DIR>",
        "DQ_BACKEND": "<YOUR_DQ_BACKEND>",
        "DQ_RESULTS_TABLE": "<YOUR_DQ_RESULTS_TABLE>",
        "DQ_SCORE_TABLE": "<YOUR_DQ_SCORE_TABLE>",
        "GOOGLE_APPLICATION_CREDENTIALS": "<YOUR_GOOGLE_APPLICATION_CREDENTIALS>",
        "BQ_PROJECT_ID": "<YOUR_BQ_PROJECT_ID>",
        "PG_CONNECTION_STRING": "<YOUR_PG_CONNECTION_STRING>",
        "DBT_ALLOW_WRITE": "<YOUR_DBT_ALLOW_WRITE>",
        "DQ_SCHEMA": "<YOUR_DQ_SCHEMA>",
        "DQ_COL_RUN_AT": "<YOUR_DQ_COL_RUN_AT>",
        "DQ_COL_CHECK_TYPE": "<YOUR_DQ_COL_CHECK_TYPE>",
        "DQ_COL_STATUS": "<YOUR_DQ_COL_STATUS>",
        "DQ_COL_DATASET": "<YOUR_DQ_COL_DATASET>",
        "DQ_COL_TABLE_NAME": "<YOUR_DQ_COL_TABLE_NAME>",
        "DQ_COL_SEVERITY": "<YOUR_DQ_COL_SEVERITY>",
        "DQ_COL_FAILURE_COUNT": "<YOUR_DQ_COL_FAILURE_COUNT>",
        "DQ_COL_MESSAGE": "<YOUR_DQ_COL_MESSAGE>",
        "DQ_COL_CHECK_NAME": "<YOUR_DQ_COL_CHECK_NAME>",
        "DQ_COL_SCORE_DATE": "<YOUR_DQ_COL_SCORE_DATE>",
        "DQ_COL_SCOPE": "<YOUR_DQ_COL_SCOPE>",
        "DQ_COL_TIER": "<YOUR_DQ_COL_TIER>",
        "DQ_TIER1_TARGET_PCT": "<YOUR_DQ_TIER1_TARGET_PCT>",
        "DBT_SLA_CONFIG_PATH": "<YOUR_DBT_SLA_CONFIG_PATH>",
        "DBT_TOOLS": "<YOUR_DBT_TOOLS>",
        "DBT_DISABLE": "<YOUR_DBT_DISABLE>"
      }
    }
  }
}
VS Code
.vscode/mcp.json
{
  "servers": {
    "dbt": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@us-all/dbt-mcp"
      ],
      "env": {
        "DBT_PROJECT_DIR": "<YOUR_DBT_PROJECT_DIR>",
        "DBT_TARGET_DIR": "<YOUR_DBT_TARGET_DIR>",
        "DBT_RUN_HISTORY_DIR": "<YOUR_DBT_RUN_HISTORY_DIR>",
        "DQ_BACKEND": "<YOUR_DQ_BACKEND>",
        "DQ_RESULTS_TABLE": "<YOUR_DQ_RESULTS_TABLE>",
        "DQ_SCORE_TABLE": "<YOUR_DQ_SCORE_TABLE>",
        "GOOGLE_APPLICATION_CREDENTIALS": "<YOUR_GOOGLE_APPLICATION_CREDENTIALS>",
        "BQ_PROJECT_ID": "<YOUR_BQ_PROJECT_ID>",
        "PG_CONNECTION_STRING": "<YOUR_PG_CONNECTION_STRING>",
        "DBT_ALLOW_WRITE": "<YOUR_DBT_ALLOW_WRITE>",
        "DQ_SCHEMA": "<YOUR_DQ_SCHEMA>",
        "DQ_COL_RUN_AT": "<YOUR_DQ_COL_RUN_AT>",
        "DQ_COL_CHECK_TYPE": "<YOUR_DQ_COL_CHECK_TYPE>",
        "DQ_COL_STATUS": "<YOUR_DQ_COL_STATUS>",
        "DQ_COL_DATASET": "<YOUR_DQ_COL_DATASET>",
        "DQ_COL_TABLE_NAME": "<YOUR_DQ_COL_TABLE_NAME>",
        "DQ_COL_SEVERITY": "<YOUR_DQ_COL_SEVERITY>",
        "DQ_COL_FAILURE_COUNT": "<YOUR_DQ_COL_FAILURE_COUNT>",
        "DQ_COL_MESSAGE": "<YOUR_DQ_COL_MESSAGE>",
        "DQ_COL_CHECK_NAME": "<YOUR_DQ_COL_CHECK_NAME>",
        "DQ_COL_SCORE_DATE": "<YOUR_DQ_COL_SCORE_DATE>",
        "DQ_COL_SCOPE": "<YOUR_DQ_COL_SCOPE>",
        "DQ_COL_TIER": "<YOUR_DQ_COL_TIER>",
        "DQ_TIER1_TARGET_PCT": "<YOUR_DQ_TIER1_TARGET_PCT>",
        "DBT_SLA_CONFIG_PATH": "<YOUR_DBT_SLA_CONFIG_PATH>",
        "DBT_TOOLS": "<YOUR_DBT_TOOLS>",
        "DBT_DISABLE": "<YOUR_DBT_DISABLE>"
      }
    }
  }
}
Claude Code
claude mcp add dbt --env DBT_PROJECT_DIR=<YOUR_DBT_PROJECT_DIR> --env DBT_TARGET_DIR=<YOUR_DBT_TARGET_DIR> --env DBT_RUN_HISTORY_DIR=<YOUR_DBT_RUN_HISTORY_DIR> --env DQ_BACKEND=<YOUR_DQ_BACKEND> --env DQ_RESULTS_TABLE=<YOUR_DQ_RESULTS_TABLE> --env DQ_SCORE_TABLE=<YOUR_DQ_SCORE_TABLE> --env GOOGLE_APPLICATION_CREDENTIALS=<YOUR_GOOGLE_APPLICATION_CREDENTIALS> --env BQ_PROJECT_ID=<YOUR_BQ_PROJECT_ID> --env PG_CONNECTION_STRING=<YOUR_PG_CONNECTION_STRING> --env DBT_ALLOW_WRITE=<YOUR_DBT_ALLOW_WRITE> --env DQ_SCHEMA=<YOUR_DQ_SCHEMA> --env DQ_COL_RUN_AT=<YOUR_DQ_COL_RUN_AT> --env DQ_COL_CHECK_TYPE=<YOUR_DQ_COL_CHECK_TYPE> --env DQ_COL_STATUS=<YOUR_DQ_COL_STATUS> --env DQ_COL_DATASET=<YOUR_DQ_COL_DATASET> --env DQ_COL_TABLE_NAME=<YOUR_DQ_COL_TABLE_NAME> --env DQ_COL_SEVERITY=<YOUR_DQ_COL_SEVERITY> --env DQ_COL_FAILURE_COUNT=<YOUR_DQ_COL_FAILURE_COUNT> --env DQ_COL_MESSAGE=<YOUR_DQ_COL_MESSAGE> --env DQ_COL_CHECK_NAME=<YOUR_DQ_COL_CHECK_NAME> --env DQ_COL_SCORE_DATE=<YOUR_DQ_COL_SCORE_DATE> --env DQ_COL_SCOPE=<YOUR_DQ_COL_SCOPE> --env DQ_COL_TIER=<YOUR_DQ_COL_TIER> --env DQ_TIER1_TARGET_PCT=<YOUR_DQ_TIER1_TARGET_PCT> --env DBT_SLA_CONFIG_PATH=<YOUR_DBT_SLA_CONFIG_PATH> --env DBT_TOOLS=<YOUR_DBT_TOOLS> --env DBT_DISABLE=<YOUR_DBT_DISABLE> -- npx -y @us-all/dbt-mcp

Related MCP servers

Airflow MCP — list DAGs/runs/task instances, tail logs, trigger and clear (write-gated)

View repository →

Android MCP — ADB-based device, apps, UI, logcat, emulator, files, system, debug

View repository →

Datadog MCP — 165 tools for metrics, monitors, logs, APM, RUM, incidents, CI/CD, fleet

View repository →

Google Drive + Workspace MCP — Docs, Sheets, Slides, Shared Drives, Labels, Approvals, DWD

View repository →

MLflow MCP — experiments, runs, registered models, versions, traces, assessments (MLflow 3)

View repository →

OpenMetadata MCP — metadata, lineage, search, data quality, OM 1.12+ Data Contracts

View repository →