Skip to main content
Glama

link_field_lineage

Traces ONE lineage link from a source field (or from an entire source block, when fromFieldId is omitted or null) to a target field of an ERD entity — it answers 'where does this field come from?'. Required: a unique id, fromCellId, toCellId and toFieldId. The source and target blocks and the fields must already exist AND the field must belong to the block you name (a field id of another entity is refused): create them first with add_data_source, add_entity or add_field. REFUSED with an error, nothing written, on an unknown block or field or on an id that already exists. Optional: transformLogic (the ETL/SQL step in a few words), isPii (default false; flip it later with mark_field_pii) and notes. Nothing is overwritten: a second link with a new id adds another path. Remove one with delete_field_lineage.

Input Schema

NameRequiredDescriptionDefault
idYesUnique ID of the lineage relation
isPiiNoPII flag for governance (default false)
notesNoFree notes on this lineage link
toCellIdYesTarget ERD entity
toFieldIdYesTarget ERD field
fromCellIdYesSource block (typically kind=data-source)
fromFieldIdNoID of the source field (null if the source is an entire data-source block)
transformLogicNoETL/SQL/short description
expectedProjectIdNoUUID of the project targeted by THIS call. ACTUALLY targets this project instead of the session project. Refused without changing anything if access is not granted.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / notes / description
      Added value: +"Free notes on this lineage link"
  2. Changed8 schema fields changed
    • changedInput schema / properties / expectedProjectId / description
      Previous value: -"UUID du projet visé par CET appel. Cible RÉELLEMENT ce projet au lieu du projet de session. Refusé sans rien modifier si l'accès n'est pas accordé."New value: +"UUID of the project targeted by THIS call. ACTUALLY targets this project instead of the session project. Refused without changing anything if access is not granted."
    • changedInput schema / properties / fromCellId / description
      Previous value: -"Source cell (typiquement kind=data-source)"New value: +"Source block (typically kind=data-source)"
    • changedInput schema / properties / fromFieldId / description
      Previous value: -"ID du champ source (null si la source est un bloc data-source entier)"New value: +"ID of the source field (null if the source is an entire data-source block)"
    • changedInput schema / properties / id / description
      Previous value: -"ID unique de la relation lineage"New value: +"Unique ID of the lineage relation"
    • changedInput schema / properties / isPii / description
      Previous value: -"Flag PII pour gouvernance (défaut false)"New value: +"PII flag for governance (default false)"
    • changedInput schema / properties / toCellId / description
      Previous value: -"Entité MCD cible"New value: +"Target ERD entity"
    • changedInput schema / properties / toFieldId / description
      Previous value: -"Champ MCD cible"New value: +"Target ERD field"
    • changedInput schema / properties / transformLogic / description
      Previous value: -"ETL/SQL/description courte"New value: +"ETL/SQL/short description"
  3. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations give readOnlyHint=false and destructiveHint=false, and the description adds substantial context without contradicting them: it discloses that on an unknown block/field or a duplicate id the call is REFUSED with nothing written, that nothing is overwritten, and that a second link adds another path. That is exactly the non-obvious mutation behavior an agent needs.

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

Conciseness4/5

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

Front-loads the purpose in the first clause and packs prerequisites, refusals, optionals, and removal into a dense but tight block. Slightly long, but nearly every sentence carries operational value; not padded.

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 mutation tool with no output schema, it covers what an agent needs: required inputs, existence/ownership prerequisites, refusal semantics, non-overwrite behavior, optional fields, and how to undo. Nothing essential is missing.

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?

With 100% schema coverage the baseline is 3, but the description adds real meaning: it clarifies that fromFieldId omitted/null means the entire source block is the source (schema only says 'null if entire block'), and explains isPii default false plus how to flip it. That goes beyond the schema descriptions, though it doesn't add syntax details for every parameter.

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+resource ('Traces ONE lineage link from a source field ... to a target field of an ERD entity') and even frames the business question it answers. It distinguishes the single-link scope from a whole-block source via the fromFieldId note, and the sibling delete_field_lineage covers removal, so the agent can route without opening the schema.

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

Usage Guidelines5/5

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

Explicit prerequisites: blocks and fields must already exist and the field must belong to the named block, with the alternative (create first with add_data_source/add_entity/add_field) spelled out. It also names the removal path (delete_field_lineage) and the PII-flip path (mark_field_pii), leaving no ambiguity.

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.