Skip to main content
Glama
nicavcrm

Memory Bank MCP Server

by nicavcrm

CREATIVE Mode

creative_mode

Design and architect complex components by defining names, creative types, and requirements. Supports architecture, algorithm, and UI/UX development for structured project workflows.

Instructions

Design and architecture work for complex components

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
component_nameYes
creative_typeYes
requirementsYes

Implementation Reference

  • The core handler function for the 'creative_mode' tool. It generates a creative design template document based on the input component name, type, and requirements, stores it using the storage system, updates the tasks status, and returns a success response.
        handler: async (input: CreativeModeInput): Promise<ToolResponse> => {
          const timestamp = new Date().toISOString();
          const creativeDoc = `# 🎨🎨🎨 ENTERING CREATIVE PHASE: ${input.creative_type.toUpperCase()}
    
    ## Component: ${input.component_name}
    **Type**: ${input.creative_type}
    **Started**: ${timestamp}
    
    ## Requirements & Constraints
    ${input.requirements}
    
    ## Design Options
    *To be filled with multiple design approaches*
    
    ### Option 1: [Name]
    **Pros:**
    -
    
    **Cons:**
    -
    
    ### Option 2: [Name]
    **Pros:**
    -
    
    **Cons:**
    -
    
    ## Recommended Approach
    *Selection with justification*
    
    ## Implementation Guidelines
    *How to implement the selected solution*
    
    ## Verification
    *Does solution meet requirements?*
    
    # 🎨🎨🎨 EXITING CREATIVE PHASE
    `;
    
          this.storage.setCreativeContent(input.component_name, creativeDoc);
    
          // Update tasks
          const currentTasks = this.storage.getTasks();
          const updatedTasks = currentTasks.replace(
            '- [ ] CREATIVE Mode: Design decisions (if required)',
            '- [x] CREATIVE Mode: Design decisions ✅'
          );
          this.storage.setTasks(updatedTasks);
    
          return {
            content: [{
              type: 'text',
              text: `✅ CREATIVE Mode initialized for ${input.component_name}!\n\n**Creative Type**: ${input.creative_type}\n**Status**: Design template created\n**Next**: Complete the design options and analysis, then proceed to IMPLEMENT mode.`
            }]
          };
        }
      };
  • src/server.ts:57-71 (registration)
    MCP server registration of the 'creative_mode' tool, including Zod input schema validation and a wrapper handler that delegates to the core handler in tools.ts.
    this.server.registerTool(
      'creative_mode',
      {
        title: 'CREATIVE Mode',
        description: 'Design and architecture work for complex components',
        inputSchema: {
          component_name: z.string(),
          creative_type: z.enum(['architecture', 'algorithm', 'uiux']),
          requirements: z.string()
        }
      },
      async (args) => {
        return await (this.tools.creativeTool.handler as any)(args);
      }
    );
  • TypeScript interface defining the input shape for the creative_mode tool handler.
    interface CreativeModeInput {
      component_name: string;
      creative_type: 'architecture' | 'algorithm' | 'uiux';
      requirements: string;
    }
  • JSON Schema definition for the creative_mode tool input, used in the internal tool definition.
    inputSchema: {
      type: 'object',
      properties: {
        component_name: {
          type: 'string',
          description: 'Name of the component requiring creative design'
        },
        creative_type: {
          type: 'string',
          enum: ['architecture', 'algorithm', 'uiux'],
          description: 'Type of creative work needed'
        },
        requirements: {
          type: 'string',
          description: 'Requirements and constraints for the component'
        }
      },
      required: ['component_name', 'creative_type', 'requirements']
    },
  • src/tools.ts:172-251 (registration)
    Internal definition and registration of the creative_mode tool within the MemoryBankTools class, including name, description, schema, and handler.
      creativeTool: MemoryBankTool<CreativeModeInput> = {
        name: 'creative_mode',
        description: 'Design and architecture work for complex components',
        inputSchema: {
          type: 'object',
          properties: {
            component_name: {
              type: 'string',
              description: 'Name of the component requiring creative design'
            },
            creative_type: {
              type: 'string',
              enum: ['architecture', 'algorithm', 'uiux'],
              description: 'Type of creative work needed'
            },
            requirements: {
              type: 'string',
              description: 'Requirements and constraints for the component'
            }
          },
          required: ['component_name', 'creative_type', 'requirements']
        },
        handler: async (input: CreativeModeInput): Promise<ToolResponse> => {
          const timestamp = new Date().toISOString();
          const creativeDoc = `# 🎨🎨🎨 ENTERING CREATIVE PHASE: ${input.creative_type.toUpperCase()}
    
    ## Component: ${input.component_name}
    **Type**: ${input.creative_type}
    **Started**: ${timestamp}
    
    ## Requirements & Constraints
    ${input.requirements}
    
    ## Design Options
    *To be filled with multiple design approaches*
    
    ### Option 1: [Name]
    **Pros:**
    -
    
    **Cons:**
    -
    
    ### Option 2: [Name]
    **Pros:**
    -
    
    **Cons:**
    -
    
    ## Recommended Approach
    *Selection with justification*
    
    ## Implementation Guidelines
    *How to implement the selected solution*
    
    ## Verification
    *Does solution meet requirements?*
    
    # 🎨🎨🎨 EXITING CREATIVE PHASE
    `;
    
          this.storage.setCreativeContent(input.component_name, creativeDoc);
    
          // Update tasks
          const currentTasks = this.storage.getTasks();
          const updatedTasks = currentTasks.replace(
            '- [ ] CREATIVE Mode: Design decisions (if required)',
            '- [x] CREATIVE Mode: Design decisions ✅'
          );
          this.storage.setTasks(updatedTasks);
    
          return {
            content: [{
              type: 'text',
              text: `✅ CREATIVE Mode initialized for ${input.component_name}!\n\n**Creative Type**: ${input.creative_type}\n**Status**: Design template created\n**Next**: Complete the design options and analysis, then proceed to IMPLEMENT mode.`
            }]
          };
        }
      };
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'Design and architecture work' which implies a creative/planning operation rather than execution, but doesn't specify whether this is a read-only analysis, a generative process, or something else. No information about permissions, side effects, rate limits, or output format is provided, leaving significant gaps in understanding how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that gets straight to the point without unnecessary words. It's appropriately sized for a tool with 3 parameters and no annotations, though it could benefit from being more informative while maintaining brevity.

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 (3 required parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what the tool produces, how parameters interact, or what 'creative mode' entails operationally. For a tool that presumably involves significant processing (design/architecture work), more context about the workflow, output expectations, or limitations is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate but adds no parameter information. It doesn't explain what 'component_name', 'creative_type', or 'requirements' mean or how they should be used. The description's reference to 'complex components' vaguely relates to 'component_name' but provides no practical guidance on parameter usage or relationships.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Design and architecture work for complex components' which provides a general purpose (design/architecture) and target (complex components), but it's somewhat vague about the specific action. It doesn't clearly distinguish from siblings like 'plan_mode' or 'implement_mode' which might also involve design or architecture work. The description is better than a tautology but lacks specificity about what 'creative mode' uniquely does.

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 like 'plan_mode' or 'implement_mode'. There's no mention of prerequisites, appropriate contexts, or exclusions. The agent must infer usage from the tool name and description alone, which is insufficient for clear decision-making among multiple similar 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/nicavcrm/memory-bank-mcp'

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