Skip to main content
Glama

Nestproof: Graded pattern files your LA factory signs off before the cut

Change a requirement by field

edit_requirement
Idempotent

Set fields by name ({"op":"set","values":{...}}, an empty value clears) or change the list ({"op":"add"|"update"|"remove"|"replace", ...}), exactly as given: no reading. Use it to answer the open question when the answer is a value.

Input Schema

NameRequiredDescriptionDefault
idYesThe requirement id from an earlier answer
opsYes
op_idNo
tokenYesIts private token (also the receipt token of the request it is sent as); keep it private
base_revisionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

B3.4/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, idempotentHint=true, destructiveHint=false, openWorldHint=false). The description adds two useful traits beyond that: an empty value clears the field, and the payload is applied 'exactly as given: no reading' — i.e. no read-back or validation of the result. It does not explain what happens on revision conflict (base_revision), how op_id interacts with the idempotency hint, whether multiple ops are atomic, or what the call returns despite there being no output schema.

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

Conciseness3/5

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

It is short and packs real information into few words, but it is front-loaded with JSON snippets instead of a plain statement of what the tool does, and phrases like 'exactly as given: no reading' and 'the open question' force the agent to decode intent. Some compaction costs clarity here.

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 5-parameter mutation tool with no output schema and only 40% schema coverage, the description covers the ops payload and the clear-on-empty rule but omits conflict handling via base_revision, the 30-op limit, atomicity of multi-op batches, and any statement of what a successful call returns. Enough to attempt a call, not enough to call it safely in a concurrent setting.

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 40%, and the description compensates for the most complex parameter by enumerating the ops grammar ({"op":"set","values":{...}}, add/update/remove/replace, empty clears) that the schema leaves as an untyped object array. It leaves op_id (80-char limit) and base_revision (optimistic concurrency) entirely unexplained, so the compensation is substantial but incomplete.

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?

The description states a specific verb and resource: set named fields on a requirement, or add/update/remove/replace list entries, with concrete op payload shapes. 'No reading' implicitly separates it from the read-side sibling get_requirement, though that sibling is never named. An agent can tell what the tool mutates, but the phrasing is telegraphic rather than plainly stated.

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?

'Use it to answer the open question when the answer is a value' gives a conditional trigger, which is more than nothing. However, it depends on unstated domain vocabulary ('the open question') and never names the alternative path (e.g. interpret_requirement or answer_remedy) for when the answer is not a value. The when-not guidance is only implied.

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