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.
- Skill ID
- dbt-labs/dbt-agent-skills/configuring-dbt-mcp-server
- Publisher
- dbt-labs
- Repository
- dbt-agent-skills
- Installs
- 0
- Files
- 4
- Synced
- Sep 23, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
dbt-labs/dbt-agent-skills/configuring-dbt-mcp-serverInstalls these files- SKILL.md
- references/environment-variables.md
- references/finding-credentials.md
- references/troubleshooting.md
What this skill tells the agent
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
- Install `uv`: https://docs.astral.sh/uv/getting-started/installation/
- Have a dbt project (for CLI commands)
- Find paths:
DBT_PROJECT_DIR: Folder containingdbt_project.yml- macOS/Linux:
pwdfrom 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
- dbt Cloud account with AI features enabled
- Production environment ID (from Orchestration page)
- Personal access token or service token
See How to Find Your Credentials 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
.envfiles, ensure they are added to.gitignoreto 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}",
"DBT_ACCOUNT_ID": "${DBT_ACCOUNT_ID}",
"DBT_PROD_ENV_ID": "${DBT_PROD_ENV_ID}",
"DBT_PROJECT_DIR": "/path/to/project",
"DBT_PATH": "/path/to/dbt"
}
}
}
}Local Server - Using .env File
{
"mcpServers": {
"dbt": {
"command": "uvx",
"args": ["--env-file", "/path/to/.env", "dbt-mcp"]
}
}
}.env file contents:
DBT_HOST=cloud.getdbt.com
DBT_TOKEN=<set-via-env-or-secret-manager>
DBT_ACCOUNT_ID=<your-account-id>
DBT_PROD_ENV_ID=<your-prod-env-id>
DBT_DEV_ENV_ID=<your-dev-env-id>
DBT_USER_ID=<your-user-id>
DBT_PROJECT_DIR=/path/to/project
DBT_PATH=/path/to/dbtRemote Server
{
"mcpServers": {
"dbt": {
"url": "https://cloud.getdbt.com/api/ai/v1/mcp/",
"headers": {
"Authorization": "Token ${DBT_TOKEN}",
"x-dbt-prod-environment-id": "${DBT_PROD_ENV_ID}"
}
}
}
}Additional headers for SQL/Fusion tools:
{
"headers": {
"Authorization": "Token ${DBT_TOKEN}",
"x-dbt-prod-environment-id": "${DBT_PROD_ENV_ID}",
"x-dbt-dev-environment-id": "${DBT_DEV_ENV_ID}",
"x-dbt-user-id": "${DBT_USER_ID}"
}
}Client-Specific Setup
Claude Desktop
- Click Claude menu in system menu bar (not in-app)
- Select Settings...
- Go to Developer tab
- Click Edit Config
- Add the JSON configuration
- Save and restart Claude Desktop
- Verify: Look for MCP server indicator in bottom-right of input box
Config location:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Claude Code (CLI)
Run:
claude mcp add dbt -s user -- uvx dbt-mcpThis adds the server to your user scope/config (on this system: ~/.claude.json).
For a project-specific setup, run:
claude mcp add dbt -s project -- uvx dbt-mcpThis adds the server to .mcp.json in your project root.
Alternatively, you can use the manual configuration below.
Manual configuration: Edit ~/.claude.json (user scope) or create .mcp.json (project scope) in your project root:
~/.claude.json: Global across all projects
More from dbt-labs
Use this skill in a project
Open any RiverX project, search the Skills panel for dbt-labs/dbt-agent-skills/configuring-dbt-mcp-server, and install it in one click.
