Skip to main content
Glama

Import Snowflake lineage

import_snowflake_lineage

Map data lineage in one Snowflake database into a new Wavelength flow, with no AI call. Read-only queries on ACCOUNT_USAGE: object dependencies (views on tables), access history writes (INSERT ... SELECT, CTAS, MERGE; Enterprise edition), and stage or Snowpipe loads. Tables and stages become data nodes, views and dynamic tables become steps, edges are labeled references, writes, COPY INTO, or the Snowpipe name. Pass schema to keep only that schema and its direct neighbors (limit 250 nodes). Returns the flow link and which lineage sources returned rows.

Input Schema

NameRequiredDescriptionDefault
daysNoOptional history window in days for writes and loads, 1 to 90. Default 30.
titleNoOptional flow title.
schemaNoOptional schema name to narrow the flow.
team_idNoOptional team id.
databaseYesDatabase name from list_snowflake_databases.
directionNoOptional layout direction. Default vertical.
folder_idNoOptional folder id.

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 declare this is a non-read-only, non-idempotent, open-world operation, and the description adds the details that matter on top of that: read-only source queries, the Enterprise edition prerequisite, the 250-node cap when schema is passed, and the creation of a *new* flow each time (consistent with idempotentHint=false). It also summarizes the return payload, which is important given there is no output schema.

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?

Four dense but zero-waste sentences: purpose first, then data sources, then the node/edge mapping model, then scoping and return value. Every clause carries operational information an agent needs.

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 tool with seven parameters, no output schema, and a non-trivial ingestion pipeline, the description covers prerequisites, source behavior, mapping rules, scoping limits, and return contents. An agent has enough to invoke it correctly without opening additional resources.

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 baseline is 3, but the description adds real meaning beyond the schema: the schema parameter keeps only that schema 'and its direct neighbors (limit 250 nodes)' and the days window is described as applying to writes and loads. The remaining parameters (title, team_id, folder_id, direction) get no extra narrative, which is acceptable since the schema documents them.

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?

States a specific verb and resource: map Snowflake data lineage into a new Wavelength flow, with the notable qualifier 'no AI call'. This clearly separates it from sibling import_dbt_lineage and from create_flow_from_text, which do different things.

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?

Gives strong context for when the tool applies and what makes it succeed: it reads ACCOUNT_USAGE object dependencies, access history writes, and stage/Snowpipe loads, and it requires Enterprise edition for access history. It does not, however, explicitly route the agent between this and import_dbt_lineage or state when not to use it.

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