En bref
Sert à produire la configuration JSON du serveur MCP dbt, à régler l’authentification, et à valider la connectivité, pour des outils comme Claude Desktop, Claude Code, Cursor ou VS Code. Le serveur relie l’assistant à la CLI dbt, au Semantic Layer, à l’API Discovery et à l’API Admin. On commence par choisir un serveur local (flux de développement, accès CLI, typiquement via `uvx dbt-mcp`) ou un serveur distant (consommation seule, sans installation locale, via un endpoint HTTP), puis le client, le cas d’usage (surtout en local) et les outils à activer. Les jetons ne se journalisent, ne s’affichent et ne s’echo jamais dans un terminal. Un fichier `.mcp.json` de projet peut être versionné pour l’équipe, mais une authentification par jeton doit passer par des références de variables d’environnement, jamais par des secrets en clair dans le dépôt. Ce skill configure et dépane le serveur dbt ; il ne construit pas un serveur MCP générique, n’installe pas le serveur Google Ads, et n’expose pas une API REST via API Gateway. La frontmatter le marque aussi comme non invocable par l’utilisateur au sens du dépôt : il s’applique quand on met en place, configure ou dépane ce serveur.
Ce que ça fait
- Génère et valide la config MCP dbt (local ou distant) pour Claude Desktop, Claude Code, Cursor ou VS Code
- Jamais de jeton en clair dans un journal ou un `.mcp.json` versionné ; le serveur relie CLI, Semantic Layer, Discovery et Admin
Pour qui, et un exemple
Les équipes analytics engineering qui veulent brancher un assistant à dbt, en local pour la CLI ou à distance pour la seule consommation, sans exposer de secrets.
Exemple de demande : « Configure un serveur MCP dbt local pour Cursor, avec les outils CLI, et référence le jeton par une variable, sans le commiter dans `.mcp.json`. »
Quand il faut installer, configurer ou dépanner le serveur MCP dbt, et non écrire un serveur MCP générique ou brancher un autre produit. Exemple rédigé par iadujour.fr à partir du SKILL.md, non testé.
Installer
Claude Code : /plugin marketplace add dbt-labs/dbt-agent-skills puis /plugin install dbt@dbt-agent-marketplace
/plugin marketplace add dbt-labs/dbt-agent-skills/plugin install dbt@dbt-agent-marketplaceNiveau : Avancé
S’adresse à un usage avancé (sécurité, production, architecture ou réglages fins) décrit dans le SKILL.md.
À savoir
Extrait du SKILL.md
La description d’origine, celle que l’agent lit pour décider de charger la skill (en anglais) :
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.
Citée depuis le SKILL.md au commit faadc25 . Le dossier contient aussi 3 fichiers annexes (references/).
Le SKILL.md compte 310 lignes et 25 sections principales :
- Overview
- Decision Flow
- Questions to Ask
- 1. Server Type
- 2. MCP Client
- 3. Use Case (Local Server Only)
- 4. Tools to Enable
- Prerequisites
- Local Server
- Remote Server
- Credential Security
- Configuration Templates
- Local Server - CLI Only
- Local Server - Platform + CLI (OAuth)
- Local Server - Platform + CLI (Token Auth)
- Local Server - Using .env File
- Remote Server
- Client-Specific Setup
- Claude Desktop
- Claude Code (CLI)
- Cursor
- VS Code
- Verification Steps
- Test Local Server Config
- Verify in Client
Licence : Apache 2.0
Vérifiée le 10 novembre 2026 sur : fichier LICENSE du dépôt .
La licence autorise la reprise : le texte intégral du SKILL.md est reproduit ci-dessous, sans modification, avec sa mention de licence.
Texte intégral du SKILL.md
Reproduit sans modification depuis dbt-labs/dbt-agent-skills (commit faadc25) , © dbt Labs, sous licence Apache 2.0 (fichier de licence d’origine ).
Afficher le SKILL.md original (310 lignes, en anglais)
---
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
```mermaid
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 --> config
```
## Questions 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
```json
{
"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)
```json
{
"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)
```json
{
"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
```json
{
"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/dbt
```
### Remote Server
```json
{
"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:**
```json
{
"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
1. Click **Claude menu** in system menu bar (not in-app)
2. Select **Settings...**
3. Go to **Developer** tab
4. Click **Edit Config**
5. Add the JSON configuration
6. Save and restart Claude Desktop
7. **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:
```bash
claude mcp add dbt -s user -- uvx dbt-mcp
```
This adds the server to your user scope/config (on this system: `~/.claude.json`).
For a project-specific setup, run:
```bash
claude mcp add dbt -s project -- uvx dbt-mcp
```
This 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
- `.mcp.json`: Project-specific, can be committed to version control for team sharing. If using token auth, use environment variable references — never commit literal tokens.
For project-specific dbt setups, use `.mcp.json` so your team shares the same configuration.
Once the config is created, make sure to add the JSON configuration under the `mcpServers` key.
### Cursor
1. Open **Cursor menu** → **Settings** → **Cursor Settings** → **MCP**
2. Add the JSON configuration
3. Update paths and credentials
4. Save
### VS Code
1. Open **Command Palette** (Cmd/Ctrl + Shift + P)
2. Run **"MCP: Open User Configuration"** (or Workspace for project-specific)
3. Add the JSON configuration (note: VS Code uses `servers` not `mcpServers`):
```json
{
"servers": {
"dbt": {
"command": "uvx",
"args": ["dbt-mcp"],
"env": {
"DBT_PROJECT_DIR": "/path/to/project",
"DBT_PATH": "/path/to/dbt"
}
}
}
}
```
4. Open **Settings** → **Features** → **Chat** → Enable **MCP**
5. **Verify:** Run **"MCP: List Servers"** from Command Palette
**WSL Users:** Configure in Remote settings, not local user settings:
- Run **"Preferences: Open Remote Settings"** from Command Palette
- Use full Linux paths (e.g., `/home/user/project`, not Windows paths)
## Verification Steps
### Test Local Server Config
**Recommended: Use .env file**
1. Create a .env file in your project root directory and add minimum environment variables for the CLI tools:
```bash
DBT_PROJECT_DIR=/path/to/project
DBT_PATH=/path/to/dbt
```
2. Test the server:
```bash
uvx --env-file .env dbt-mcp
```
**Alternative: Environment variables**
```bash
# Temporary test (variables only last for this session)
export DBT_PROJECT_DIR=/path/to/project
export DBT_PATH=/path/to/dbt
uvx dbt-mcp
```
No errors = successful configuration.
### Verify in Client
After setup, ask the AI:
- "What dbt tools do you have access to?"
- "List my dbt metrics" (if Semantic Layer enabled)
- "Show my dbt models" (if Discovery enabled)
See [Troubleshooting](references/troubleshooting.md) for common issues and fixes.
See [Environment Variable Reference](references/environment-variables.md) for the full list of supported variables.
Dans l’annuaire
Cas d’usage et guides qui partagent un thème, un métier ou un outil avec cette skill.
Commentaires.
Un retour d’expérience, une question, une précision sur cette skill ? Les commentaires sont relus avant publication.
Commentaires publiés
Chargement des commentaires…
Laisser un commentaire
Charte de modération. Chaque commentaire est relu avant publication. Sont refusés : l’incitation à la haine, les propos injurieux ou discriminatoires, la publicité, le spam et les liens promotionnels, le hors-sujet et les données personnelles d’autrui.