Skip to content

Commit f1492cc

Browse files
committed
Merge branch 'main' of github.com:dbt-labs/dbt-mcp into jairus/get-artifacts-in-memory
2 parents 34531b1 + c84d955 commit f1492cc

15 files changed

Lines changed: 145 additions & 95 deletions

.changes/unreleased/Bug Fix-20260410-order-by-grain.yaml

Lines changed: 0 additions & 3 deletions
This file was deleted.

.changes/unreleased/Bug Fix-20260507-184213.yaml

Lines changed: 0 additions & 3 deletions
This file was deleted.

.changes/unreleased/Bug Fix-20260512-162150.yaml

Lines changed: 0 additions & 3 deletions
This file was deleted.

.changes/unreleased/Enhancement or New Feature-20260511-101749.yaml

Lines changed: 0 additions & 3 deletions
This file was deleted.

.changes/unreleased/Under the Hood-20260128-110230.yaml

Lines changed: 0 additions & 3 deletions
This file was deleted.

.changes/v1.19.0.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
## v1.19.0 - 2026-05-13
2+
### Enhancement or New Feature
3+
* 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.
4+
### Under the Hood
5+
* Sign release PR commits with github-actions bot for verified commit signatures
6+
* [Part 1 of 3]: Use dbt-artifacts-parser schemas for artifact schema parsing
7+
### Bug Fix
8+
* 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
9+
* fix: list_tools no longer triggers host elicitation, preventing 'No tools' in dbt Core (CLI-only) setups after v1.17.0
10+
* 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.

