Skip to main content
Glama
kevinlin

Spec-driven Development MCP Server

by kevinlin

spec_coding_design_start

Initiate design documentation phase with structured guidance for creating technical design documents based on requirements specifications.

Instructions

Start the design documentation phase and provide guidance for creating design documents

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
session_idYesSession identifier
feature_nameYesFeature name

Implementation Reference

  • The designStart function that executes the tool logic: logs the start, reads a design template, and returns formatted instructions for the design documentation phase including progress markers and session info.
    export async function designStart(
      params: DesignStartParams
    ): Promise<string> {
      const { session_id, feature_name } = params;
      console.error(`[MCP] Starting design phase for feature: ${feature_name}`);
      
      // Use gen-design.md template
      const template = await readTemplate('gen-design.md', {
        feature_name,
        session_id
      });
      
      return `# 📝 Design Documentation Stage (3/5)
    
    ## Feature: ${feature_name}
    
    ### Workflow Progress:
    - [x] 1. Goal Collection ✅
    - [x] 2. Requirements Gathering ✅
    - [x] 3. **Design Documentation** ← Current Stage
    - [ ] 4. Task Planning
    - [ ] 5. Task Execution
    
    ---
    
    ${template}
    
    ---
    
    **Important**:
    - Please create design document according to the above guidelines
    - **Only when you explicitly confirm the design is complete can you call** \`spec_coding_design_confirmed\` tool
    - **Never** call the next stage tool before the user **explicitly confirms the design**
    
    **Session Information**:
    - Session ID: \`${session_id}\`
    - Feature Name: \`${feature_name}\`
    - Requirements: \`docs/specs/${feature_name}/requirements.md\``;
    }
  • Input schema for the spec_coding_design_start tool defining required session_id and feature_name 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:96-112 (registration)
    Registration of the spec_coding_design_start tool in the server's tools list, specifying name, description, and input schema.
    {
      name: 'spec_coding_design_start',
      description: 'Start the design documentation phase and provide guidance for creating design documents',
      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:223-225 (registration)
    Switch case in the CallToolRequest handler that routes calls to spec_coding_design_start to the designStart implementation.
    case 'spec_coding_design_start':
      result = await designStart(args as any);
      break;
  • TypeScript interface defining the input parameters for the designStart handler, matching the tool schema.
    export interface DesignStartParams {
      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 the full burden of behavioral disclosure. It mentions starting a phase and providing guidance, but it doesn't clarify what 'starting' entails (e.g., does it create resources, set states, or trigger processes?), what the guidance includes, or any side effects like permissions or rate limits. This is a significant gap for a tool with no annotation coverage.

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 a single, efficient sentence that is front-loaded with the core action ('Start the design documentation phase') and includes the outcome. There is no wasted text, making it highly concise and well-structured.

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 complexity of initiating a design phase in a coding workflow, the description is incomplete. With no annotations, no output schema, and minimal behavioral details, it fails to provide enough context for an agent to understand what the tool does beyond a high-level statement. It should cover more about the process, outcomes, and integration with siblings.

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?

The input schema has 100% description coverage, with clear documentation for both parameters ('session_id' and 'feature_name'). The description adds no additional meaning beyond the schema, such as explaining how these parameters influence the design phase or guidance. Baseline 3 is appropriate since the schema does the heavy lifting.

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 clearly states the tool's purpose with a specific verb ('Start') and resource ('design documentation phase'), and it adds value by mentioning the outcome ('provide guidance for creating design documents'). However, it doesn't explicitly differentiate this tool from its siblings like 'spec_coding_workflow_start' or 'spec_coding_tasks_start', which might also initiate phases in a workflow.

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 specify prerequisites (e.g., whether other phases like 'requirements_confirmed' must be completed first), exclusions, or how it fits into the broader workflow with its siblings, leaving the agent to infer context from tool names 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-coding-mcp'

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