Skip to main content
Glama
kunwarVivek

mcp-github-project-manager

enhance_prd

Improve product requirements documents by adding missing elements, enhancing clarity, and providing AI-powered analysis for better project planning.

Instructions

Enhance an existing PRD with AI-powered improvements, adding missing elements, improving clarity, and providing comprehensive analysis

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
prdContentYes
enhancementTypeYes
focusAreasNo
includeResearchYes
targetAudienceYes
industryContextNo
addMissingElementsYes
improveExistingYes
validateQualityYes

Implementation Reference

  • Core handler function implementing the 'enhance_prd' tool. Orchestrates PRD enhancement using PRDGenerationService, validation, feature extraction, summary generation, and response formatting.
    async function executeEnhancePRD(args: EnhancePRDArgs): Promise<MCPResponse> {
      const prdService = new PRDGenerationService();
      
      try {
        // Enhance the PRD using AI
        const enhancedPRD = await prdService.enhancePRD({
          currentPRD: args.prdContent,
          enhancementType: args.enhancementType,
          focusAreas: args.focusAreas
        });
    
        // Validate the enhanced PRD if requested
        let validation;
        if (args.validateQuality) {
          validation = await prdService.validatePRDCompleteness(enhancedPRD);
        }
    
        // Extract features for analysis
        const features = await prdService.extractFeaturesFromPRD(JSON.stringify(enhancedPRD));
    
        // Generate enhancement summary
        const enhancementSummary = generateEnhancementSummary(
          args.prdContent, 
          enhancedPRD, 
          args.enhancementType,
          args.focusAreas
        );
    
        // Format response
        const summary = formatPRDEnhancement(
          enhancedPRD, 
          validation, 
          features, 
          enhancementSummary, 
          args
        );
        
        return ToolResultFormatter.formatSuccess('enhance_prd', {
          summary,
          enhancedPRD,
          validation,
          features,
          enhancementSummary,
          qualityScore: validation?.score || 0
        });
    
      } catch (error) {
        process.stderr.write(`Error in enhance_prd tool: ${error}\n`);
        return ToolResultFormatter.formatSuccess('enhance_prd', {
          error: `Failed to enhance PRD: ${error instanceof Error ? error.message : 'Unknown error'}`,
          success: false
        });
      }
    }
  • Zod schema defining input parameters for the enhance_prd tool, including PRD content, enhancement type, focus areas, and various enhancement options.
    // Schema for enhance_prd tool
    const enhancePRDSchema = z.object({
      prdContent: z.string().min(100).describe('The existing PRD content to enhance'),
      enhancementType: z.enum(['comprehensive', 'technical', 'user_focused', 'business_focused'])
        .describe('Type of enhancement to apply'),
      focusAreas: z.array(z.string()).optional()
        .describe('Specific areas to focus on (e.g., "user personas", "technical requirements")'),
      includeResearch: z.boolean().default(false)
        .describe('Whether to include market research and competitive analysis'),
      targetAudience: z.enum(['technical', 'business', 'mixed']).default('mixed')
        .describe('Target audience for the enhanced PRD'),
      industryContext: z.string().optional()
        .describe('Industry or domain context for enhancement'),
      addMissingElements: z.boolean().default(true)
        .describe('Whether to add commonly missing PRD elements'),
      improveExisting: z.boolean().default(true)
        .describe('Whether to improve existing sections'),
      validateQuality: z.boolean().default(true)
        .describe('Whether to validate and score the enhanced PRD')
    });
  • Registration of the enhancePRDTool in the central ToolRegistry singleton instance during construction.
    // Register AI task management tools
    this.registerTool(addFeatureTool);
    this.registerTool(generatePRDTool);
    this.registerTool(parsePRDTool);
    this.registerTool(getNextTaskTool);
    this.registerTool(analyzeTaskComplexityTool);
    this.registerTool(expandTaskTool);
    this.registerTool(enhancePRDTool);
    this.registerTool(createTraceabilityMatrixTool);
  • src/index.ts:459-460 (registration)
    Dispatch handler in main server that routes 'enhance_prd' tool calls to the executeEnhancePRD function.
    case "enhance_prd":
      return await executeEnhancePRD(args);
  • Helper service method called by the tool handler to perform the actual AI-powered PRD enhancement using AITaskProcessor.
    async enhancePRD(params: {
      currentPRD: PRDDocument | string;
      enhancementType: 'comprehensive' | 'technical' | 'user_focused' | 'business_focused';
      focusAreas?: string[];
      includeResearch?: boolean;
    }): Promise<PRDDocument> {
      try {
        const currentPRDContent = typeof params.currentPRD === 'string'
          ? params.currentPRD
          : JSON.stringify(params.currentPRD, null, 2);
    
        const enhancedPRD = await this.aiProcessor.enhancePRD({
          currentPRD: currentPRDContent,
          enhancementType: params.enhancementType,
          focusAreas: params.focusAreas
        });
    
        // If we started with a PRD object, preserve some original metadata
        if (typeof params.currentPRD === 'object') {
          enhancedPRD.id = params.currentPRD.id;
          enhancedPRD.createdAt = params.currentPRD.createdAt;
          enhancedPRD.author = params.currentPRD.author;
          enhancedPRD.version = this.incrementVersion(params.currentPRD.version);
        }
    
        return PRDDocumentSchema.parse(enhancedPRD);
      } catch (error) {
        process.stderr.write(`Error enhancing PRD: ${error instanceof Error ? error.message : String(error)}\n`);
        throw new Error(`Failed to enhance PRD: ${error instanceof Error ? error.message : 'Unknown error'}`);
      }
    }
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/kunwarVivek/mcp-github-project-manager'

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