.changes/v1.19.1.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
## v1.19.1 - 2026-05-14
2+
### Under the Hood
3+
* Silence asyncio DeprecationWarning in LSP connection unit tests by binding a fresh event loop and using loop.create_future() instead of bare asyncio.Future().
4+
* Make ToolDefinition.structured_output default to True and require title in generic_dbt_mcp_tool. Decorator now keyword-only.
5+
* Remove dbt-artifacts-parser from 7 day exclusion
6+
* Fix test_local_mcp_list_metrics_returns_valid_response integration test

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,24 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
77
and is generated by [Changie](https://github.com/miniscruff/changie).
88

99

10+
## v1.19.1 - 2026-05-14
11+
### Under the Hood
12+
* Silence asyncio DeprecationWarning in LSP connection unit tests by binding a fresh event loop and using loop.create_future() instead of bare asyncio.Future().
13+
* Make ToolDefinition.structured_output default to True and require title in generic_dbt_mcp_tool. Decorator now keyword-only.
14+
* Remove dbt-artifacts-parser from 7 day exclusion
15+
* Fix test_local_mcp_list_metrics_returns_valid_response integration test
16+
17+
## v1.19.0 - 2026-05-13
18+
### Enhancement or New Feature
19+
* 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.
20+
### Under the Hood
21+
* Sign release PR commits with github-actions bot for verified commit signatures
22+
* [Part 1 of 3]: Use dbt-artifacts-parser schemas for artifact schema parsing
23+
### Bug Fix
24+
* 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
25+
* fix: list_tools no longer triggers host elicitation, preventing 'No tools' in dbt Core (CLI-only) setups after v1.17.0
26+
* 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.
27+
1028
## v1.18.1 - 2026-05-11
1129
### Under the Hood
1230
* Handle metrics_with_related read timeouts

src/dbt_mcp/dbt_cli/tools.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,7 @@ def get_node_details_dev(
429429
return [
430430
ToolDefinition(
431431
fn=build,
432+
title="dbt build",
432433
description=get_prompt("dbt_cli/build"),
433434
annotations=create_tool_annotations(
434435
title="dbt build",
@@ -439,6 +440,7 @@ def get_node_details_dev(
439440
),
440441
ToolDefinition(
441442
fn=compile,
443+
title="dbt compile",
442444
description=get_prompt("dbt_cli/compile"),
443445
annotations=create_tool_annotations(
444446
title="dbt compile",
@@ -449,6 +451,7 @@ def get_node_details_dev(
449451
),
450452
ToolDefinition(
451453
fn=docs,
454+
title="dbt docs",
452455
description=get_prompt("dbt_cli/docs"),
453456
annotations=create_tool_annotations(
454457
title="dbt docs",
@@ -460,6 +463,7 @@ def get_node_details_dev(
460463
ToolDefinition(
461464
name="list",
462465
fn=ls,
466+
title="dbt list",
463467
description=get_prompt("dbt_cli/list"),
464468
annotations=create_tool_annotations(
465469
title="dbt list",
@@ -470,6 +474,7 @@ def get_node_details_dev(
470474
),
471475
ToolDefinition(
472476
fn=parse,
477+
title="dbt parse",
473478
description=get_prompt("dbt_cli/parse"),
474479
annotations=create_tool_annotations(
475480
title="dbt parse",
@@ -480,6 +485,7 @@ def get_node_details_dev(
480485
),
481486
ToolDefinition(
482487
fn=run,
488+
title="dbt run",
483489
description=get_prompt("dbt_cli/run"),
484490
annotations=create_tool_annotations(
485491
title="dbt run",
@@ -490,6 +496,7 @@ def get_node_details_dev(
490496
),
491497
ToolDefinition(
492498
fn=test,
499+
title="dbt test",
493500
description=get_prompt("dbt_cli/test"),
494501
annotations=create_tool_annotations(
495502
title="dbt test",
@@ -500,6 +507,7 @@ def get_node_details_dev(
500507
),
501508
ToolDefinition(
502509
fn=show,
510+
title="dbt show",
503511
description=get_prompt("dbt_cli/show"),
504512
annotations=create_tool_annotations(
505513
title="dbt show",
@@ -510,6 +518,7 @@ def get_node_details_dev(
510518
),
511519
ToolDefinition(
512520
fn=clone,
521+
title="dbt clone",
513522
description=get_prompt("dbt_cli/clone"),
514523
annotations=create_tool_annotations(
515524
title="dbt clone",
@@ -521,6 +530,7 @@ def get_node_details_dev(
521530
ToolDefinition(
522531
name="get_lineage_dev",
523532
fn=get_lineage_dev,
533+
title="Get Model Lineage (Dev)",
524534
description=get_prompt("dbt_cli/get_lineage_dev"),
525535
annotations=create_tool_annotations(
526536
title="Get Model Lineage (Dev)",
@@ -532,6 +542,7 @@ def get_node_details_dev(
532542
ToolDefinition(
533543
name="get_node_details_dev",
534544
fn=get_node_details_dev,
545+
title="Get Node Details (Dev)",
535546
description=get_prompt("dbt_cli/get_node_details_dev"),
536547
annotations=create_tool_annotations(
537548
title="Get Node Details (Dev)",

src/dbt_mcp/dbt_codegen/tools.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,29 +163,29 @@ def generate_staging_model(
163163
return [
164164
ToolDefinition(
165165
fn=generate_source,
166+
title="Generate Source",
166167
description=get_prompt("dbt_codegen/generate_source"),
167168
annotations=create_tool_annotations(
168-
title="dbt-codegen generate_source",
169169
read_only_hint=True,
170170
destructive_hint=False,
171171
idempotent_hint=True,
172172
),
173173
),
174174
ToolDefinition(
175175
fn=generate_model_yaml,
176+
title="Generate Model YAML",
176177
description=get_prompt("dbt_codegen/generate_model_yaml"),
177178
annotations=create_tool_annotations(
178-
title="dbt-codegen generate_model_yaml",
179179
read_only_hint=True,
180180
destructive_hint=False,
181181
idempotent_hint=True,
182182
),
183183
),
184184
ToolDefinition(
185185
fn=generate_staging_model,
186+
title="Generate Staging Model",
186187
description=get_prompt("dbt_codegen/generate_staging_model"),
187188
annotations=create_tool_annotations(
188-
title="dbt-codegen generate_staging_model",
189189
read_only_hint=True,
190190
destructive_hint=False,
191191
idempotent_hint=True,

0 commit comments

Comments
 (0)