Skip to main content
Glama
kevinlin

Spec-driven Development MCP Server

by kevinlin

spec_coding_requirements_confirmed

Confirm completion of requirements collection to transition from specification to design phase in structured development workflows.

Instructions

Confirm the completion of requirements collection and proceed to the design phase

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
session_idYesSession identifier
feature_nameYesFeature name

Implementation Reference

  • The main handler function that confirms requirements completion, logs the event, and returns a markdown-formatted message advancing the workflow to the design phase.
    export async function requirementsConfirmed(
      params: RequirementsConfirmedParams
    ): Promise<string> {
      const { session_id, feature_name } = params;
      console.error(`[MCP] Requirements confirmed for feature: ${feature_name}`);
      
      return `# ✅ Requirements Gathering Completed
    
    ## Generated Requirements Document:
    📄 "docs/specs/${feature_name}/requirements.md"
    
    The requirements document contains complete user stories and EARS-format acceptance criteria.
    
    ---
    
    ## Next Stage: Design Document (3/5)
    
    ### Workflow Progress:
    - [x] 1. Goal Collection ✅
    - [x] 2. **Requirements Gathering** ✅
    - [ ] 3. **Design Document** ← Next Stage
    - [ ] 4. Task Planning
    - [ ] 5. Task Execution
    
    Now please call \`spec_coding_design_start\` to begin the technical design stage.
    
    **Session Information**:
    - Session ID: \`${session_id}\`
    - Feature Name: \`${feature_name}\`
    - Requirements: ✅ Completed`;
    }
  • Input schema definition for the tool, specifying session_id and feature_name as required string parameters.
    inputSchema: {
      type: 'object',
      properties: {
        session_id: { 
          type: 'string', 
          description: 'Session identifier' 
        },
        feature_name: { 
          type: 'string', 
          description: 'Feature name' 
        }
      },
      required: ['session_id', 'feature_name']
    }
  • src/server.ts:78-95 (registration)
    Tool registration in the listTools response, including name, description, and input schema.
    {
      name: 'spec_coding_requirements_confirmed',
      description: 'Confirm the completion of requirements collection and proceed to the design phase',
      inputSchema: {
        type: 'object',
        properties: {
          session_id: { 
            type: 'string', 
            description: 'Session identifier' 
          },
          feature_name: { 
            type: 'string', 
            description: 'Feature name' 
          }
        },
        required: ['session_id', 'feature_name']
      }
    },
  • src/server.ts:219-221 (registration)
    Switch case in callTool handler that invokes the requirementsConfirmed function for this tool name.
    case 'spec_coding_requirements_confirmed':
      result = await requirementsConfirmed(args as any);
      break;
  • TypeScript interface defining the input parameters for the handler function, matching the tool schema.
    export interface RequirementsConfirmedParams {
      session_id: string;
      feature_name: string;
    }
Behavior2/5

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

No annotations are provided, so the description carries full burden. It implies a state transition ('proceed to the design phase') but doesn't disclose behavioral traits like whether this is a read-only or mutating operation, what happens if requirements aren't complete, if it requires specific permissions, or what the response looks like. For a tool with no annotations, this leaves critical gaps in understanding its effects.

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?

The description is a single, efficient sentence that states the tool's action concisely. It's front-loaded with the main purpose, though it could be more structured by explicitly mentioning parameters or context. There's no wasted text, earning it a high score for brevity.

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

Completeness2/5

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

Given the tool's complexity (involving phase transitions in a workflow), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'confirming' entails, what 'proceed' does, or the expected outcome. For a tool with 2 parameters and siblings indicating a multi-step process, more detail is needed to guide proper use.

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%, with both parameters (session_id and feature_name) documented in the schema. The description adds no meaning beyond what the schema provides—it doesn't explain how these parameters relate to confirming requirements or proceeding to design. Baseline is 3 since the schema does the heavy lifting, but no extra value is added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool's purpose as confirming requirements collection completion and proceeding to design phase, which is clear but vague. It uses the verb 'confirm' and mentions 'requirements collection' and 'design phase', but doesn't specify what resource or system this applies to, nor does it distinguish from sibling tools like 'spec_coding_requirements_start' or 'spec_coding_design_start'.

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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., after requirements collection is done), exclusions, or how it differs from siblings such as 'spec_coding_requirements_start' (which might start requirements) or 'spec_coding_design_confirmed' (which confirms design). Without this, users must infer usage from the name alone.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kevinlin/spec-driven-dev-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server