Skip to main content
Glama

Update a node

update_node

Partial update of a node. Patchable fields: label, type, parent, season, description, tags, metadata, sproutedAt. metadata is merged key by key: only the keys you send change, keys you leave out (commits that record_commit accumulated, transplanted, and so on) are kept, and a key sent as null is removed. So to change implements, send just { metadata: { implements: [...] } }. Type change reclassifies role; parent change recomputes the ltree path automatically. On a grown (past-season) node, only the tree's shape and timeline are locked — parent, season, type and sproutedAt are rejected. Content fields (label, description, metadata, tags) stay editable, so you can keep metadata.implements current when code moves without reopening transplanting. Moving any node into a past season is rejected. Both restrictions lift while the ground is transplanting (project.transplanting=true), so historical structure can be reconstructed (see umtri://rules/transplant). Same protocol validation as create_node — reject on hierarchy violations, warn on soft issues.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "slug": "<slug>",
      "id": "<id>",
      "patch": "<patch>"
    },
    "name": "update_node"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesNode id.
slugYesGround slug.
patchYesOnly the fields you want to change.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations supplied, the description carries the full burden and discloses key behaviors: metadata merge semantics with null removal, automatic ltree path recomputation on parent change, role reclassification on type change, and detailed rejection rules for grown nodes and past seasons. It also describes protocol validation outcomes (reject vs. warn) and the transplanting exception, giving the agent a rich operational picture.

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?

The description is front-loaded with the core purpose and then provides layered details about merge semantics and restrictions. It is dense and informative, but some content (e.g., the example in parentheses) could be trimmed without losing clarity.

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?

Given the tool's complexity (nested patch object, conditional restrictions, validation behavior) and the absence of annotations or an output schema, the description covers everything an agent needs to invoke it correctly: allowable fields, merge mechanics, side effects, and error conditions.

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 description coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema by explaining consequences of specific parameters: type changes reclassify role, parent changes recompute the ltree path, and sproutedAt is intended only for back-filling historical projects. It also clarifies the metadata merge behavior in practical terms, though it largely repeats the schema for that field.

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 description explicitly states 'Partial update of a node' and enumerates the patchable fields, making it immediately distinguishable from sibling tools like create_node and delete_node. The verb and resource are specific and unambiguous.

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 provides clear conditions for when the update is allowed (e.g., grown nodes restrict structural fields, moving into a past season is rejected) and notes that restrictions lift during transplanting. However, it does not explicitly name an alternative tool or contrast with a full-update sibling, leaving some inference to the agent.

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.