Skip to main content
Glama
Pakawat-Dev

IEC 62304 Requirements MCP Server

by Pakawat-Dev

IEC 62304 Class C Requirements Management MCP Server

A Model Context Protocol (MCP) server for managing software requirements in compliance with IEC 62304 Class C medical device software standards.

Features

  • ✅ Full IEC 62304 Class C compliance

  • 📋 Software requirement management with versioning

  • 🔗 Complete traceability matrix generation

  • 📊 Requirements dashboard and statistics

  • 📝 Automated SRS document generation

  • 🔒 Risk management integration (ISO 14971)

  • 📚 Comprehensive audit trail

Related MCP server: eazy-ba

Installation

# Clone or create project directory
mkdir iec62304-mcp-requirements
cd iec62304-mcp-requirements

# Install with uv
uv sync

Usage with Claude Desktop

  1. Add to Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on Mac):

{
  "mcpServers": {
    "iec62304-requirements": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/iec62304-mcp-requirements",
        "run",
        "src/server.py"
      ]
    }
  }
}
  1. Restart Claude Desktop

Available Tools

  • create_requirement - Create new software requirement

  • get_requirement - Retrieve requirement details

  • update_requirement - Update with version control

  • get_requirement_history - View version history

  • create_traceability_link - Link requirements to other artifacts

  • search_requirements - Search and filter requirements

  • generate_traceability_matrix - Export traceability matrix

  • generate_srs_document - Generate SRS documentation

  • get_dashboard_statistics - View requirements statistics

  • create_risk_control - Create risk control with linkage

IEC 62304 Compliance

This tool implements:

  • Section 5.1.1: Requirements traceability

  • Section 5.2: Software requirements analysis

  • Section 8: Configuration management

  • ISO 14971 risk management integration

License

MIT License

Available Tools

10 tools
create_requirementA

Create a new software requirement (IEC 62304 Section 5.2.2)

Args: req_id: Unique requirement ID (e.g., SWR-001) title: Short descriptive title (10-200 chars) description: Detailed requirement description (min 20 chars) category: functional, performance, interface, safety, security, usability priority: critical, high, medium, low created_by: Name of person creating requirement safety_classification: class_a, class_b, or class_c (default: class_c) rationale: Justification for the requirement (optional) acceptance_criteria: Verification criteria (optional)

Returns: Success message with requirement ID

Example: create_requirement( req_id="SWR-001", title="User Authentication Required", description="The system shall authenticate users using bcrypt algorithm with minimum 12 rounds before granting access to patient data", category="security", priority="critical", created_by="John Doe", rationale="Required for HIPAA compliance" )

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
req_idYes
categoryYes
priorityYes
rationaleNo
created_byYes
descriptionYes
acceptance_criteriaNo
safety_classificationNoclass_c

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It discloses parameter constraints (title 10-200 chars, description min 20), optional fields, defaults (safety_classification default class_c), and return value (success message with ID). It does not specify error behavior for duplicate IDs or permission requirements, but covers the essential creation behavior.

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

Conciseness5/5

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

The description is well-structured with a one-line summary, Args list, Returns line, and an example. Every section adds necessary information without redundancy. It is efficiently organized and front-loaded with purpose.

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?

The description covers all nine parameters, includes a concrete example, and states the return value. Though it doesn't enumerate error scenarios, the presence of an output schema (not shown) and the comprehensive parameter documentation make it complete enough for a create tool.

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

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description's Args section provides meanings, valid enums, constraints, and default for every parameter. The example demonstrates realistic usage. This fully compensates for the schema's lack of descriptions, adding significant semantic value.

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 opens with 'Create a new software requirement', which uses a specific verb and resource, and specifies the IEC 62304 Section 5.2.2 standard. This clearly differentiates it from sibling tools like update_requirement and get_requirement by defining its distinct creation role.

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?

The description clearly states this is for creating a new requirement, which implies its use case. However, it does not explicitly exclude alternatives or mention update_requirement for modifications, so it provides clear context but no explicit when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_risk_controlA

Create risk control with requirement linkage (ISO 14971 integration)

Args: risk_id: Unique risk ID (e.g., RK-001) hazard_description: Description of the hazard severity: Catastrophic, Critical, Marginal, or Negligible probability: Frequent, Probable, Occasional, Remote, or Improbable control_measures: Risk mitigation measures description requirement_id: Linked requirement ID (optional)

Returns: Success message with risk ID and calculated risk level

