Skip to main content
Glama

Entalpa Requirements MCP

Requirements Create

requirements_create

Create a requirement. Put requirement text in content.requirement and the human id in content.id, inside requirement.content; put source_story_ids, source_requirement_ids, and subsystem_id beside content inside requirement.

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.

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

C2.9/5.0
Behavior2/5

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

Annotations already establish the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false), so the description does not need to restate that. It adds no behavioral context of its own: nothing about duplicate human ids, what happens when content.id is omitted, lifecycle defaults, or side effects on linked stories/subsystems. The only added content is structural placement advice, which belongs to the parameter dimension.

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?

One short sentence plus a single dense placement sentence, with the create action front-loaded. The second half is clause-heavy but every clause maps to a real nesting decision the caller must make. No filler.

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?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. For a tool with a deeply nested required object, however, the description says nothing about creation failure modes (duplicate content.id, unknown UUID references) or default lifecycle/flags. Adequate but with visible gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/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, and the description mostly restates what the schema already says about nesting ('Keep text, human label and metadata in content. Relationship fields alongside content accept UUIDs only'). The emphasis on content.requirement/content.id and on source_story_ids/source_requirement_ids/subsystem_id is a helpful glovebox note for a deeply nested object, but it duplicates rather than extends the schema.

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 opens with a specific verb and resource: 'Create a requirement.' That is enough for an agent to distinguish it from requirements_delete/patch/update in the sibling list. It stops short of naming when this creation path is preferred over alternatives, so it stays at 4 rather than 5.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no statement of prerequisites (e.g. the project and any subsystem/story must already exist), and no routing against siblings like requirements_update or requirements_patch. The schema hints that omitted relationship lists preserve links in patches, but the description itself gives the agent nothing about choosing this tool.

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