Skip to main content

dbt-mcp-server

mcp server that lets claude answer questions about your dbt project. model lineage, missing docs, test failures straight from manifest.json

stateless by design: every tool call re-reads target/manifest.json, so answers always reflect your latest dbt parse. core logic is stdlib only, with a single dependency on the official mcp SDK. talks over stdio.

requirements

  • python 3.10+
  • a dbt project with a generated target/manifest.json (any dbt command creates it)

installing

pip install dbt-mcp-server

configuration

env var required description
DBT_MANIFEST_PATH no path to manifest.json (default: ./target/manifest.json). run_results.json is expected next to it
ANTHROPIC_API_KEY no reserved for the planned suggest_doc_blocks tool, not needed yet

hooking it up

claude desktop: add to claude_desktop_config.json (settings → developer → edit config):

{
  "mcpServers": {
    "dbt": {
      "command": "dbt-mcp-server",
      "env": {
        "DBT_MANIFEST_PATH": "/path/to/your/dbt_project/target/manifest.json"
      }
    }
  }
}

claude code:

claude mcp add dbt --env DBT_MANIFEST_PATH=/path/to/your/dbt_project/target/manifest.json -- dbt-mcp-server

tools

tool what you get
get_model_lineage(model_name) upstream and downstream dependency graph, direct and transitive
find_orphan_sources() sources that no model references
find_undocumented_models() models missing model-level or column-level descriptions
summarize_test_failures(since) test failures from run_results.json at or after an ISO date, grouped by model
trace_column_lineage(column, model) where a column likely originates, walking the graph upstream and matching declared column names
suggest_doc_blocks(model_name) (planned) YAML doc block drafts from compiled SQL via the claude API

then just ask things like:

"what feeds into fct_orders, and what breaks downstream if i change it?"

"which models are missing docs? list the undocumented columns."

"summarize test failures since 2026-07-01."

note: the manifest has no true column-level lineage, so trace_column_lineage won't match renamed or derived columns; it flags upstream nodes without declared columns so you know where the trail could continue.

development

git clone https://github.com/vladrosant/dbt-mcp-server
cd dbt-mcp-server
pip install -e ".[dev]"
pytest

license

MIT

Metadata

Release files for dbt-mcp-server 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dbt-mcp-server 0.1.1
File Size Uploaded Provenance
dbt_mcp_server-0.1.1.tar.gz 8.1 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for dbt-mcp-server 0.1.1
File Interpreter ABI Platform
dbt_mcp_server-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 17.6 kB

Release files / dbt_mcp_server-0.1.1.tar.gz

Download URL dbt_mcp_server-0.1.1.tar.gz
Size 8.1 kB
Tags Source
SHA-256 checksum
How to use checksums
b59f5569ac4e2d20ca7698df47f81af201ae3c3fbdf0552edde52476b5daa4fb
BLAKE2b-256 checksum
How to use checksums
958372def0adca7e95be9a61b03d21a5bdd9626a4527804534a565270e7cac1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 6, 2026.

Transparency log

Release files / dbt_mcp_server-0.1.1-py3-none-any.whl

Download URL dbt_mcp_server-0.1.1-py3-none-any.whl
Size 9.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
03945bad7db8980d31450c7c6687e7864556a4e8c362e865442678dcd2667e83
BLAKE2b-256 checksum
How to use checksums
8f6235ea6a9647532b8110888686f1d1d1ac489c370b96357ad129c5dfa9a8c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 6, 2026.

Transparency log

Security for dbt-mcp-server 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for dbt_mcp_server-0.1.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 6, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page