ParametersJSON Schema
NameRequiredDescriptionDefault
risk_idYes
severityYes
probabilityYes
requirement_idNo
control_measuresYes
hazard_descriptionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description must carry the full burden. It states the tool creates a risk control and returns a success message with a calculated risk level, which gives useful behavioral context. However, it does not disclose prerequisites (e.g., requirement existence), authorization needs, or side effects beyond creation, leaving room for more transparency.

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

Conciseness5/5

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

The description is well-structured with a clear purpose, an Args list, and a Returns section. Every line adds value, avoids redundancy, and front-loads the core function. It is appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is sufficiently complete for a creation tool with an output schema. It provides an overview of inputs, the return format, and the ISO 14971 context. It could optionally mention that requirement_id is optional and what happens if omitted, but this is a minor gap given the moderate complexity.

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

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description fully compensates by providing meaningful explanations for all six parameters. It lists allowed values for severity and probability, which is essential and not present in the schema. Each parameter gets a concise, useful description, going well beyond the schema's bare titles.

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 uses a specific verb+resource construction ('Create risk control') and adds the ISO 14971 integration context. This clearly distinguishes it from sibling tools that all focus on requirements and documents, making the tool's purpose 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?

The description implies usage for creating risk controls within an ISO 14971 framework. While it does not explicitly list alternatives or exclusions, the context is clear enough given that siblings are requirement-focused. The lack of explicit 'when to use' is a minor gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_srs_documentA

Generate Software Requirements Specification (IEC 62304 Section 5.2.6)

Args: export_path: File path for SRS document (default: docs/SRS_Document.md)

Returns: Success message with file path

ParametersJSON Schema
NameRequiredDescriptionDefault
export_pathNodocs/SRS_Document.md

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations present, the description carries the full burden. It mentions a return value but does not disclose whether the tool overwrites existing files, requires permissions, or the format of the generated content. These behavioral traits remain unclear.

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

Conciseness5/5

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

The description is concise and well-structured: it states the core purpose first, then lists the argument and return value. No filler or redundant content, every line earns its place.

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 one-parameter generation tool, the basics are covered: purpose, argument, and return value. However, missing usage alternatives and overwrite behavior leave clear gaps, making it only minimally complete.

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?

The description explicitly explains export_path as the file path for the SRS document and provides a default value, fully compensating for the absent schema description. This gives the agent clear meaning for the parameter.

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 clearly states the tool generates a Software Requirements Specification with a specific standard reference (IEC 62304 Section 5.2.6), which distinguishes it from sibling tools like generate_traceability_matrix or requirement CRUD operations.

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?

No guidance is provided about when to use this tool versus alternatives. The description only defines what it does, not when it should be invoked, leaving the agent without explicit decision-making information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_traceability_matrixA

Generate complete traceability matrix (IEC 62304 Section 5.1.1)

Args: export_path: File path for CSV export (default: docs/traceability_matrix.csv)

Returns: Success message with file path

ParametersJSON Schema
NameRequiredDescriptionDefault
export_pathNodocs/traceability_matrix.csv

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

There are no annotations, and the description does not disclose side effects. It implies creation of a CSV file via export_path, but it does not state that the tool reads existing requirements/links, writes to disk, or overwrites files. The 'Returns' section only describes the success message, not behavioral implications like mutation or dependencies. This lack of transparency leaves the agent uncertain about the operational consequences.

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

Conciseness5/5

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

The description is extremely concise and well-structured, with a clear one-line purpose, an Args section, and a Returns section. Every word adds value, and the output format is immediately scannable. No filler or redundancy exists.

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?

The tool is simple, but the description leaves out important operational context: it does not state that the matrix is generated from existing requirements/links, nor does it explicitly mention that a file will be created (a side effect). The return value is covered, but the prerequisites and data dependencies are missing. Given the presence of an output schema, the return is adequately addressed, but overall the description is not fully complete for an agent to use it safely without additional assumptions.

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?

The only parameter, export_path, is briefly explained in the Args section as 'File path for CSV export' with a default. This adds meaning beyond the schema's bare property definition, clarifying the file format (CSV) and the purpose. While simple, the description sufficiently compensates for the lack of schema descriptions, though it omits details like path handling (relative vs absolute, directory creation) which would require a higher score.

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 clearly states the tool's function: generating a complete traceability matrix, with a specific reference to IEC 62304 Section 5.1.1. The verb 'generate' and resource 'traceability matrix' make the intent unambiguous, and it is distinct from sibling tools like generate_srs_document or create_traceability_link.

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?

