dbt for VS Code
io.github.us-all/dbt
dbt MCP — manifest/run_results/sources/catalog parsing + DQ result tables (BigQuery/Postgres)
client:VS Code
transport:stdio
runtime:npm
Install dbt in VS Code
.vscode/mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "dbt-project-dir",
"description": "DBT_PROJECT_DIR",
"password": true
},
{
"type": "promptString",
"id": "dbt-target-dir",
"description": "DBT_TARGET_DIR",
"password": true
},
{
"type": "promptString",
"id": "dbt-run-history-dir",
"description": "DBT_RUN_HISTORY_DIR",
"password": true
},
{
"type": "promptString",
"id": "dq-backend",
"description": "DQ_BACKEND",
"password": true
},
{
"type": "promptString",
"id": "dq-results-table",
"description": "DQ_RESULTS_TABLE",
"password": true
},
{
"type": "promptString",
"id": "dq-score-table",
"description": "DQ_SCORE_TABLE",
"password": true
},
{
"type": "promptString",
"id": "google-application-credentials",
"description": "GOOGLE_APPLICATION_CREDENTIALS",
"password": true
},
{
"type": "promptString",
"id": "bq-project-id",
"description": "BQ_PROJECT_ID",
"password": true
},
{
"type": "promptString",
"id": "pg-connection-string",
"description": "PG_CONNECTION_STRING",
"password": true
},
{
"type": "promptString",
"id": "dbt-allow-write",
"description": "DBT_ALLOW_WRITE",
"password": true
},
{
"type": "promptString",
"id": "dq-schema",
"description": "DQ_SCHEMA",
"password": true
},
{
"type": "promptString",
"id": "dq-col-run-at",
"description": "DQ_COL_RUN_AT",
"password": true
},
{
"type": "promptString",
"id": "dq-col-check-type",
"description": "DQ_COL_CHECK_TYPE",
"password": true
},
{
"type": "promptString",
"id": "dq-col-status",
"description": "DQ_COL_STATUS",
"password": true
},
{
"type": "promptString",
"id": "dq-col-dataset",
"description": "DQ_COL_DATASET",
"password": true
},
{
"type": "promptString",
"id": "dq-col-table-name",
"description": "DQ_COL_TABLE_NAME",
"password": true
},
{
"type": "promptString",
"id": "dq-col-severity",
"description": "DQ_COL_SEVERITY",
"password": true
},
{
"type": "promptString",
"id": "dq-col-failure-count",
"description": "DQ_COL_FAILURE_COUNT",
"password": true
},
{
"type": "promptString",
"id": "dq-col-message",
"description": "DQ_COL_MESSAGE",
"password": true
},
{
"type": "promptString",
"id": "dq-col-check-name",
"description": "DQ_COL_CHECK_NAME",
"password": true
},
{
"type": "promptString",
"id": "dq-col-score-date",
"description": "DQ_COL_SCORE_DATE",
"password": true
},
{
"type": "promptString",
"id": "dq-col-scope",
"description": "DQ_COL_SCOPE",
"password": true
},
{
"type": "promptString",
"id": "dq-col-tier",
"description": "DQ_COL_TIER",
"password": true
},
{
"type": "promptString",
"id": "dq-tier1-target-pct",
"description": "DQ_TIER1_TARGET_PCT",
"password": true
},
{
"type": "promptString",
"id": "dbt-sla-config-path",
"description": "DBT_SLA_CONFIG_PATH",
"password": true
},
{
"type": "promptString",
"id": "dbt-tools",
"description": "DBT_TOOLS",
"password": true
},
{
"type": "promptString",
"id": "dbt-disable",
"description": "DBT_DISABLE",
"password": true
}
],
"servers": {
"dbt": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@us-all/dbt-mcp"
],
"env": {
"DBT_PROJECT_DIR": "${input:dbt-project-dir}",
"DBT_TARGET_DIR": "${input:dbt-target-dir}",
"DBT_RUN_HISTORY_DIR": "${input:dbt-run-history-dir}",
"DQ_BACKEND": "${input:dq-backend}",
"DQ_RESULTS_TABLE": "${input:dq-results-table}",
"DQ_SCORE_TABLE": "${input:dq-score-table}",
"GOOGLE_APPLICATION_CREDENTIALS": "${input:google-application-credentials}",
"BQ_PROJECT_ID": "${input:bq-project-id}",
"PG_CONNECTION_STRING": "${input:pg-connection-string}",
"DBT_ALLOW_WRITE": "${input:dbt-allow-write}",
"DQ_SCHEMA": "${input:dq-schema}",
"DQ_COL_RUN_AT": "${input:dq-col-run-at}",
"DQ_COL_CHECK_TYPE": "${input:dq-col-check-type}",
"DQ_COL_STATUS": "${input:dq-col-status}",
"DQ_COL_DATASET": "${input:dq-col-dataset}",
"DQ_COL_TABLE_NAME": "${input:dq-col-table-name}",
"DQ_COL_SEVERITY": "${input:dq-col-severity}",
"DQ_COL_FAILURE_COUNT": "${input:dq-col-failure-count}",
"DQ_COL_MESSAGE": "${input:dq-col-message}",
"DQ_COL_CHECK_NAME": "${input:dq-col-check-name}",
"DQ_COL_SCORE_DATE": "${input:dq-col-score-date}",
"DQ_COL_SCOPE": "${input:dq-col-scope}",
"DQ_COL_TIER": "${input:dq-col-tier}",
"DQ_TIER1_TARGET_PCT": "${input:dq-tier1-target-pct}",
"DBT_SLA_CONFIG_PATH": "${input:dbt-sla-config-path}",
"DBT_TOOLS": "${input:dbt-tools}",
"DBT_DISABLE": "${input:dbt-disable}"
}
}
}
}
VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs