Skip to main content
Glama

Update features

update_features
Destructive

Change a project's features by id: add (a feature, with optional children, under parentId or null for top level), update (name and/or description), move (to parentId, optional position), remove (the feature and every feature under it). Every feature needs a concise name and description. Changes apply in order as one atomic write against baseRevision from get_features; split a large restructure into several calls, each with the revision the previous one returned. Hands-off marks belong to the vibe coder: hands-off features and every feature under them cannot be changed, moved, removed, or added to. Stale writes are refused, as is a change to a feature the vibe coder has open for editing in the browser.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
changesYesChanges to apply in order: add, update, move, or remove.
projectIdYesId of the Project.
baseRevisionYesRevision returned by get_features.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only flag destructiveHint=true; the description goes far beyond, disclosing atomicity ("one atomic write"), in-order application, optimistic-concurrency via baseRevision, cascade behavior on remove ("the feature and every feature under it"), and the hands-off/editing-lock protections. These are exactly the behavioral traits an agent cannot infer from the schema.

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 operation list, then layers constraints; nearly every clause carries non-redundant information. It is a dense single paragraph that would scan faster as a bulleted list, but no sentence is filler.

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 destructive, multi-op, concurrency-sensitive mutation with no output schema, the description covers the operation grammar, atomicity, revision threading, and all refusal conditions an agent must anticipate. Nothing needed to invoke it correctly 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?

Schema coverage is 100%, so baseline is 3, but the description adds real meaning: parentId null means top level, position controls ordering, update accepts name and/or description, children are nested under add, and remove cascades. It stops short of explaining the revision/position interaction or id format, so it is not a full 5.

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?

Opens with a specific verb+resource ("Change a project's features by id") and then enumerates all four operations (add/update/move/remove) with their semantics, making it immediately distinguishable from the sibling read tool get_features.

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?

Explicitly routes to get_features for the baseRevision, explains how to split a large restructure into sequential calls each using the revision returned by the previous, and states three concrete refusal conditions (stale writes, hands-off subtrees, features open for browser editing). This is genuine when/when-not guidance with alternatives named.

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