Skip to main content
Glama

connect_kind_nodes

Creates a dependency (arrow) between two nodes with a kind-specific type. Types per kind: arch → arch-sync (HTTP/gRPC), arch-async (queue), arch-db (SQL), arch-event (event stream), arch-data (S3/files); process → process-sequence (normal sequence) or process-message (inter-lane communication, dashed); journey → journey-flow or journey-dependency; captable → captable-share-transfer or captable-issuance.

Input Schema

NameRequiredDescriptionDefault
idYesUnique ID of the dependency.
toIdYesDestination block.
typeYesConnection type. For arch: arch-sync (HTTP), arch-async (queue), arch-db (SQL), arch-event (stream), arch-data (S3). For process: process-sequence (sequence), process-message (inter-lane). For journey: journey-flow (sequential), journey-dependency (cross-swimlane). For captable: captable-share-transfer or captable-issuance.
colorNo
labelNo
styleNo
fromIdYesSource block.
animatedNo
toAnchorNo
fromAnchorNo
strokeWidthNo
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. Changed5 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 / fromId / description
      Previous value: -"Cellule source."New value: +"Source block."
    • changedInput schema / properties / id / description
      Previous value: -"ID unique de la dépendance."New value: +"Unique ID of the dependency."
    • changedInput schema / properties / toId / description
      Previous value: -"Cellule destination."New value: +"Destination block."
    • changedInput schema / properties / type / description
      Previous value: -"Type de connexion. Pour arch : arch-sync (HTTP), arch-async (queue), arch-db (SQL), arch-event (stream), arch-data (S3). Pour process : process-sequence (enchaînement), process-message (inter-lane). Pour journey : journey-flow (séquentiel), journey-dependency (cross-swimlane). Pour captable : captable-share-transfer ou captable-issuance."New value: +"Connection type. For arch: arch-sync (HTTP), arch-async (queue), arch-db (SQL), arch-event (stream), arch-data (S3). For process: process-sequence (sequence), process-message (inter-lane). For journey: journey-flow (sequential), journey-dependency (cross-swimlane). For captable: captable-share-transfer or captable-issuance."
  2. First observed

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false), lowering the burden. The description adds the semantic mapping of connection types, but says nothing about duplicate-edge behavior, whether self-loops are allowed, cross-kind edges, or authorization — beyond what the schema's expectedProjectId already notes about refusal on missing access.

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?

A single dense sentence, front-loaded with the core action, followed by a scannable kind → type mapping. Every clause earns its place; the only mild waste is overlap with the schema's `type` description.

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

Completeness3/5

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

For a mutating, 12-parameter tool with no output schema, the definition covers the hardest decision (which type to use) but omits sibling differentiation, preconditions, and result behavior. Adequate to invoke for a user who already knows which tool they want, incomplete for an agent choosing among the many add_*/connect_* siblings.

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 only 42% across 12 parameters, so the description must carry weight — and it does for the most complex parameter: it maps each `type` enum value to a kind and adds meaning beyond the schema (HTTP/gRPC vs queue vs SQL vs event stream; dashed for process-message). It still leaves id, label, style, animated, anchors, strokeWidth, and color entirely to the schema, so it only partially compensates.

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

Purpose4/5

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

States a specific verb and resource — 'Creates a dependency (arrow) between two nodes' — and adds the kind-specific type dimension. However, it never distinguishes itself from sibling tools like add_dependency or update_dependency, which plausibly do overlapping work, so an agent cannot route confidently from the description alone.

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

Usage Guidelines3/5

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

The type-per-kind list implicitly tells the agent which argument values belong to which diagram kind, which is useful usage context. But there is no explicit when-to-use vs add_dependency/add_relation, no stated preconditions (do both nodes have to exist? must they be the same kind?), and no failure guidance.

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.