Skip to main content
Glama
kunwarVivek

mcp-github-project-manager

generate_prd

Create comprehensive Product Requirements Documents (PRDs) from project ideas using AI analysis and industry best practices to define requirements clearly.

Instructions

Generate a comprehensive Product Requirements Document (PRD) from a project idea using AI analysis and industry best practices

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
projectIdeaYes
projectNameYes
targetUsersNo
timelineNo
complexityYes
authorYes
stakeholdersNo
includeResearchYes
industryContextNo

Implementation Reference

  • Main handler function that executes the generate_prd tool logic, calling PRDGenerationService and formatting the response.
    async function executeGeneratePRD(args: GeneratePRDArgs): Promise<MCPResponse> {
      const prdService = new PRDGenerationService();
    
      try {
        // Generate comprehensive PRD from project idea
        const prd = await prdService.generatePRDFromIdea({
          projectIdea: args.projectIdea,
          projectName: args.projectName,
          targetUsers: args.targetUsers,
          timeline: args.timeline,
          complexity: args.complexity,
          author: args.author,
          stakeholders: args.stakeholders
        });
    
        // Validate PRD completeness
        const validation = await prdService.validatePRDCompleteness(prd);
    
        // Format response
        const summary = formatPRDGenerationSummary(prd, validation);
    
        return ToolResultFormatter.formatSuccess('generate_prd', {
          summary,
          prd,
          validation,
          completenessScore: validation.score,
          isComplete: validation.isComplete
        });
    
      } catch (error) {
        process.stderr.write(`Error in generate_prd tool: ${error}\n`);
    
        // Check if this is an AI availability error
        const errorMessage = error instanceof Error ? error.message : 'Unknown error';
        const isAIUnavailable = errorMessage.includes('AI service is not available') ||
                               errorMessage.includes('API key') ||
                               errorMessage.includes('provider');
    
        if (isAIUnavailable) {
          const aiErrorSummary = formatAIUnavailableMessage('generate_prd', errorMessage);
          return ToolResultFormatter.formatSuccess('generate_prd', {
            content: [{ type: 'text', text: aiErrorSummary }],
            success: false,
            aiAvailable: false
          });
        }
    
        return ToolResultFormatter.formatSuccess('generate_prd', {
          content: [{
            type: 'text',
            text: `# Failed to generate PRD\n\n**Error:** ${errorMessage}\n\nPlease check your input parameters and try again.`
          }],
          success: false
        });
      }
    }
  • Zod schema defining input parameters for the generate_prd tool.
    const generatePRDSchema = z.object({
      projectIdea: z.string().min(20).describe('The project idea or concept to create a PRD for'),
      projectName: z.string().min(3).describe('Name of the project'),
      targetUsers: z.array(z.string()).optional().describe('Target user groups'),
      timeline: z.string().optional().describe('Expected project timeline (e.g., "3 months", "Q1 2024")'),
      complexity: z.enum(['low', 'medium', 'high']).default('medium').describe('Expected project complexity'),
      author: z.string().describe('Author of the PRD'),
      stakeholders: z.array(z.string()).optional().describe('Project stakeholders'),
      includeResearch: z.boolean().default(false).describe('Whether to include market research and competitive analysis'),
      industryContext: z.string().optional().describe('Industry or domain context for the project')
    });
  • Registration of the generatePRDTool in the central ToolRegistry during built-in tools initialization.
    this.registerTool(generatePRDTool);
  • MCP server dispatcher that routes 'generate_prd' tool calls to the executeGeneratePRD handler.
    case "generate_prd":
      return await executeGeneratePRD(args);
  • ToolDefinition export used for registration, including name, description, schema, and examples.
    export const generatePRDTool: ToolDefinition<GeneratePRDArgs> = {
      name: "generate_prd",
      description: "Generate a comprehensive Product Requirements Document (PRD) from a project idea using AI analysis and industry best practices",
      schema: generatePRDSchema as unknown as ToolSchema<GeneratePRDArgs>,
      examples: [
        {
          name: "Generate PRD for task management app",
          description: "Create a comprehensive PRD for a new task management application",
          args: {
            projectIdea: "A modern task management application with AI-powered prioritization, team collaboration features, and integration with popular development tools like GitHub and Slack",
            projectName: "TaskFlow AI",
            targetUsers: ["software developers", "project managers", "small teams"],
            timeline: "6 months",
            complexity: "medium",
            author: "product-team",
            stakeholders: ["engineering", "design", "marketing"],
            includeResearch: true,
            industryContext: "productivity software"
          }
        }
      ]
    };
    
    // Export the execution function for the tool registry
    export { executeGeneratePRD };

Tool Definition Quality

Score is being calculated. Check back soon.

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