Skip to main content
Glama

kb_quick_setup

Configure knowledge base with predefined forms for identity, technical, or organizational data to enable AI memory across sessions.

Instructions

Quick setup using predefined forms for common scenarios

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
formTypeYesType of quick setup form
dataYesForm data as key-value pairs

Implementation Reference

  • Main handler logic for kb_quick_setup: processes formType and data, uses quickForms to validate/parse fields, applies targeted updates to knowledge base (personal/professional/preferences/custom).
    case 'kb_quick_setup': {
      const { formType, data } = args as any;
      const form = quickForms[formType];
      
      if (!form) {
        throw new Error(`Unknown form type: ${formType}`);
      }
    
      const updates: any = {};
      for (const [key, value] of Object.entries(data)) {
        const fieldDef = form.fields[key];
        if (fieldDef) {
          updates[key] = parseFormInput(value as string, fieldDef.type);
        }
      }
    
      // Apply updates based on form type
      if (formType === 'identity') {
        await km.updatePersonal({
          name: updates.name,
          currentLocation: updates.location,
          languages: updates.languages
        });
        await km.updateProfessional({
          occupation: updates.occupation
        });
      } else if (formType === 'technical') {
        await km.updateProfessional({
          role: updates.role,
          yearsOfExperience: updates.experience,
          skills: updates.skills
        });
        await km.updatePreferences({
          favoriteTools: updates.tools
        });
      } else if (formType === 'organization') {
        await km.addCustomKnowledge('organization', 'name', updates.orgName);
        await km.addCustomKnowledge('organization', 'industry', updates.industry);
        if (updates.size) await km.addCustomKnowledge('organization', 'size', updates.size);
        if (updates.mission) await km.addCustomKnowledge('organization', 'mission', updates.mission);
      }
    
      return {
        content: [
          {
            type: 'text',
            text: `✅ Quick setup completed for ${formType}`
          }
        ]
      };
    }
  • src/index.ts:64-82 (registration)
    Tool registration in the MCP tools list, defining name, description, and input schema with required formType (enum) and data object.
    {
      name: 'kb_quick_setup',
      description: 'Quick setup using predefined forms for common scenarios',
      inputSchema: {
        type: 'object',
        properties: {
          formType: {
            type: 'string',
            enum: ['identity', 'technical', 'organization'],
            description: 'Type of quick setup form'
          },
          data: {
            type: 'object',
            description: 'Form data as key-value pairs'
          }
        },
        required: ['formType', 'data']
      }
    },
  • Detailed schema definitions for each quick setup formType, defining field types, labels, requirements, and options used for data validation/parsing in the handler.
    export const quickForms: Record<string, any> = {
      identity: {
        title: "Quick Identity Setup",
        fields: {
          name: { type: 'text', label: 'Full Name', required: true },
          occupation: { type: 'text', label: 'Job Title', required: true },
          location: { type: 'text', label: 'Location', required: false },
          languages: { type: 'array', label: 'Languages', required: false }
        }
      },
      technical: {
        title: "Technical Profile",
        fields: {
          role: { type: 'text', label: 'Role', required: true },
          experience: { type: 'number', label: 'Years of Experience', required: true },
          skills: { type: 'array', label: 'Skills', required: true },
          tools: { type: 'array', label: 'Favorite Tools', required: false }
        }
      },
      organization: {
        title: "Organization Setup",
        fields: {
          orgName: { type: 'text', label: 'Organization Name', required: true },
          industry: { type: 'text', label: 'Industry', required: true },
          size: { type: 'select', label: 'Company Size', options: ['1-10', '11-50', '51-200', '200+'], required: false },
          mission: { type: 'text', label: 'Mission', required: false }
        }
      }
    };
  • Utility function to parse form input values based on field type (array, number, boolean), used in kb_quick_setup handler to process data.
    export function parseFormInput(input: string, type: string): any {
      if (type === 'array' || type === 'multiselect') {
        return input.split(',').map(s => s.trim()).filter(s => s.length > 0);
      } else if (type === 'number') {
        return parseInt(input, 10);
      } else if (type === 'boolean') {
        return input.toLowerCase() === 'true' || input.toLowerCase() === 'yes';
      }
      return input;
    }
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions 'quick setup' but doesn't disclose behavioral traits such as whether this is a read-only or mutating operation, what permissions are required, if it's idempotent, or what happens on failure. This is inadequate for a tool likely involving configuration changes.

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 directly states the tool's function without redundancy. It's appropriately sized and front-loaded, with no wasted words, making it easy to parse quickly.

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 lack of annotations and output schema, and the tool's likely complexity (setup with forms and data), the description is insufficient. It doesn't explain what 'setup' entails, what the common scenarios are, or what the tool returns, leaving significant gaps for agent understanding.

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 fully documents the two parameters (formType with enum values, and data as key-value pairs). The description adds no additional meaning beyond the schema, such as examples of form data or scenarios for each formType, resulting in a baseline score of 3.

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 the tool performs 'Quick setup using predefined forms for common scenarios,' which indicates a setup/configuration action with forms. However, it's vague about what exactly is being set up (knowledge base? system?), doesn't specify the resource clearly, and doesn't distinguish from siblings like 'kb_initialize' or 'kb_onboard' that might also handle setup tasks.

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. It doesn't mention prerequisites, timing (e.g., initial setup vs. updates), or differentiate from sibling tools like 'kb_initialize' or 'kb_onboard,' leaving the agent with no context for selection.

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

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/hlsitechio/mcp-instruct'

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