Skip to main content
Glama

Import dbt lineage

import_dbt_lineage

Map dbt lineage into a new Wavelength flow, with no AI call. Reads the applied state of a dbt deployment environment through the dbt Discovery API (or, with job_id, the manifest of a job's latest successful run). Sources and seeds become data nodes, models become steps with their owner (meta.owner), exposures (dashboards) become systems with their owner, and depends_on links become data edges. Pass select (model or exposure names, or dbt unique_ids) to map their upstream lineage; add downstream true to also include what depends on them. Without select it maps the whole project if it has 250 nodes or fewer. With no environment_id and no job_id it uses the first deployment environment. Set list_only true to get the project's models and exposures first.

Input Schema

NameRequiredDescriptionDefault
titleNoOptional flow title.
job_idNoOptional. dbt job id from list_dbt_jobs. Used when environment_id is not given.
selectNoOptional. Model or exposure names (for example orders, Weekly revenue dashboard) or dbt unique_ids. Up to 50.
team_idNoOptional team id.
directionNoOptional layout direction. Default vertical.
folder_idNoOptional folder id.
list_onlyNoOptional. Return the models and exposures instead of creating a flow.
downstreamNoOptional. Also include everything downstream of the selection. Default false.
environment_idNodbt deployment environment id from list_dbt_jobs (recommended).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as a non-readonly, non-idempotent, non-destructive, open-world mutation. The description adds substantial extra context: that it makes no AI call, reads the dbt Discovery API applied state or a job manifest, defines the exact node/step/system/edge mapping rules, states the 250-node limit, and explains default environment selection.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the core action and remains dense with useful detail across a few well-organized sentences. Every sentence earns its place given the nine parameters and complex mapping behavior; there is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, nine-parameter write tool with no output schema, the description is complete enough: it explains creation behavior, list_only output, selection defaults, environment fallback, node limits, and what the resulting flow contains. Safety-relevant traits are already covered by annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents each parameter. The description adds meaningful interaction semantics beyond the schema: select maps upstream lineage, downstream true extends to downstream dependencies, omitting select maps the whole project under a node cap, omitting both environment_id and job_id picks the first deployment environment, and list_only changes output from a flow to a list.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb and resource: mapping dbt lineage into a new Wavelength flow, with the distinctive note 'no AI call.' It then details exactly what becomes data nodes, steps, systems, and edges, distinguishing it from generic flow-creation or other lineage imports.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly explains how to use key parameters: select for upstream lineage, downstream to extend it, no select for whole-project (if ≤250 nodes), and no environment_id/job_id for the first deployment environment. However, it never names sibling alternatives like import_snowflake_lineage or create_flow_from_graph to tell the agent when to select this tool over them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources