Skip to main content
Glama

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 };

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