pyproject.toml•2.31 kB
[project]
name = "dbt-mcp"
description = "A MCP (Model Context Protocol) server for interacting with dbt resources."
authors = [{ name = "dbt Labs" }]
readme = "README.md"
license = { file = "LICENSE" }
# until pyarrow releases wheels for 3.14 https://github.com/apache/arrow/issues/47438
requires-python = ">=3.12,<3.14"
dynamic = ["version"]
keywords = [
"dbt",
"mcp",
"model-context-protocol",
"data",
"analytics",
"ai-agent",
"llm",
]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Intended Audience :: Information Technology",
"Intended Audience :: System Administrators",
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Topic :: Scientific/Engineering :: Information Analysis",
"Typing :: Typed",
]
dependencies = [
# Pinning all dependencies because this app is installed with uvx
# and we want to have a consistent install as much as possible.
"authlib==1.6.5",
"dbt-protos==1.0.382",
"dbt-sl-sdk[sync]==0.13.0",
"dbtlabs-vortex==0.2.0",
"fastapi==0.116.1",
"uvicorn==0.30.6",
"mcp[cli]==1.10.1",
"pandas==2.2.3",
"pydantic-settings==2.10.1",
"pyjwt==2.10.1",
"pyyaml==6.0.2",
"requests==2.32.4",
"filelock>=3.18.0",
]
[dependency-groups]
dev = [
"ruff>=0.11.2",
"types-requests>=2.32.0.20250328",
"mypy>=1.12.1",
"pre-commit>=4.2.0",
"pytest-asyncio>=0.26.0",
"pytest>=8.3.5",
"openai>=1.71.0",
"pyarrow-stubs>=19.1",
"types-pyyaml>=6.0.12.20250516",
"types-authlib>=1.6.4.20250920",
]
[project.urls]
Documentation = "https://docs.getdbt.com/docs/dbt-ai/about-mcp"
Issues = "https://github.com/dbt-labs/dbt-mcp/issues"
Source = "https://github.com/dbt-labs/dbt-mcp"
Changelog = "https://github.com/dbt-labs/dbt-mcp/blob/main/CHANGELOG.md"
[project.scripts]
dbt-mcp = "dbt_mcp.main:main"
[build-system]
requires = ["hatchling", "hatch-vcs"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.sdist]
include = ["src/dbt_mcp/**/*", "README.md", "LICENSE"]
[tool.hatch.version]
source = "vcs"
[tool.pytest.ini_options]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
pythonpath = [".", "src"]
[tool.ruff.lint]
extend-select = ["UP"] # UP=pyupgrade