Server facts
dbt MCP Server
Project
- Author
- dbt-labs
- Repository
- github.com/dbt-labs/dbt-mcp
- License
- Apache-2.0
- Category
- Data & Analytics
Tech
- Runtime / language
- pythonPython
- Transports
- stdio
- Remote available
- No
- Authentication
- Not specified
Activity
- GitHub stars
- 609
- Last commit
- Data as of
Tags
- Analytics Engineering
- Data Lineage
- Dbt
- Semantic Layer
- Sql
Overview
dbt MCP Server connects AI agents to dbt project information and operational tools across dbt Core, dbt Fusion, and dbt Platform. Its SQL tools can generate queries from natural-language requests and execute SQL on Platform infrastructure. Semantic Layer operations expose metrics, dimensions, entities, saved queries, and compiled metric SQL. Discovery tools provide model descriptions, source freshness, macros, exposures, dependencies, and execution history. Together, these surfaces let an assistant inspect a project before proposing changes or interpreting analytical results. Model health combines run status, test results, and upstream freshness, while lineage tools cover both broader dependency graphs and column-level relationships.
The integration also reaches into development and administration. CLI tools can parse, compile, build, run, and test project resources, and code-generation tools create model YAML, source YAML, and staging SQL. Administrative operations inspect jobs and artifacts, trigger runs, retry failures, or cancel active work. Documentation tools search official dbt pages and retrieve their Markdown content. These capabilities are not all read-only: the README warns that CLI access can change models, sources, and warehouse objects. Search across project resources is marked alpha, and local column lineage requires dbt-lsp through the dbt Labs VSCE. An experimental MCP bundle is published with releases, but the supplied README does not provide a runnable server command or environment-variable setup.
Install & configure
No install command stated in the README — see repo.
Not stated in the README: a runnable command, launch arguments, or required environment variables. An experimental dbt-mcp.mcpb bundle is available in release assets for compatible clients; detailed setup is linked externally.
Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.
Config file · macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Use Settings → Developer → Edit Config when available. Do not assume a Linux configuration path; check the client documentation for your platform. Remote servers use the app’s connector flow when supported, not the local stdio file shown here. Merge this example with existing settings; do not overwrite unrelated servers.
No install command stated in the README — see repo. Check the client documentation for a supported connection method.
Read the Claude Desktop setup guideConfig file · Project: .cursor/mcp.json
User: ~/.cursor/mcp.json
The project path is relative to the workspace root. The tilde denotes your user home directory. Use Cursor’s MCP settings to confirm which configuration and scope your installed version is reading. Merge this example with existing settings; do not overwrite unrelated servers.
No install command stated in the README — see repo. Check the client documentation for a supported connection method.
Read the Cursor setup guideConfig file · Workspace: .vscode/mcp.json
For user scope, use the “MCP: Open User Configuration” command if available. Do not guess a user configuration path across operating systems, profiles, containers, or remote workspaces; check the client documentation. Merge this example with existing settings; do not overwrite unrelated servers.
No install command stated in the README — see repo. Check the client documentation for a supported connection method.
Read the VS Code setup guideConfig file · macOS/Linux: ~/.codeium/windsurf/mcp_config.json
Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json
Open the MCP configuration through Windsurf’s settings when possible to confirm the active file. Paths can differ in managed or future releases; check the client documentation if this location is not present. Merge this example with existing settings; do not overwrite unrelated servers.
No install command stated in the README — see repo. Check the client documentation for a supported connection method.
Read the Windsurf setup guideConfig file · Project scope: .mcp.json at the repository root
The project file uses mcpServers. For user scope, use claude mcp add --scope user rather than assuming .mcp.json in your home directory is the user configuration. Check the client documentation for managed settings and storage details. Merge this example with existing settings; do not overwrite unrelated servers.
No install command stated in the README — see repo. Check the client documentation for a supported connection method.
Read the Claude Code setup guideExamples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.
Tools
Source: repository README. Tool descriptions are a documented snapshot, not a live capability check.
| Tool | What it does |
|---|---|
| execute_sql | Run SQL on dbt Platform with Semantic Layer support. |
| text_to_sql | Generate SQL from a natural-language request and project context. |
| get_dimension_values | Retrieve distinct dimension values, optionally limited to selected metrics. |
| get_dimensions | Inspect dimensions associated with chosen metrics. |
| get_entities | Inspect entities associated with chosen metrics. |
| get_metrics_compiled_sql | Compile a metric query without running it. |
| list_metrics | List metrics defined in the Semantic Layer. |
| list_saved_queries | List available saved queries. |
| query_metrics | Run metric queries with grouping and filters. |
| get_all_macros | List macros with optional package filtering. |
| get_all_models | List model names and descriptions. |
| get_all_sources | List sources and freshness, optionally narrowing by source name. |
| get_exposure_details | Inspect an exposure, its owner, dependencies, and freshness. |
| get_exposures | List downstream exposures such as dashboards and applications. |
| get_lineage | Inspect ancestors and descendants with depth and resource-type controls. |
| get_macro_details | Inspect one macro. |
| get_mart_models | List mart models. |
| get_model_children | Find downstream resources depending on a model. |
| get_model_details | Inspect model columns, schema, and compiled SQL. |
| get_model_health | Review run status, tests, and upstream source freshness. |
| get_model_parents | Find resources a model depends on. |
| get_model_performance | Inspect model execution history, optionally including tests. |
| get_related_models | Find models through semantic similarity. |
| get_seed_details | Inspect a seed resource. |
| get_semantic_model_details | Inspect one semantic model. |
| get_snapshot_details | Inspect a snapshot resource. |
| get_source_details | Inspect source columns and freshness. |
| get_test_details | Inspect a test resource. |
| search | Search project resources; this capability is alpha. |
| build | Materialize selected resources and run tests in dependency order. |
| clone | Clone selected state nodes into target schemas. |
| compile | Compile project SQL and validate Jinja expressions. |
| docs | Generate project documentation. |
| get_lineage_dev | Read dependency relationships from a local manifest. |
| get_node_details_dev | Inspect local manifest entries for project resources. |
| list | Enumerate project resources with type and selector filters. |
| parse | Check project parsing and syntax. |
| run | Execute models to create their database materializations. |
| show | Execute SQL and return database results. |
| test | Run model and data validation tests. |
| cancel_job_run | Stop an active job run. |
| get_job_details | Inspect job schedules, triggers, and dbt commands. |
| get_job_run_details | Inspect run status, timing, steps, and artifacts. |
| get_job_run_error | Retrieve errors and optional warnings from a run. |
| list_job_run_artifacts | List artifacts produced by a job run. |
| list_jobs | List account jobs with optional project or environment filters. |
| list_jobs_runs | List job runs with job, status, and ordering controls. |
| list_projects | List projects in a dbt Platform account. |
| retry_job_run | Retry a failed run. |
| trigger_job_run | Start a job run with optional setting overrides. |
| generate_model_yaml | Generate model YAML, optionally reusing upstream column descriptions. |
| generate_source | Generate source YAML by inspecting database schemas. |
| generate_staging_model | Generate staging SQL for a source table. |
| fusion.compile_sql | Compile SQL using Platform project context and Fusion. |
| fusion.get_column_lineage | Trace column relationships through dbt Platform. |
| get_column_lineage | Trace local column relationships using dbt-lsp. |
| get_product_doc_pages | Fetch Markdown for selected official dbt documentation pages. |
| search_product_docs | Find relevant official documentation pages and ranked references. |
| get_mcp_server_branch | Report the running server checkout branch. |
| get_mcp_server_version | Report the running server version. |
Names, permissions, and defaults can change. Check the current upstream documentation before granting access.
Use cases
- Inspect model lineage, freshness, and test health
- Query defined metrics through the Semantic Layer
- Generate staging SQL and model documentation YAML
- Inspect, trigger, retry, or cancel Platform job runs
- Search official dbt product documentation
Strengths
- Combines project metadata with development and operational tools
- Includes Semantic Layer and column-lineage capabilities
- Provides official documentation search and retrieval
Limitations
- CLI tools can modify models and warehouse objects
- Project-wide search is alpha and not generally available
- Runnable server setup is not stated in the README
Frequently asked questions
Independent listing, not an affiliation or security review. Grant the least access needed and verify the upstream instructions before running code.