Skip to main content
Glama
emmron
by emmron

mcp__gemini__planner_pro

Plan projects interactively using templates, detect dependencies, and track progress efficiently. Ideal for managing timelines, team sizes, and project complexities in software development.

Instructions

Interactive project planning with templates, dependency detection, and progress tracking

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
complexityNoProject complexitymedium
project_descriptionYesProject description
project_typeNoProject typesoftware
team_sizeNoTeam size
timelineNoTarget timeline

Implementation Reference

  • The handler function that executes the tool's core logic: parses arguments, loads project templates based on type, generates detailed project plans via AI prompts, performs dependency analysis, saves the plan to storage, and returns a formatted response with plan ID and analysis.
        handler: async (args) => {
          const { project_description, project_type = 'software', timeline, team_size = 1, complexity = 'medium' } = args;
          validateString(project_description, 'project_description');
          
          const timer = performanceMonitor.startTimer('planner_pro');
          
          // Load project templates
          const templates = {
            software: {
              phases: ['Planning', 'Design', 'Development', 'Testing', 'Deployment'],
              standardTasks: ['Requirements gathering', 'Architecture design', 'Core development', 'Testing & QA', 'Documentation', 'Deployment setup']
            },
            web: {
              phases: ['Discovery', 'Design', 'Frontend', 'Backend', 'Integration', 'Launch'],
              standardTasks: ['User research', 'UI/UX design', 'Frontend development', 'Backend API', 'Database design', 'Testing', 'Launch']
            },
            mobile: {
              phases: ['Research', 'Design', 'Development', 'Testing', 'Store Submission'],
              standardTasks: ['Market research', 'UI design', 'Core development', 'Platform testing', 'App store optimization']
            },
            ai: {
              phases: ['Data Collection', 'Model Development', 'Training', 'Validation', 'Deployment'],
              standardTasks: ['Data gathering', 'Feature engineering', 'Model architecture', 'Training pipeline', 'Model validation', 'Production deployment']
            }
          };
          
          const template = templates[project_type] || templates.software;
          
          const planningPrompt = `Create a comprehensive project plan using the following framework:
    
    **Project**: ${project_description}
    **Type**: ${project_type}
    **Timeline**: ${timeline || 'To be determined'}
    **Team Size**: ${team_size}
    **Complexity**: ${complexity}
    
    **Template Framework**:
    Phases: ${template.phases.join(' → ')}
    Standard Tasks: ${template.standardTasks.join(', ')}
    
    Create a detailed plan including:
    
    1. **Executive Summary**
       - Project goals and objectives
       - Success criteria
       - Key deliverables
    
    2. **Phase Breakdown**
       - Detailed tasks for each phase
       - Dependencies between tasks
       - Resource requirements
       - Risk assessment
    
    3. **Timeline & Milestones**
       - Estimated duration for each phase
       - Critical path analysis
       - Key milestone dates
    
    4. **Resource Planning**
       - Team composition and roles
       - Skill requirements
       - External dependencies
    
    5. **Risk Management**
       - Potential risks and mitigation strategies
       - Contingency planning
       - Quality gates
    
    6. **Success Metrics**
       - KPIs and measurement criteria
       - Progress tracking methods
       - Review and adjustment points
    
    Make the plan actionable with specific tasks, clear dependencies, and realistic timelines for a team of ${team_size}.`;
    
          const plan = await aiClient.call(planningPrompt, 'main', { 
            complexity: complexity === 'enterprise' ? 'complex' : 'medium',
            maxTokens: 4000
          });
          
          // Generate dependency analysis
          const dependencyPrompt = `Analyze the project plan and create a dependency matrix:
    
    ${plan}
    
    Provide:
    1. Critical path identification
    2. Task dependencies (what depends on what)
    3. Potential bottlenecks
    4. Parallel execution opportunities
    5. Risk factors for delays`;
    
          const dependencies = await aiClient.call(dependencyPrompt, 'analysis');
          
          // Save plan to storage
          const planData = {
            id: Date.now().toString(),
            project_description,
            project_type,
            timeline,
            team_size,
            complexity,
            plan,
            dependencies,
            created: new Date().toISOString(),
            status: 'draft'
          };
          
          const storage_data = await storage.read('plans');
          if (!storage_data.plans) storage_data.plans = [];
          storage_data.plans.push(planData);
          await storage.write('plans', storage_data);
          
          timer.end();
          
          return `📋 **Enhanced Project Plan** (${project_type})
    
    **Plan ID**: ${planData.id}
    **Complexity**: ${complexity}
    **Team Size**: ${team_size}
    
    ${plan}
    
    ---
    
    🔗 **Dependency Analysis**
    
    ${dependencies}
    
    **Plan saved to storage for future reference and tracking.**`;
        }
  • Defines the input schema (parameters) for the tool, including required project_description and optional parameters like project_type, timeline, team_size, and complexity.
    parameters: {
      project_description: { type: 'string', description: 'Project description', required: true },
      project_type: { type: 'string', description: 'Project type', default: 'software' },
      timeline: { type: 'string', description: 'Target timeline' },
      team_size: { type: 'number', description: 'Team size', default: 1 },
      complexity: { type: 'string', description: 'Project complexity', default: 'medium' }
    },
  • Registers the tool 'mcp__gemini__planner_pro' as an object with description, parameters schema, and handler function within the enhanced-tools.js module, likely exported for MCP tool registration.
      'mcp__gemini__planner_pro': {
        description: 'Interactive project planning with templates, dependency detection, and progress tracking',
        parameters: {
          project_description: { type: 'string', description: 'Project description', required: true },
          project_type: { type: 'string', description: 'Project type', default: 'software' },
          timeline: { type: 'string', description: 'Target timeline' },
          team_size: { type: 'number', description: 'Team size', default: 1 },
          complexity: { type: 'string', description: 'Project complexity', default: 'medium' }
        },
        handler: async (args) => {
          const { project_description, project_type = 'software', timeline, team_size = 1, complexity = 'medium' } = args;
          validateString(project_description, 'project_description');
          
          const timer = performanceMonitor.startTimer('planner_pro');
          
          // Load project templates
          const templates = {
            software: {
              phases: ['Planning', 'Design', 'Development', 'Testing', 'Deployment'],
              standardTasks: ['Requirements gathering', 'Architecture design', 'Core development', 'Testing & QA', 'Documentation', 'Deployment setup']
            },
            web: {
              phases: ['Discovery', 'Design', 'Frontend', 'Backend', 'Integration', 'Launch'],
              standardTasks: ['User research', 'UI/UX design', 'Frontend development', 'Backend API', 'Database design', 'Testing', 'Launch']
            },
            mobile: {
              phases: ['Research', 'Design', 'Development', 'Testing', 'Store Submission'],
              standardTasks: ['Market research', 'UI design', 'Core development', 'Platform testing', 'App store optimization']
            },
            ai: {
              phases: ['Data Collection', 'Model Development', 'Training', 'Validation', 'Deployment'],
              standardTasks: ['Data gathering', 'Feature engineering', 'Model architecture', 'Training pipeline', 'Model validation', 'Production deployment']
            }
          };
          
          const template = templates[project_type] || templates.software;
          
          const planningPrompt = `Create a comprehensive project plan using the following framework:
    
    **Project**: ${project_description}
    **Type**: ${project_type}
    **Timeline**: ${timeline || 'To be determined'}
    **Team Size**: ${team_size}
    **Complexity**: ${complexity}
    
    **Template Framework**:
    Phases: ${template.phases.join(' → ')}
    Standard Tasks: ${template.standardTasks.join(', ')}
    
    Create a detailed plan including:
    
    1. **Executive Summary**
       - Project goals and objectives
       - Success criteria
       - Key deliverables
    
    2. **Phase Breakdown**
       - Detailed tasks for each phase
       - Dependencies between tasks
       - Resource requirements
       - Risk assessment
    
    3. **Timeline & Milestones**
       - Estimated duration for each phase
       - Critical path analysis
       - Key milestone dates
    
    4. **Resource Planning**
       - Team composition and roles
       - Skill requirements
       - External dependencies
    
    5. **Risk Management**
       - Potential risks and mitigation strategies
       - Contingency planning
       - Quality gates
    
    6. **Success Metrics**
       - KPIs and measurement criteria
       - Progress tracking methods
       - Review and adjustment points
    
    Make the plan actionable with specific tasks, clear dependencies, and realistic timelines for a team of ${team_size}.`;
    
          const plan = await aiClient.call(planningPrompt, 'main', { 
            complexity: complexity === 'enterprise' ? 'complex' : 'medium',
            maxTokens: 4000
          });
          
          // Generate dependency analysis
          const dependencyPrompt = `Analyze the project plan and create a dependency matrix:
    
    ${plan}
    
    Provide:
    1. Critical path identification
    2. Task dependencies (what depends on what)
    3. Potential bottlenecks
    4. Parallel execution opportunities
    5. Risk factors for delays`;
    
          const dependencies = await aiClient.call(dependencyPrompt, 'analysis');
          
          // Save plan to storage
          const planData = {
            id: Date.now().toString(),
            project_description,
            project_type,
            timeline,
            team_size,
            complexity,
            plan,
            dependencies,
            created: new Date().toISOString(),
            status: 'draft'
          };
          
          const storage_data = await storage.read('plans');
          if (!storage_data.plans) storage_data.plans = [];
          storage_data.plans.push(planData);
          await storage.write('plans', storage_data);
          
          timer.end();
          
          return `📋 **Enhanced Project Plan** (${project_type})
    
    **Plan ID**: ${planData.id}
    **Complexity**: ${complexity}
    **Team Size**: ${team_size}
    
    ${plan}
    
    ---
    
    🔗 **Dependency Analysis**
    
    ${dependencies}
    
    **Plan saved to storage for future reference and tracking.**`;
        }
      },
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'interactive project planning' suggests a generative/mutation operation, the description doesn't clarify what 'interactive' means operationally, whether it creates persistent artifacts, requires specific permissions, has rate limits, or what format the output takes. The mention of 'templates, dependency detection, and progress tracking' hints at functionality but lacks behavioral specifics.

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 front-loads the core purpose ('interactive project planning') followed by three key features. Every word earns its place with zero redundancy or unnecessary elaboration.

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?

For a tool with 5 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what the tool actually produces (a plan document? task list? Gantt chart?), how the 'interactive' aspect works, or provide enough behavioral context for safe invocation. The feature list hints at capabilities but lacks operational specifics needed for proper tool selection and 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%, so the schema already documents all 5 parameters with basic descriptions. The tool description adds no parameter-specific information beyond what's in the schema - it doesn't explain how parameters like 'complexity' or 'project_type' affect the planning process, or provide examples of valid 'timeline' formats. The baseline 3 is appropriate when schema does the documentation work.

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 as 'interactive project planning' with specific features (templates, dependency detection, progress tracking), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'create_project_tasks' or 'team_orchestrator' that might have overlapping functionality in the project management domain.

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. With multiple sibling tools in the same server (like 'create_project_tasks', 'team_orchestrator', 'consensus_advanced'), there's no indication of this tool's specific context, prerequisites, or when it's preferable to other planning or project management tools.

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

Related 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/emmron/gemini-mcp'

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