# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), and is generated by [Changie](https://github.com/miniscruff/changie). ## v2.8.0 - 2026-10-12 ### Enhancement or New Feature * Tools declare their inputs and access requirements. Named context mappers replace positional and type-based injection; implementations read resolved targets from context. HIDE omits unused selectors, and value mappers inject known selections. FastMCP generates the schema and validator and rejects extra inputs before mapping. Hosts resolve and authorize targets while building context; ordinary mapper inputs also reach the implementation unchanged. One registry replaces separate single-project and multi-project tools. Discovery fetchers hold resolved configuration. list_jobs requires a project or selected environment and includes staging; account-wide listing is removed. AdminApiConfig.environment_id replaces prod_environment_id. Hosts enforce ownership checks for supplied job/run IDs. ### Under the Hood * Declare pydantic, pydantic-core, anyio and pyarrow as direct dependencies, since the code imports them directly ### Bug Fix * Limit Flight SQL prepare calls to 60 seconds and run query_metrics over the Semantic Layer GraphQL API when the Flight SQL connection fails ## v2.7.0 - 2026-10-08 ### Enhancement or New Feature * Return bounded pages and explicit continuation metadata from Admin, Discovery, and Semantic Layer collection tools. Collection payloads are wrapped in result and pagination fields; callers must follow the continuation metadata to retrieve additional pages. * Add optional host-injected response budgets, admission and streaming size observations, bound retained documentation state, and offload artifact processing. Local acquisition and worker memory budgets default to unlimited. ### Under the Hood * Bump source-map-js from 1.2.1 to 1.2.2 in /ui ### Bug Fix * Fix startup ImportError with pydantic 2.14 by removing the private `eval_type_backport` import from proxied tool registration. ## v2.6.0 - 2026-10-06 ### Enhancement or New Feature * Tell the user how to re-authenticate when a warehouse query fails because the OAuth connection expired, with a link to their credentials page in dbt platform (query_metrics, get_dimension_values, get_metrics_compiled_sql and execute_sql) * Resolve relative DBT_PROJECT_DIR, DBT_PROFILES_DIR and DBT_PATH values to absolute paths at startup, so they no longer depend on the directory the server is launched from ### Under the Hood * Simplify the integration test workflow: fork PRs run on pull_request_target and wait for environment approval on every commit, instead of failing a separate gate and requiring the ok-to-test label * Pin go-task and d2 versions in CI and consolidate go-task installation into a reusable composite action ### Bug Fix * Allow up to 10 seconds of clock skew when verifying dbt Platform OAuth access tokens so freshly issued tokens do not fail iat validation. ### Security * Update urllib3 to 2.8.0 to address security advisories. * Update PyJWT to 2.15.0 to address security advisories. ## v2.5.0 - 2026-09-28 ### Enhancement or New Feature * Classify warehouse authentication and permission errors from semantic layer query failures, stripping the internal classification marker and appending an actionable hint pointing the caller toward the likely fix ### Bug Fix * Fix semantic layer query error formatting to use QueryFailedError's clean underlying message instead of its str() representation, which was leaking a message="...", status= wrapper artifact into the error shown to callers * Bound get_lineage results with a configurable node limit and report the number of omitted nodes. * Allow multi-project OAuth contexts to reuse cached tokens by accepting selected_project_ids in place of prod_environment in context validation ### Security * Update UI build dependencies to patched releases. * Update example dependencies to patched releases. * Upgrade MCP, FastAPI, and Starlette to patched releases. * Upgrade the UI build to Vite 8 and remove vulnerable esbuild from the lockfile. ## v2.4.0 - 2026-09-22 ### Enhancement or New Feature * Add an optional project_id filter to list_jobs to retrieve jobs across all environments in a project, while preserving the configured environment default when omitted. ## v2.3.1 - 2026-09-11 ### Bug Fix * Infer account prefix from DBT_HOST when the dbt Platform account API returns null subdomain fields, preventing DNS errors on discovery and semantic layer tools for multi-cell accounts * Fix get_job_run_artifacts returning 500 server error instead of 400 client errors when a jq filter fails validation ## v2.3.0 - 2026-09-08 ### Enhancement or New Feature * Re-add `get_job_run_artifacts` tool with jq filtering for large artifacts ### Under the Hood * Filter dbt docs v2 Parquet artifacts (index/, metadata/) from list_job_run_artifacts and add an early guard in get_job_run_artifact that returns a clear error ### Bug Fix * Sanitize `artifact_path` in `get_job_run_artifacts` to only accept a relative path within the run's artifacts * Fix get_job_run_error not detecting source freshness errors/warnings from Fusion runs; Fusion sources.json uses capital-case status strings ("Error", "Warn") which were silently dropped by case-sensitive comparison in ErrorFetcher and WarningFetcher ## v2.2.1 - 2026-09-03 ### Under the Hood * Add token and character count estimates for tool-call arguments and responses in telemetry events ### Bug Fix * offload query_metrics result formatting off the event loop to prevent 25s+ blocks ## v2.2.0 - 2026-08-25 ### Enhancement or New Feature * Add an optional `dbt_version_override` parameter to `trigger_job_run`, so a run can be executed on a different dbt version without changing the job or its environment. ## v2.1.2 - 2026-08-20 ### Under the Hood * Fix release pull request checks and sign automated release commits. ### Bug Fix * Cleanup of the local OAuth helper: file permissions and response payload. ## v2.1.1 - 2026-08-19 ### Under the Hood * Update the PyPI publishing action to support Core Metadata 2.5. ## v2.1.0 - 2026-08-17 ### Enhancement or New Feature * Return the exact adapter-rendered relation name for models from node detail queries. ## v2.0.0-beta.1 - 2026-07-30 ### Breaking Change * get_lineage (single- and multi-project) now returns a structured lineage graph (root_id/nodes/edges) instead of a list of node dicts, and links an interactive MCP-app UI that supporting MCP hosts can render; its default depth is now 1 (direct parents/children). Set DISABLE_MCP_APPS to opt out of the app resource. ## v1.22.1 - 2026-07-20 ### Under the Hood * Bump the pinned Node version to 22.18.0 in .tool-versions so the ui/ ESLint 9 flat-config check runs locally (Node 20.17 hits ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING). ### Bug Fix * Fix manifest path resolution when DBT_PROJECT_DIR is a relative path * Fix get_lineage 400 Bad Request caused by requesting description field not present in the Discovery API lineage GraphQL schema ## v1.22.0 - 2026-07-14 ### Enhancement or New Feature * Add get_node_details tool for fetching details of any dbt resource type; deprecate the 8 type-specific get_*_details tools in favor of get_node_details * Enrich get_lineage results with a description field per node; add a direction param (upstream/downstream/both) to narrow results to one side of the graph; deprecate get_model_parents and get_model_children in favor of get_lineage(depth=1, direction=...) * Add meta_filter param to list_metrics to pre-filter by config.meta and preserve metadata column under progressive trimming ### Under the Hood * Add docs/deprecating-tools.md: full process guide for the deprecate-then-remove tool lifecycle, plus CONTRIBUTING.md pointer. ## v1.21.2 - 2026-07-08 ### Under the Hood * Model-by-name lookups in get_model_details now resolve via a single Discovery API identifier query instead of enumerating packages and guessing unique_ids. Note: this fast path matches by DB alias, which get_model_details has done since #453 (not something this change introduces) and which get_model_health/get_model_children/get_model_parents have done since #289 -- a model whose alias was explicitly overridden away from its dbt name may not be found by name. * get_model_performance's name resolution now skips fetching full model details (catalog, compiled code, etc.) and resolves the unique_id directly. * Update docs gen script to annotate deprecated tools to README ### Bug Fix * Reduce the semantic layer GraphQL request timeout from 60s to 30s so unresponsive requests fail faster instead of holding the connection open. ## v1.21.1 - 2026-07-01 ### Bug Fix * Fix unhandled KeyError in get_dimension_values when the Arrow result schema does not contain the requested dimension column * Add hatch-vcs fallback-version to fix mcpb install failures in environments without git history ## v1.21.0 - 2026-06-26 ### Enhancement or New Feature * Track MCP client identity (name and version from the MCP initialize handshake) in Vortex tool call events via the user_agent field ### Under the Hood * Revert host elicitation (pre-v1.17.0 behaviour where DBT_HOST=None) * Add a CI check that snapshots the published-app contract (tool metadata, schemas, annotations, server instructions, UI resources) and fails when it changes, plus a workflow that labels contract-changing PRs ### Bug Fix * Fix list_saved_queries tool which was calling savedQueriesPaginated (a non-existent API field) instead of savedQueries * Preserve unique_id casing when querying the Discovery API — the uniqueIds filter is case-sensitive, so lowercasing caused empty results for models with uppercase names ## v1.20.4 - 2026-06-15 ### Bug Fix * Fix get_model_health response schema: wrap single-node result in a list to match the declared list[dict] return type ## v1.20.3 - 2026-06-11 ### Bug Fix * Set explicit timeouts on all dbt platform httpx clients to prevent ReadTimeout errors (15s for REST APIs, 60s for Semantic Layer GQL) ## v1.20.2 - 2026-06-08 ### Bug Fix * Return dimension-values query failures as tool results instead of raising generic runtime errors. ## v1.20.1 - 2026-06-04 ### Bug Fix * Run the full Semantic Layer session lifecycle (open, query, close) in a worker thread so session acquisition no longer blocks the event loop ## v1.20.0 - 2026-06-03 ### Enhancement or New Feature * Add dbt version awareness to product_docs tools * Add get_dimension_values tool to Semantic Layer toolset to retrieve distinct values for a dimension ### Under the Hood * Remove unused endpoint from OAuth helper server and add host validation middleware ### Bug Fix * Fix get_dimension_values: stringify dimension values to maintain list[str] type, omit nulls, add error handling, add limit >= 1 validation * Semantic layer query_metrics now lets operational errors (authentication, connection) propagate instead of flattening them into a returned query-error string, so callers can distinguish an invalid query from an unreachable semantic layer. * Handle null data in list_job_run_artifacts when a run produced no artifacts * Admin API client errors no longer include the full request URL, which could expose internal hostnames ## v1.19.2 - 2026-05-22 ### Under the Hood * Bump dbt-sl-sdk==0.13.3 ### Bug Fix * Fix unstructured tool errors being masked as 'outputSchema defined but no structured output returned' ## v1.19.1 - 2026-05-14 ### Under the Hood * Silence asyncio DeprecationWarning in LSP connection unit tests by binding a fresh event loop and using loop.create_future() instead of bare asyncio.Future(). * Make ToolDefinition.structured_output default to True and require title in generic_dbt_mcp_tool. Decorator now keyword-only. * Remove dbt-artifacts-parser from 7 day exclusion * Fix test_local_mcp_list_metrics_returns_valid_response integration test ## v1.19.0 - 2026-05-13 ### Enhancement or New Feature * list_metrics now accepts a list of substrings in the search parameter (results are unioned and deduplicated, fetched in parallel) and prefixes its CSV with a # Note: line whenever description/metadata are trimmed because the response exceeded DBT_MCP_SL_MAX_RESPONSE_CHARS. Trimming is also now scoped to broad listings (result count above metrics_related_max) so a narrow result set always returns full description and metadata. ### Under the Hood * Sign release PR commits with github-actions bot for verified commit signatures * [Part 1 of 3]: Use dbt-artifacts-parser schemas for artifact schema parsing ### Bug Fix * Add optional grain field to order_by in query_metrics; when provided it takes precedence over the matching group_by grain, preserving backward-compatible fallback when omitted * fix: list_tools no longer triggers host elicitation, preventing 'No tools' in dbt Core (CLI-only) setups after v1.17.0 * list/run/test/build/codegen tools no longer return stderr noise (e.g. urllib3 deprecation warnings under externalbrowser auth) in place of 'OK' on success. The fix uses process.returncode as the success signal: on success only stdout is returned, on failure stderr is surfaced alongside stdout so error diagnostics aren't lost. ## v1.18.1 - 2026-05-11 ### Under the Hood * Handle metrics_with_related read timeouts ### Bug Fix * Specify UTF-8 encoding for all text file reads/writes to fix UnicodeDecodeError on Windows (closes #765) ## v1.18.0 - 2026-05-08 ### Enhancement or New Feature * Move Admin API parameter docs into MCP tool schemas with shared descriptions * Share multi-project project_id description for Discovery and Semantic layer * Add JSON Schema parameter descriptions for Semantic Layer MCP tools * Add Discovery tool parameter descriptions for MCP schemas * Add MCP server instructions ### Bug Fix * Add helpful hint for SSL errors during OAuth, suggesting that multi-cell users set DBT_HOST to the full hostname (e.g. abc123.us1.dbt.com) ## v1.17.1 - 2026-05-05 ### Bug Fix * Improve input validation for dbt CLI tool parameters and reduce verbosity of argument logging. * Fix server crash for CLI-only users introduced in v1.17.0: register_proxied_tools now filters enabled tools before calling get_config(), preventing an AssertionError when DBT_HOST is unset; replace bare assert with MissingHostError; improve lifespan error logging to include full traceback ## v1.17.0 - 2026-05-05 ### Enhancement or New Feature * Elicit DBT_HOST from user on first platform tool call when not set via env vars (#488) * Populate dbt_cloud_user_id in telemetry events by resolving the current user from the Admin API when not already set by OAuth * Register admin API tools in the multiproject MCP server so they are available when DBT_PROJECT_IDS is configured ### Under the Hood * Make integration test check blocking for fork PRs: fail early instead of skipping when ok-to-test label is absent ### Bug Fix * Fix UnicodeDecodeError when reading manifest.json on Windows with UTF-8 model descriptions * Fix dev env retrieval ### Security * Add 7-day minimum package release age gate to prevent supply chain attacks via freshly-published malicious packages ## v1.16.0 - 2026-04-27 ### Enhancement or New Feature * Support parsing of fusion logs for warnings * Support dbt Fusion LSP via `dbt lsp` subcommand; prefer Fusion over legacy standalone binary, with `DBT_LSP_PATH` and editor storage paths as fallbacks ### Bug Fix * Fix get_job_run_error returning empty failed_steps when artifact 404s raise NotFoundError ## v1.15.1 - 2026-04-22 ### Enhancement or New Feature * Reduce list_metrics response size by switching from JSON to CSV format, cutting response size by ~67% and reducing agent cost by up to 33% per query ### Under the Hood * Move lazy imports in `get_credentials` to module level in `credentials.py` ## v1.15.0 - 2026-04-20 ### Enhancement or New Feature * ToolDispatcher routes between single-project and multi-project MCP * Add clone command to CLI tools * Remove get_job_run_artifact tool ### Under the Hood * Add DBT_HOST_PREFIX support to remote session initialization * Update deprecated streamablehttp_client function to streamable_http_client ### Bug Fix * Resolve symbolic links for mcp.lock file path before creating FileLock, preventing OSError when ~/.dbt/mcp.lock is a multi-level symbolic link. * Fix invalid mixed state when transitioning from single-project to multi-project OAuth login — stored prod/dev environments are no longer inherited when selected_project_ids is set * Fix proxied tools for single project MCP * Raise NotFoundError instead of ArtifactRetrievalError for 404 responses in get_job_run_artifact ## v1.14.0 - 2026-04-14 ### Enhancement or New Feature * Populate dbt_cloud_account_identifier in telemetry events * Auto-fetch DBT_HOST_PREFIX from dbt Platform for SL and Discovery API URL construction * list_metrics now returns dimensions and entities in the same response when the metric count is at or below a configurable threshold (default: 10, via DBT_MCP_SL_FULL_CONFIG_THRESHOLD), reducing LLM round trips from 3 tool calls to 1 for small-to-medium environments ### Under the Hood * Remove forked MCP SDK source * Update dependabot config to batch examples/ security PRs * Add patterns to examples dependencies in dependabot configuration * Match baseline dependabot docs for multi-ecosystem-groups config ## v1.13.0 - 2026-04-07 ### Enhancement or New Feature * Add YML selectors support for CLI tools * Reduce get_product_doc_pages page limit from 10 to 5 and add optional query parameter for section-level content extraction, significantly reducing response payload size to prevent IDE freezing * Add search and key navigation for OAuth project selection ### Under the Hood * Using Admin API Client for dynamic multi-project server config * Remove get_project_details tool * Use admin api client for multiproject SL tools ## v1.12.0 - 2026-04-01 ### Enhancement or New Feature * Add multi-project discovery tools with config_override support for Server B ### Under the Hood * Add LLM-Assisted Contributions section to CONTRIBUTING.md and consolidate style guidelines from .cursor/rules into CONTRIBUTING.md * Clarify OAuth page wording — dbt Cloud → dbt Platform, remove editor-specific framing * Clarify selectors arg/prompt for CLI tools * Split config_providers module into a package with separate files per provider type * Extract CredentialsProvider into credentials.py to break circular import * Follow redirects for DbtAdminAPIClient ## v1.11.0 - 2026-03-25 ### Enhancement or New Feature * Expose steps_override parameter in trigger_job_run tool * Add list_projects tool to discover available projects in the account; add project description field to project objects * Add --sample flag support to build and run tools * Add AG2 multi-agent example * Extract project/environment helpers for multi-project support * Add multi-project semantic layer tools with project_id parameter * Add more data to list_projects response: dbt_project_subdirectory, has_semantic_layer, type, environments (id/name/type), and repository_full_name * Add selector flag to compile tool ### Under the Hood * Add automated tool set descriptions for README generation * Add Claude Code skill for automating dbt-mcp releases * Pin mcp SDK to dbt-labs/patched fork for stateless task leak fix * Harden OAuth token handling: eagerly start background refresh, validate token expiry in get_token(), and stop setting settings.dbt_token in the OAuth path * Switch dependencies to compatible release (~=) specifiers * Remove dead code and unify OAuth expiry buffer constants * Consolidate duplicate OAuth token refresh logic into shared function * Migrate HTTP client from requests to httpx.AsyncClient for project and environment resolvers * Remove test_tools_disabled from TestProductDocsRegistration suite ### Bug Fix * Address auth issues with misconfigured env vars ### Security * Update minimatch, rollup, and ajv in ui/pnpm-lock.yaml and ai package in examples/ai_sdk_agent to fix known security vulnerabilities ## v1.10.0 - 2026-03-10 ### Enhancement or New Feature * Adds product docs tools: search_product_docs and get_product_doc_pages ### Under the Hood * Add dependabot YML config * Loosen version pin to dbt-protos>=1.0.431 * Add meta field passthrough to tool definition infra for MCP Apps support ## v1.9.3 - 2026-03-02 ### Under the Hood * Upgrade MCP SDK version pin from ==1.23.1 to ==1.26.0 * Metadata tool for current branch ## v1.9.2 - 2026-02-25 ### Under the Hood * Classify ToolCallErrors as client/server via TypeAlias unions and catch COMPILED timeouts as SemanticLayerQueryTimeoutError ## v1.9.1 - 2026-02-25 ### Under the Hood * Recategorize fetch_performance errors * Add validation for dbt LSP args in LSPClient ### Bug Fix * Show user-friendly error message on OAuth setup failure instead of raw TypeError ## v1.9.0 - 2026-02-11 ### Enhancement or New Feature * Add Dockerfile and .dockerignore for containerized deployment * Add get_all_macros discovery tool * Move Logging setup before settings so settings can be logged. * Add AI SDK agent example for building TypeScript applications with dbt MCP ### Under the Hood * Handle invalid tool names in tool allowlist * Enhance docs gen script to include d2.png updates / proper MCP casing * Align get_lineage_dev to have similar signature to get_lineage. Rename get_model_lineage_dev to get_lineage to align to naming better as well. * Use task:d2 to generate d2.png * Add human tool descriptions for improved README documentation ### Bug Fix * Split selector into model_selector and column_selector for dbt.listNodes LSP command * Fix empty error messages in semantic layer query_metrics tool errors * Fix get_metrics_compiled_sql and query_metrics failing with "Group by metric_time not found" when combining metrics from different semantic models ## v1.8.1 - 2026-01-27 ### Bug Fix * Fix Admin API tools failing due to improper URL encoding of include_related parameter ## v1.8.0 - 2026-01-27 ### Enhancement or New Feature * Extend detect_binary_type timeout to account for long-running dbt executable * Add MCP tool to expose server version * Add the ability to retrieve project information in the Admin tools (incl. repo) * Add metadata field to get_dimensions tool response * Add get_model_performance discovery tool * Add automatic token refresh at startup using refresh token instead of requiring full re-authentication * Add ability to select production environment during OAuth setup instead of relying on auto-detection * Add a new CLI tool get_node_details_dev to retrieve information for a node in the current project ### Under the Hood * Use httpx for admin tools * Add to_fastmcp_internal_tool utility to ToolDefinition * Fix event loop issues with proxied tools by moving registration to app lifecycle * Prevent duplicate flows for internal/external PRs * CrewAI agent example with dbt-mcp * Upgrade dependencies to address CVEs * Use Python importlib over git in subprocess to get version for manifest.json * Add generic_dbt_mcp_tool decorator ### Bug Fix * Fix get_job_run_error returning empty failed_steps when artifacts don't exist * Make development environment optional when reusing OAuth context, fixing re-auth loop for projects without a dev environment * Expand tilde (~) in DBT_PATH, DBT_PROJECT_DIR, and DBT_PROFILES_DIR environment variables to support paths like ~/.local/bin/dbt ## v1.7.0 - 2026-01-09 ### Enhancement or New Feature * Add MCP Bundle for one-click installation * Adding get_lineage discovery mcp tool. ### Under the Hood * Fix integration tests * Running integration tests in CI * Using client session for client tool * Fixing integration tests for branches from forks ## v1.6.2 - 2026-01-06 ### Under the Hood * Using uv for Python pre-commit hooks ### Security * fix: Prevent template injection vulnerabilities ## v1.6.1 - 2025-12-17 ### Under the Hood * Migrate admin tools definitions to use the dbt_mcp_tool decorator * Close proxied_tools_manager for exceptions in listing proxied tools ## v1.6.0 - 2025-12-11 ### Enhancement or New Feature * Add ability to get model lineage via the cli. ### Under the Hood * Add Fusion tools to ToolName enum ## v1.5.2 - 2025-12-10 ### Under the Hood * Add search tool to ToolName enum ## v1.5.1 - 2025-12-09 ### Under the Hood * Upgrade python MCP SDK * Add x-dbt-partner-source header to discovery tools * Extend JSON encoder to handle PyArrow time, timedelta, and binary types in semantic layer query result * Decouple tool registration from ToolName ## v1.5.0 - 2025-12-05 ### Enhancement or New Feature * Added explicit allowlist system for tool configuration, enabling fine-grained control over which tools are available. ### Under the Hood * Automate Toolset and Tools documentation generation into README * Test TOOLSET_TO_DISABLE_ATTR and TOOLSET_TO_ENABLE_ATTR * Python Cursor rule and stylistic guidelines ### Bug Fix * Fix discovery tool prompt tool parameters * Fix JSON serialization error when querying metrics that return Decimal values from the dbt Semantic Layer ## v1.4.0 - 2025-12-03 ### Enhancement or New Feature * Get resource details for search resources * stderr logger configuration with formatting and log lever override ### Under the Hood * Rename keyword search tool * Refactor discovery fetchers to share pagination * Override js-yaml version * Update gitignore * Remove pandas dependency * Use httpx for semantic layer requests * Use httpx for discovery requests * Remove search tool * Fix semantic layer client blocking requests ### Bug Fix * Fix lsp binary detection on Windows ## v1.3.0 - 2025-11-18 ### Enhancement or New Feature * Extend get_job_run_error to support optional warnings * Add search tools to discovery toolset * Refactor proxied tools. Enable new search tools. ### Under the Hood * Add discovery tool context * Update d2 diagram with get_all_sources/get_source_details * Add Semantic Layer tools context ## v1.2.0 - 2025-11-12 ### Enhancement or New Feature * Add get_source_details tool to retrieve column-level information for dbt sources, providing feature parity with get_model_details * Return SL query results in ISO timestamp format rather than Unix timestamp ### Under the Hood * Undo removal of .env.example file ### Bug Fix * correctly apply config.disable_tools when registering lsp tools ## v1.1.0 - 2025-11-03 ### Enhancement or New Feature * This adds the get all sources tool. * add auto-disable and better validation of MCP settings. A whole bunch of tests needed to change because of this Created fixture for allowing the default behavior to assume all required fields for settings are fully set * Add list_saved_queries tool to the Semantic Layer, enabling discovery of predefined MetricFlow queries via GraphQL API. This allows AI agents to list and search saved queries with their associated metrics, dimensions, and filters. ### Under the Hood * Abstract LSP client and LSP connection via providers. * Add version number guidelines to contributing.md * Make release version determination automatic based on changie changelog entries. The workflow now defaults to 'auto' mode which uses 'changie batch auto' to ### Bug Fix * Minor update to the instruction for LSP tool ## v1.0.0 - 2025-10-20 ### Enhancement or New Feature * Incroduce support for fusion LSP ### Under the Hood * Add support for Python debugger * Update pyproject.toml including development status * Add example for aws_strands_agent ### Bug Fix * Exclude Python 3.14 for now as pyarrow hasn't released wheels yet ## v0.10.3 - 2025-10-08 ### Under the Hood * Improved retry logic and post project selection screen * Avoid double counting in usage tracking proxied tools * Categorizing ToolCallErrors ## v0.10.2 - 2025-10-08 ### Enhancement or New Feature * Improved oauth error handling * Remove oauth env var feature flag. Enable oauth broadly. ### Under the Hood * Improved logging for development * Updating prompts to include examples to avoid bad parameter generation * Remove DBT_HOST prefix * Update usage tracking with new fields * Write .user.yml if it does not exist * Changed UsageTracker to a protocol ## v0.10.1 - 2025-10-02 ### Bug Fix * Fix get_job_run_error truncated log output ## v0.10.0 - 2025-10-01 ### Enhancement or New Feature * Add get_job_run_error to Admin API tools ## v0.9.1 - 2025-09-30 ### Under the Hood * Reorganize code and add ability to format the arrow table differently ## v0.9.0 - 2025-09-30 ### Enhancement or New Feature * Adding the dbt codegen toolset. ### Under the Hood * Updates README with new tools * Fix .user.yml error with Fusion ## v0.8.4 - 2025-09-29 ### Enhancement or New Feature * Allow doc files to skip changie requirements ### Under the Hood * Upgrade @vitejs/plugin-react * Add ruff lint config to enforce Python 3.9+ coding style * Opt-out of usage tracking with standard dbt methods ## v0.8.3 - 2025-09-24 ### Under the Hood * Rename SemanticLayerConfig.service_token to SemanticLayerConfig.token ### Bug Fix * Fix Error handling as per native MCP error spec ## v0.8.2 - 2025-09-23 ### Enhancement or New Feature * Use `dbt --help` to identify binary type * Increase dbt CLI timeout default ### Under the Hood * Implement SemanticLayerClientProvider ### Bug Fix * Update how we identify CLIs ## v0.8.1 - 2025-09-22 ### Under the Hood * Create ConfigProvider ABC ## v0.8.0 - 2025-09-22 ### Enhancement or New Feature * Allow creating pre-releases * Return compiled code in get_model_details ### Under the Hood * Handle Claude Desktop running multiple MCP server instances * Add docs for using the MCP server with google ADK and dbt-core * Add search string to SL metadata queries * Improve parameters in query_metrics examples * Reduce token usage in `get_job_run_details` response by removing debug param and unnecessary logs * Automatically refresh oauth token * Improve dbt platform context mcp.yml parsing * Add PR and issue templates * Address claude desktop re-triggering oauth on exit * Turning off caching for static files ### Bug Fix * Add account id to dbt platform context ## v0.7.0 - 2025-09-09 ### Enhancement or New Feature * Add tools to retrieve exposure information from Disco API ### Under the Hood * Expect string sub in oauth JWT * Using sync endpoints for oauth FastAPI server * Fix release pipeline ## v0.6.2 - 2025-09-08 ### Enhancement or New Feature * Adding the ability to return the config.meta attribute from list metrics to give the LLM more context * Oauth initial implementation * Fix #251 - Add flag for no color + ability to detect binary type ### Under the Hood * Add docs for using the MCP server with Pydantic AI * Don't run mypy on examples ## v0.6.1 - 2025-08-28 ### Enhancement or New Feature * Add support for --vars flag * Allow headers in AdminApiConfig ### Under the Hood * Remove redundant and outdated documentation ## v0.6.0 - 2025-08-22 ### Under the Hood * Update docs with new tools * Using streamable http for SQL tools * Correctly handle admin API host containing protocol prefix ## v0.5.0 - 2025-08-20 ### Enhancement or New Feature * Add support for --full-refresh flag * Adds a new tool to get model health (last run, tests, source freshness) from discovery API * Add operational/admin tools to interact with the dbt platform ### Under the Hood * LangGraph create_react_agent example * Make model_name optional for more discovery tools * Update example with OpenAI to show tool calls ### Bug Fix * Fix for timeout on Windows ## v0.4.2 - 2025-08-13 ### Enhancement or New Feature * Add default --limit to show tool ### Under the Hood * Define toolsets ### Bug Fix * Fix the prompt to ensure grain is passed even for non-time group by" ## v0.4.1 - 2025-08-08 ### Under the Hood * Upgrade dbt-sl-sdk ## v0.4.0 - 2025-08-08 ### Enhancement or New Feature * Tool policies * Added Semantic Layer tool to get compiled sql ### Under the Hood * Fix JSON formatting in README * Document dbt Copilot credits relationship ### Bug Fix * Make model_name of get_model_details optional ## v0.3.0 - 2025-08-05 ### Enhancement or New Feature * Add ToolAnnotations * Add alias field to GET_MODEL_DETAILS GraphQL query ### Under the Hood * Test remote tool equality * Fix initialization integration test * Refactor README * Rename Remote Tools to SQL Tools * Document Remote MCP * Improved Remote MCP instructions ### Bug Fix * Apply dbt_cli_timeout to all dbt commands ## v0.2.20 - 2025-07-25 ### Enhancement or New Feature * Allow for disabling CLI tools ### Under the Hood * Update codeowners * Improve DISABLE_TOOLS configuration * Remote MCP example * Add unit tests for env vars combinations * Add instructions for Claude Code in README * Add new example for OpenAI + HTTP Streamable MCP ## v0.2.19 - 2025-07-22 ### Under the Hood * Create list of tool names ## v0.2.18 - 2025-07-22 ### Enhancement or New Feature * Move env var parsing to pydantic_settings for better validation ### Under the Hood * Add integration test for server initialization ### Bug Fix * Fix SL validation error message when no misspellings are found ## v0.2.17 - 2025-07-18 ## v0.2.16 - 2025-07-18 ### Under the Hood * Adding the ability to exclude certain tools when registering * OpenAI responses example ## v0.2.15 - 2025-07-16 ### Under the Hood * Refactor sl tools for reusability * Update VSCode instructions in README ## v0.2.14 - 2025-07-14 ### Enhancement or New Feature * Make dbt CLI command timeout configurable ### Bug Fix * Allow passing entities in the group by ## v0.2.13 - 2025-07-11 ### Under the Hood * Decouple discovery tools from FastMCP ## v0.2.12 - 2025-07-09 ### Bug Fix * Catch every tool error and surface as string ## v0.2.11 - 2025-07-03 ### Bug Fix * fix order_by input ## v0.2.10 - 2025-07-03 ### Enhancement or New Feature * Upgrade MCP SDK ## v0.2.9 - 2025-07-02 ### Enhancement or New Feature * Decrease amount of data retrieved when listing models ### Under the Hood * OpenAI conversational analytics example * README updates * Move Discover headers to config ## v0.2.8 - 2025-07-02 ### Enhancement or New Feature * Raise errors if no node is selected (can also be configured) ### Bug Fix * Fix when people provide `DBT_PROJECT_DIR` as a relative path * Fix link in README ## v0.2.7 - 2025-06-30 ### Under the Hood * Timeout dbt list command * Troubleshooting section in README on clients not finding uvx * Update Discovery config for simpler usage ### Bug Fix * Fixing bug when ordering SL query by a metric ## v0.2.6 - 2025-06-16 ### Under the Hood * Instructing the LLM to more likely use a selector * Instruct LLM to add limit as an argument instead of SQL * Fix use of limit in dbt show * Indicate type checking ## v0.2.5 - 2025-06-06 ### Under the Hood * Small improvements to improve logging and code organization. * Move `--selector` to the code instead of the prompt * Cursor deeplink setup * Fix Cursor deeplinks * Fix Cursor env var mess up ### Bug Fix * Fix Discovery API config enablement ## v0.2.4 - 2025-06-03 ### Bug Fix * Add the missing selector argument when running commands ## v0.2.3 - 2025-06-02 ### Under the Hood * Fix release action to fetch tags ## v0.2.2 - 2025-06-02 ### Under the Hood * Update README to run the MCP server with uvx * Logging usage events * Improve remote tools error logging * Move create-release-tag to release Action * Update release process documentation ### Bug Fix * Fix typo in GH action to create release ## v0.2.1 - 2025-05-28 ### Under the Hood * Remove hatch from tag action * Manually triggering release ## v0.2.0 - 2025-05-28 ### Enhancement or New Feature * Using `--quiet` flag to reduce context saturation of coding assistants * Add a tool `get_model_children` * Added optional uniqueId parameter to model lookup methods for more precise model identification * Enable remote tools in production * Add selector for dbt commands * Set pre-changie value to 0.1.13 ### Under the Hood * Require changelog entries for each PR * Log Python version in install script * Update license to full Apache 2.0 text * Roll back installation script and instructions * Re-enable tests in CI * Refactor config for modularity * Document remote tools * Usage tracking scaffolding * Update docs to clarify service token permissions required * Increase remote tools timeout * Update release process for new versions * Point to the correct diagram in README * Install hatch in release process * Remove hatch from release process ### Bug Fix * Fix diagram according to feature set ## v0.1.3 and before * Initial releases before using changie