/configuring-dbt-mcp-server
Generates MCP server configuration JSON, resolves authentication setup, and validates server connectivity for dbt. Use when setting up, configuring, or troubleshooting the dbt MCP server for AI tools like Claude Desktop, Claude Code, Cursor, or VS Code.
$ npx -y skills add dbt-labs/dbt-agent-skills --skill configuring-dbt-mcp-server --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/configuring-dbt-mcp-server
Context preview
The summary Claude sees to decide when to auto-load this skill.
Generates MCP server configuration JSON, resolves authentication setup, and validates server connectivity for dbt. Use when setting up, configuring, or troubleshooting the dbt MCP server for AI tools like Claude Desktop, Claude Code, Cursor, or VS Code.
SKILL.md
configuring-dbt-mcp-server.SKILL.mdname: configuring-dbt-mcp-server
description: Generates MCP server configuration JSON, resolves authentication setup, and validates server connectivity for dbt. Use when setting up, configuring, or troubleshooting the dbt MCP server for AI tools like Claude Desktop, Claude Code, Cursor, or VS Code.
user-invocable: false
metadata:
author: dbt-labs
Configure dbt MCP Server
Overview
The dbt MCP server connects AI tools to dbt's CLI, Semantic Layer, Discovery API, and Admin API. This skill guides users through setup with the correct configuration for their use case.
Decision Flow
flowchart TB
start([User wants dbt MCP]) --> q1{Local or Remote?}
q1 -->|dev workflows,<br>CLI access needed| local[Local Server<br>uvx dbt-mcp]
q1 -->|consumption only,<br>no local install| remote[Remote Server<br>HTTP endpoint]
local --> q2{Which client?}
remote --> q2
q2 --> claude_desktop[Claude Desktop]
q2 --> claude_code[Claude Code]
q2 --> cursor[Cursor]
q2 --> vscode[VS Code]
claude_desktop --> config[Generate config<br>+ test setup]
claude_code --> config
cursor --> config
vscode --> configQuestions to Ask
1. Server Type
**Ask:** "Do you want to use the **local** or **remote** dbt MCP server?"
| Local Server | Remote Server | | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | | Runs on your machine via `uvx` | Connects via HTTP to dbt platform | | Required for development (authoring models, tests, docs) but can also connect to the dbt platform for consumption (querying metrics, exploring metadata) | Best for consumption (querying metrics, exploring metadata) | | Supports dbt CLI commands (run, build, test, show) | No CLI commands (run, build, test) | | Works without a dbt platform account but can also connect to the dbt platform for development (authoring models, tests, docs) | Requires dbt platform account | | No credit consumption | Consumes dbt Copilot credits |
2. MCP Client
**Ask:** "Which MCP client are you using?"
- Claude Desktop
- Claude Code (CLI)
- Cursor
- VS Code
3. Use Case (Local Server Only)
**Ask:** "What's your use case?"
| CLI Only | Platform Only | Platform + CLI | |----------|---------------|----------------| | dbt Core/Fusion users | dbt Cloud without local project | Full access to both | | No platform account needed | OAuth or token auth | Requires paths + credentials |
4. Tools to Enable
**Ask:** "Which tools do you want enabled?" (show defaults)
| Tool Category | Default | Environment Variable | |---------------|---------|---------------------| | dbt CLI (run, build, test, compile) | Enabled | `DISABLE_DBT_CLI=true` to disable | | Semantic Layer (metrics, dimensions) | Enabled | `DISABLE_SEMANTIC_LAYER=true` to disable | | Discovery API (models, lineage) | Enabled | `DISABLE_DISCOVERY=true` to disable | | Admin API (jobs, runs) | Enabled | `DISABLE_ADMIN_API=true` to disable | | SQL (text_to_sql, execute_sql) | **Disabled** | `DISABLE_SQL=false` to enable | | Codegen (generate models/sources) | **Disabled** | `DISABLE_DBT_CODEGEN=false` to enable |
Prerequisites
Local Server
1. **Install `uv`**: https://docs.astral.sh/uv/getting-started/installation/ 2. **Have a dbt project** (for CLI commands) 3. **Find paths:**
- `DBT_PROJECT_DIR`: Folder containing `dbt_project.yml`
- macOS/Linux: `pwd` from project folder
- Windows: Full path with forward slashes (e.g., `C:/Users/name/project`)
- `DBT_PATH`: Path to dbt executable
- macOS/Linux: `which dbt`
- Windows: `where dbt`
Remote Server
1. **dbt Cloud account** with AI features enabled 2. **Production environment ID** (from Orchestration page) 3. **Personal access token** or service token
See [How to Find Your Credentials](references/finding-credentials.md) for detailed guidance on obtaining tokens and IDs.
Credential Security
- Always use environment variable references (e.g., `${DBT_TOKEN}`) instead of literal token values in configuration files that may be committed to version control
- Never log, display, or echo token values in terminal output
- When using `.env` files, ensure they are added to `.gitignore` to prevent accidental commits
- Recommend users rotate tokens regularly and use the minimum required permission set
Configuration Templates
Local Server - CLI Only
{
"mcpServers": {
"dbt": {
"command": "uvx",
"args": ["dbt-mcp"],
"env": {
"DBT_PROJECT_DIR": "/path/to/your/dbt/project",
"DBT_PATH": "/path/to/dbt"
}
}
}
}Local Server - Platform + CLI (OAuth)
{
"mcpServers": {
"dbt": {
"command": "uvx",
"args": ["dbt-mcp"],
"env": {
"DBT_HOST": "https://your-subdomain.us1.dbt.com",
"DBT_PROJECT_DIR": "/path/to/project",
"DBT_PATH": "/path/to/dbt"
}
}
}
}Local Server - Platform + CLI (Token Auth)
{
"mcpServers": {
"dbt": {
"command": "uvx",
"args": ["dbt-mcp"],
"env": {
"DBT_HOST": "cloud.getdbt.com",
"DBT_TOKEN": "${DBT_TOKEN}",Read more
name: configuring-dbt-mcp-server description: Generates MCP server configuration JSON, resolves authentication setup, and validates server connectivity for dbt. Use when setting up, configuring, or troubleshooting the dbt MCP server for AI tools like Claude Desktop, Claude Code, Cursor, or VS Code. user-invocable: false metadata: author: dbt-labs
Configure dbt MCP Server
Overview
The dbt MCP server connects AI tools to dbt's CLI, Semantic Layer, Discovery API, and Admin API. This skill guides users through setup with the correct configuration for their use case.
Decision Flow
flowchart TB
start([User wants dbt MCP]) --> q1{Local or Remote?}
q1 -->|dev workflows,<br>CLI access needed| local[Local Server<br>uvx dbt-mcp]
q1 -->|consumption only,<br>no local install| remote[Remote Server<br>HTTP endpoint]
local --> q2{Which client?}
remote --> q2
q2 --> claude_desktop[Claude Desktop]
q2 --> claude_code[Claude Code]
q2 --> cursor[Cursor]
q2 --> vscode[VS Code]
claude_desktop --> config[Generate config<br>+ test setup]
claude_code --> config
cursor --> config
vscode --> configQuestions to Ask
1. Server Type
**Ask:** "Do you want to use the **local** or **remote** dbt MCP server?"
| Local Server | Remote Server | | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | | Runs on your machine via `uvx` | Connects via HTTP to dbt platform | | Required for development (authoring models, tests, docs) but can also connect to the dbt platform for consumption (querying metrics, exploring metadata) | Best for consumption (querying metrics, exploring metadata) | | Supports dbt CLI commands (run, build, test, show) | No CLI commands (run, build, test) | | Works without a dbt platform account but can also connect to the dbt platform for development (authoring models, tests, docs) | Requires dbt platform account | | No credit consumption | Consumes dbt Copilot credits |
2. MCP Client
**Ask:** "Which MCP client are you using?"
- Claude Desktop
- Claude Code (CLI)
- Cursor
- VS Code
3. Use Case (Local Server Only)
**Ask:** "What's your use case?"
| CLI Only | Platform Only | Platform + CLI | |----------|---------------|----------------| | dbt Core/Fusion users | dbt Cloud without local project | Full access to both | | No platform account needed | OAuth or token auth | Requires paths + credentials |
4. Tools to Enable
**Ask:** "Which tools do you want enabled?" (show defaults)
| Tool Category | Default | Environment Variable | |---------------|---------|---------------------| | dbt CLI (run, build, test, compile) | Enabled | `DISABLE_DBT_CLI=true` to disable | | Semantic Layer (metrics, dimensions) | Enabled | `DISABLE_SEMANTIC_LAYER=true` to disable | | Discovery API (models, lineage) | Enabled | `DISABLE_DISCOVERY=true` to disable | | Admin API (jobs, runs) | Enabled | `DISABLE_ADMIN_API=true` to disable | | SQL (text_to_sql, execute_sql) | **Disabled** | `DISABLE_SQL=false` to enable | | Codegen (generate models/sources) | **Disabled** | `DISABLE_DBT_CODEGEN=false` to enable |
Prerequisites
Local Server
1. **Install `uv`**: https://docs.astral.sh/uv/getting-started/installation/ 2. **Have a dbt project** (for CLI commands) 3. **Find paths:**
- `DBT_PROJECT_DIR`: Folder containing `dbt_project.yml`
- macOS/Linux: `pwd` from project folder
- Windows: Full path with forward slashes (e.g., `C:/Users/name/project`)
- `DBT_PATH`: Path to dbt executable
- macOS/Linux: `which dbt`
- Windows: `where dbt`
Remote Server
1. **dbt Cloud account** with AI features enabled 2. **Production environment ID** (from Orchestration page) 3. **Personal access token** or service token
See [How to Find Your Credentials](references/finding-credentials.md) for detailed guidance on obtaining tokens and IDs.
Credential Security
- Always use environment variable references (e.g., `${DBT_TOKEN}`) instead of literal token values in configuration files that may be committed to version control
- Never log, display, or echo token values in terminal output
- When using `.env` files, ensure they are added to `.gitignore` to prevent accidental commits
- Recommend users rotate tokens regularly and use the minimum required permission set
Configuration Templates
Local Server - CLI Only
{
"mcpServers": {
"dbt": {
"command": "uvx",
"args": ["dbt-mcp"],
"env": {
"DBT_PROJECT_DIR": "/path/to/your/dbt/project",
"DBT_PATH": "/path/to/dbt"
}
}
}
}Local Server - Platform + CLI (OAuth)
{
"mcpServers": {
"dbt": {
"command": "uvx",
"args": ["dbt-mcp"],
"env": {
"DBT_HOST": "https://your-subdomain.us1.dbt.com",
"DBT_PROJECT_DIR": "/path/to/project",
"DBT_PATH": "/path/to/dbt"
}
}
}
}Local Server - Platform + CLI (Token Auth)
{
"mcpServers": {
"dbt": {
"command": "uvx",
"args": ["dbt-mcp"],
"env": {
"DBT_HOST": "cloud.getdbt.com",
"DBT_TOKEN": "${DBT_TOKEN}",A curated collection of Agent Skills for working with dbt. These skills help AI agents understand and execute dbt workflows more effectively.
Other skills on dbt-agent-skills.
- /auditing-skills
Use when checking skills for security or quality issues, reviewing audit results from skills.sh or Tessl, or remediating findings across published skills.
Open skill - /creating-mermaid-dbt-dag
Generates a Mermaid flowchart diagram of dbt model lineage using MCP tools, manifest.json, or direct code parsing as fallbacks. Use when visualizing dbt model lineage and dependencies as a Mermaid diagram in markdown format.
Open skill - /migrating-dbt-core-to-fusion
Use when a user needs help triaging dbt-core to Fusion migration errors. Runs dbt-autofix first, then classifies remaining errors into actionable categories (auto-fixable, guided fixes, needs input, blocked).
Open skill - /migrating-dbt-project-across-platforms
Use when migrating a dbt project from one data platform or data warehouse to another (e.g., Snowflake to Databricks, Databricks to Snowflake) using dbt Fusion's real-time compilation to identify and fix SQL dialect differences.
Open skill - /upgrading-dbt-core
Use when a user wants to upgrade, update, or migrate a dbt-core project to a newer or the latest version — e.g. "upgrade my dbt project," "migrate this off dbt-core 1.5," "get this project running on the latest dbt," "bump the dbt-core version." Upgrades a dbt-core v1 project
Open skill - /adding-dbt-unit-test
Creates unit test YAML definitions that mock upstream model inputs and validate expected outputs. Use when adding unit tests for a dbt model or practicing test-driven development (TDD) in dbt.
Open skill

