Skip to main content
Glama
nicavcrm

Memory Bank MCP Server

by nicavcrm

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.`
            }]
          };
        }
      };
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