The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention any prerequisites (e.g., existing requirements or traceability links) or situations where one would prefer this over other tools such as generate_srs_document. The reference to IEC 62304 implies a compliance context but does not serve as clear usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dashboard_statisticsA

Get requirements dashboard statistics

Returns: Formatted statistics summary including counts by status, category, and traceability coverage

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It mentions the output format but does not explicitly state that the operation is read-only, has no side effects, or any permissions requirements. The 'Get' verb implies a read, but this is not explicitly disclosed.

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

Conciseness5/5

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

The description is succinct, immediately states the purpose, and includes a brief 'Returns' section. Every sentence adds value and there is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple no-parameter statistics tool, the description provides enough information about the output. It does not mention any limitations (e.g., scope, freshness of data), but given the tool's simplicity, this is acceptable. The presence of an output schema also reduces the need to describe return values in detail.

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?

The input schema has zero parameters, so schema coverage is 100% vacuously and baseline is 4. The description adds no parameter information because there are none to describe. It correctly implies the tool requires no arguments.

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 clearly states the tool's function with a specific verb ('Get') and resource ('requirements dashboard statistics'). The 'Returns' line elaborates on the output, making it distinct from sibling tools like get_requirement or generate_traceability_matrix.

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?

The description implies usage when dashboard statistics are needed, but it provides no explicit guidance on when to choose this over alternatives such as generate_traceability_matrix or search_requirements. There are no stated exclusions or preferred contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_requirementA

Retrieve a requirement by ID

Args: req_id: Requirement ID (e.g., SWR-001)

Returns: Formatted requirement details including traceability links

ParametersJSON Schema
NameRequiredDescriptionDefault
req_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the return format ('Formatted requirement details including traceability links') and the non-mutating verb 'Retrieve' implies read-only behavior. However, it does not disclose error handling, permissions, or explicit side-effect confirmation.

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

Conciseness5/5

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

The description is exceptionally concise with a clean structure: a one-line purpose, an Args block explaining the parameter, and a Returns block. Every sentence contributes value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple parameterless-by-schema tool with an output schema, the description sufficiently covers what the tool does and what it returns. It could be improved with a note about edge cases or alternatives, but given low complexity, it is adequate.

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?

The schema provides no description for req_id, but the description adds 'Requirement ID (e.g., SWR-001)', giving context and an example. This meaningfully compensates for the schema's lack of parameter description.

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 clearly states 'Retrieve a requirement by ID', specifying the exact operation and resource. It distinguishes from siblings like create_requirement, update_requirement, and get_requirement_history, which involve different actions or scopes.

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?

The description implies usage for direct ID lookup but never explicitly says when to use this vs. alternatives like search_requirements. No exclusions or alternative recommendations are provided, so the guideline is minimal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_requirement_historyA

Get complete version history (IEC 62304 Section 8.1.2)

Args: req_id: Requirement ID

Returns: Formatted version history with all changes

ParametersJSON Schema
NameRequiredDescriptionDefault
req_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the behavioral disclosure burden. It states 'Get' and 'Returns', implying a read-only operation, but does not explicitly confirm no side effects, required permissions, or any other behavioral traits. The standard reference adds context but not operational transparency.

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

Conciseness5/5

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

The description is brief and front-loaded with the purpose, followed by a clear Args/Returns structure. Every line earns its place without unnecessary fluff.

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?

The tool is simple with one parameter and an output schema, so the description doesn't need to detail return values. However, it lacks usage guidance and behavioral safety disclosure, which are gaps for full completeness.

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?

The schema provides only a title 'Req Id', while the description explains 'req_id: Requirement ID', adding semantic meaning. This compensates for the 0% schema coverage, though it doesn't specify format or examples.

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 clearly states 'Get complete version history' with a specific verb and resource, and the IEC 62304 reference adds concrete context. It is distinct from siblings like get_requirement and search_requirements, which focus on current state or queries.

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?

The description implies use when version history is needed, but does not explicitly state when to prefer this over alternatives or exclude other tools. No sibling comparisons are given, leaving the reader to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_requirementsA

Search and filter requirements

Args: status: Filter by status - draft, reviewed, approved, implemented, verified (optional) category: Filter by category - functional, performance, interface, safety, security, usability (optional) safety_class: Filter by safety classification - class_a, class_b, class_c (optional) search_text: Search in title and description (optional)

