Skip to main content
Glama

Entalpa Requirements MCP

Requirements Update

requirements_update

Update a requirement. Content merges by key: send only changed content keys, using arrays for metadata, to preserve existing scalar/list values. PUT resets omitted flags, lock, from_description, subsystem_id, source_story_ids and source_requirement_ids; include their current values to preserve them. Omitted lifecycle stays unchanged unless content.implementation_status supplies a recognized status. Prefer requirements_patch for partial edits.

Input Schema

NameRequiredDescriptionDefault
project_idYesProject UUID (database id).
requirementYesKeep text, human label and metadata in content. Relationship fields alongside content accept UUIDs only. Omitted or null relationship lists preserve links in patches; [] clears them. subsystem_id:null clears the subsystem.
requirement_idYesRequirement UUID.

Output Schema

NameRequiredDescriptionDefault
lockYesTrue to lock the requirement from LLM modifications.
flagsYesList of requirement flags/tags.
contentYesRequirement content object returned by the server.
lifecycleYesWhere the requirement stands. One of: draft, in_review, reviewed, in_progress, implemented, verified, blocked, rejected, superseded. The first six are a ladder from authored to tested; blocked, rejected and superseded are not progress. Writing content.implementation_status also moves this — in_progress, implemented, verified and blocked map across, while not_started is ignored rather than demoting a reviewed requirement.
project_idYesProject UUID (database id).
subsystem_idNoSubsystem UUID (database id).
requirement_idYesRequirement UUID (database id).
from_descriptionNoTrue if this requirement originated from the project description.
source_story_idsYesList of story UUIDs.
suspect_story_idsNoSource stories edited after this requirement was written from them. Non-empty means it may no longer say what the story asks: re-propagate the story (projects_propagate_stories), rewrite the requirement, or confirm it still holds (requirements_confirm_sources) before implementing it.
source_requirement_idsNoList of requirement UUIDs (database ids), not content.id.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations (which only declare readOnly=false, destructive=false, openWorld=false). It discloses the exact set of fields a PUT resets when omitted (flags, lock, from_description, subsystem_id, source_story_ids, source_requirement_ids), the merge-by-key semantics, and the lifecycle/implementation_status interaction. This is precisely the destructive-ish behavior context an agent needs and that annotations cannot convey.

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?

Four dense sentences, purpose front-loaded, each carrying non-redundant information. The clause about lifecycle and implementation_status is long but earns its place; overall tight, if slightly compressed for readability.

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 nested, 3-param mutation tool with an output schema present, the description covers the critical unknowns: merge vs replace semantics, which fields are reset, and which sibling to prefer. Return values need not be explained given the output schema, so nothing essential 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 the baseline is 3, but the description adds genuine semantic value: that content merges by key, that arrays should be used for metadata, and which top-level fields reset on omission versus persist. It does not restate every content field, but the merge/reset rules are the meaning the schema alone doesn't give.

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 (update) and resource (a requirement), and positions it against the sibling requirements_patch. However it does not restate the UUID-based selection in prose; the reader must infer 'a requirement' is selected by requirement_id, and the PUT-vs-merge distinction is only implied through the reset rules.

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?

Explicitly names the alternative: 'Prefer requirements_patch for partial edits,' which effectively tells the agent when-not to use this tool. It doesn't spell out an affirmative when-to-use (e.g. 'use for full replacement/flag resets'), leaving that to inference, so it stops short of a 5.

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