Skip to main content
Glama

Create a trace link

traceable_link_create
Idempotent

Create a trace link between two TraceIDs (traceable rows, ID rows, or table trace rows), resolved server-side within one project, addressed by the pair of TraceIDs: link columns render as TraceID names. It is idempotent on the PAIR, not the direction: if an edge already exists between the two rows in EITHER direction, the existing edge is returned and nothing is written. existingDirection says "same" or "opposite", and on "opposite" a warning explains that no chip was placed because a second edge would be a cycle. When the source row is an ID Row, the link is also written into its link column so the chip SHOWS on the page; placedInColumn says which column took it. The column chosen is the row's first OUTPUT link column, since the target is downstream of the source. If the grid has no output link column it falls back to the first link column, an input column, and a warning says so; pass toColumnIndex to place it elsewhere. If the row has no link column the edge is still created and pinned, and a warning explains why nothing is shown. To remove a link, use traceable_link_delete.

Input Schema

NameRequiredDescriptionDefault
toItemIdYesTarget TraceID (e.g. FR-012)
fromItemIdYesSource TraceID (e.g. UN-4)
baseRevisionNoThe SOURCE document's revision (fromDocumentId): a link writes the source row's link cell. Refused with nothing changed if that document has changed since. The result returns its current revision.
toDocumentIdYesDocument UUID containing the target TraceID
toColumnIndexNoWhich of the source row’s link columns shows the chip; defaults to its first OUTPUT link column, or its first link column when it has no output column
fromDocumentIdYesDocument UUID containing the source TraceID

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations cover the safety profile (idempotentHint=true, destructiveHint=false, readOnlyHint=false), and the description adds substantial behavior beyond them: idempotency is on the PAIR not the direction, existingDirection reports same/opposite, warnings explain suppressed chips and cycles, placedInColumn reports the column used, and the column-choice fallback chain (first output link column → first link column → pinned edge with warning) is fully disclosed.

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?

Eight sentences is long, but each carries distinct load-bearing information (idempotency semantics, direction, column placement, warning cases) and the core action and pair-idempotency rule are front-loaded. Slightly dense, but minimal waste.

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?

No output schema exists, yet the description explains the meaningful return signals (existingDirection, warning, placedInColumn) and every edge case that affects whether a chip becomes visible. For a 6-parameter mutation tool, an agent has everything needed to call it and interpret the result.

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 for toColumnIndex (defaults to the row's first OUTPUT link column, falls back to first link column, can be overridden) that the schema only restates more briefly. It does not extend meaning for baseRevision or the four required IDs beyond what the schema already documents.

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 (create a trace link) and immediately scopes it: between two TraceIDs, resolved server-side within one project, addressed by the TraceID pair. It also names the sibling that performs the inverse operation (traceable_link_delete), so the agent can partition the create/delete pair without opening either schema.

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 clear conditions: use this to add an edge, use traceable_link_delete to remove one, and it explains what happens when an edge already exists in either direction (nothing is written, existing edge returned). It does not explicitly state when to prefer this over other write tools in the family, but the create/delete routing is explicit.

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