Returns: List of matching requirements

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNo
categoryNo
search_textNo
safety_classNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It states that it returns a list of matching requirements and lists valid filter values, but does not mention behavior such as combining filters (AND vs OR), handling of empty filters, pagination, or ordering. The read-only nature is implied by 'search' but not explicit.

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

Conciseness5/5

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

The description is concise and well-structured: a one-line summary, a bulleted Args list, and a Returns line. Every sentence earns its place with no redundant information. The layout is easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only search tool with 4 optional parameters, the description covers the purpose and all parameter semantics. It lacks details on edge cases like empty filters or result ordering, but since an output schema exists, return value details are likely covered there. The description is nearly complete for its complexity.

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

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides only names and types with zero description coverage. The description compensates by enumerating valid values for status, category, and safety_class, and clarifies that search_text searches title and description. This adds significant semantic meaning beyond the schema.

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 states 'Search and filter requirements' which is a specific verb+resource combination. It distinguishes from siblings like get_requirement (which likely retrieves a single requirement) by focusing on search and filtering. The Args list further clarifies the scope.

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?

The description implies usage for searching and filtering requirements but does not explicitly mention when to use this tool versus alternatives like get_requirement. There is no 'when-to-use' or 'when-not-to-use' guidance, leaving the context to be inferred from the function name and sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_requirementA

Update requirement with version control (IEC 62304 Section 8)

Args: req_id: Requirement ID to update changed_by: Name of person making change change_reason: Reason for the change (required for audit) title: New title (optional) description: New description (optional) status: New status - draft, reviewed, approved, implemented, verified (optional) priority: New priority - critical, high, medium, low (optional)

Returns: Success message with new version number

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
req_idYes
statusNo
priorityNo
changed_byYes
descriptionNo
change_reasonYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description must disclose behavior on its own. It does so by mentioning version control, the mandatory change_reason for audit, and that a new version number is returned. It does not spell out every side effect, but it covers the most important behavioral traits for a mutation tool in a regulated environment.

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

Conciseness5/5

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

The description is well-structured: a one-sentence purpose, a compact Args list with clear per-parameter semantics, and a Returns line. No redundant information or fluff; every sentence adds value.

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 7-parameter mutation tool with no annotations, the description provides complete context: the update purpose, version control, audit rationale, all parameter meanings, allowed values, and the return type. The presence of an output schema is not necessary because the Returns line covers the outcome.

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

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description is the only source of parameter meaning. It lists all 7 parameters with explicit explanations, marks required ones, and even enumerates allowed values for status and priority. This fully compensates for the sparse schema.

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 opens with 'Update requirement with version control (IEC 62304 Section 8)', which clearly identifies the verb (update), the resource (requirement), and a key differentiator (version control/IEC 62304). This distinguishes it from siblings like create_requirement, get_requirement, and get_requirement_history.

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?

The description states the purpose and introduces an audit requirement ('change_reason: Reason for the change (required for audit)'), indicating when this tool should be used in a regulated workflow. It does not explicitly name alternatives or exclusions, but the context is clear enough to guide appropriate use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updatesv1.0.0
    • First observedcreate_requirement
    • First observedcreate_risk_control
    • First observedcreate_traceability_link
    • First observedgenerate_srs_document
    • First observedgenerate_traceability_matrix
    • First observedget_dashboard_statistics
    • First observedget_requirement
    • First observedget_requirement_history
    • First observedsearch_requirements
    • First observedupdate_requirement

TDQS

A4.1/5.0

Scored across 10 tools

Disambiguation5/5

Each tool targets a distinct operation: requirement CRUD/history, traceability link creation and matrix generation, SRS export, dashboard stats, and risk control creation. There is no meaningful overlap in purpose, and the argument names reinforce the boundaries.

Naming Consistency5/5

All tools follow the same snake_case verb_noun pattern (create_requirement, get_requirement_history, generate_srs_document). The consistency makes the action and resource predictable across the entire server.

Tool Count5/5

Ten tools is well-scoped for an IEC 62304 requirements management server, covering creation, retrieval, update, history, search, traceability, export, dashboard, and risk control. No tool feels redundant or unnecessary, and the count stays within the ideal range.

Completeness4/5

Core requirement lifecycle and traceability workflows are covered, including versioned updates, history, matrix generation, and SRS export. Minor gaps exist for deletion/obsoletion of requirements and full risk-control management (only create_risk_control is provided), but these are workable within the stated regulatory context.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers