dbt-mcp
A MCP (Model Context Protocol) server for interacting with dbt resources.
What it is and what it does
dbt-mcp is a Model Context Protocol server that bridges dbt projects and AI agents. It wraps dbt's discovery, semantic layer, admin, and CLI capabilities into standardized MCP tools that agents can call to understand project structure, execute queries, and trigger jobs. The server runs as a FastAPI application via uvicorn and exposes tools for SQL execution, metric queries, lineage traversal, model discovery, job management, and documentation search—all without requiring the agent to understand dbt's native APIs.
You install and run it to connect AI agents to your dbt environment. The server handles authentication via authlib and JWT, manages state with filelock, and communicates with dbt Platform or local dbt projects depending on which tools you invoke. It's designed for teams that want agents to reason about data models, suggest transformations, or automate dbt operations within a larger AI workflow.
Use it for:
- Connect an AI agent to your dbt project so it can understand model lineage and suggest data transformations
- Enable an agent to execute metric queries and generate SQL from natural language descriptions of your data
- Automate dbt job triggering and monitoring through an agent interface without manual API calls
- Let an agent search dbt documentation and project resources to answer questions about your data architecture
- Generate boilerplate dbt YAML and SQL via an agent using codegen tools without manual scaffolding
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Exposes dbt project metadata and operations through a Model Context Protocol server, enabling AI agents to query models, metrics, lineage, and execute dbt commands via standardized tools.
Yes, if you are building or using AI agents that need to interact with dbt projects. The package is actively maintained, has low install friction, carries a permissive license, and exposes a comprehensive set of dbt operations through a standardized protocol. Start with a test integration to verify the tools you need are available and that your authentication setup works with your dbt environment.
Install
dbt-mcp on PyPI
pip
pip install dbt-mcpuv
uv add dbt-mcppoetry
poetry add dbt-mcpInstalling dbt-mcp
Before you install
Low friction installation with a pure-Python wheel. Maintained actively with recent releases; last commit 2026-08-14 and 596 repository stars indicate ongoing development. Dependencies are pinned to specific versions with security-only updates.
License in practice
Apache License 2.0 is permissive; you may use, modify, and distribute this package freely provided you retain license notices and include a copy of the license with any derivative works.
Quickstart
pip install dbt-mcp
# Start the MCP server (requires dbt credentials and configuration)
python -m dbt_mcp.server
# In your MCP client, connect to the server and call tools like:
# { "name": "list_metrics", "arguments": {} }
# { "name": "get_lineage", "arguments": { "node_name": "my_model" } }
Requires Python 3.12 (supports_current). You must have dbt credentials configured (dbt Cloud API token or local dbt project) and a running dbt environment to connect to; the server itself does not operate standalone.
Verify before relying
- Whether all 14 runtime dependencies are required for basic operation or if some are optional based on which tools are used
- Performance characteristics when querying large dbt projects or executing complex lineage operations
- Whether the MCP server can be embedded in applications or is intended only for standalone agent integration
Package facts
| License | Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (<3.14,>=3.12) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 14 — authlib, dbt-artifacts-parser, dbt-protos, dbt-sl-sdk, dbtlabs-vortex, fastapi, filelock, httpx, mcp, pydantic-settings, pyjwt, pyyaml, starlette, uvicorn |
| Maintenance | actively maintained — 25 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 115,538/month — #12,246 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: dbt_mcp-1.22.1-py3-none-any.whl
Keywords: ai-agent, analytics, data, dbt, llm, mcp, model-context-protocol
Tags
More Information Analysis packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
pyarrowpyarrow provides Python bindings to Apache…
permissive · top 100 on PyPI
networkxNetworkX provides data structures and…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
snowflake-snowpark-pythonSnowpark Python provides APIs to query and…
permissive · top 1,000 on PyPI
opensearch-mcp-server-pyProvides a Model Context Protocol (MCP) server…
permissive · top 15,000 on PyPI
snowflake-labs-mcpA deprecated MCP server that previously…
unclear · top 15,000 on PyPI
dbt-metabaseSyncs dbt project metadata (table…
permissive · top 15,000 on PyPI
dbt-sl-sdkA Python client library for querying dbt's…
unclear · top 15,000 on PyPI
awslabs.cloudwatch-mcp-serverExposes CloudWatch metrics, logs, alarms, and…
permissive · top 15,000 on PyPI
dbt-colibriExtracts column-level lineage from dbt projects…
permissive · top 15,000 on PyPI
dbt-core-experimental-parserExperimental parser for dbt Core v2.0 (alpha),…
permissive · top 5,000 on PyPI
dbt-coredbt-core transforms raw data in a warehouse…
permissive · top 1,000 on PyPI
nextcloud-mcp-serverProvides a Model Context Protocol (MCP) server…
agpl · top 15,000 on PyPI
postgres-mcpA Model Context Protocol server that connects…
permissive · top 15,000 on PyPI