kb_list_forms
List available forms and their structures to access stored knowledge categories and data formats in the MCP Instruct server.
Instructions
List available forms and their structures
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | all |
Implementation Reference
- src/index.ts:856-875 (handler)The main handler logic for executing the kb_list_forms tool. It extracts the 'type' parameter and returns the appropriate forms (onboarding, quick, or both) as JSON.
case 'kb_list_forms': { const type = (args as any).type || 'all'; let forms: any = {}; if (type === 'onboarding' || type === 'all') { forms.onboarding = onboardingForms; } if (type === 'quick' || type === 'all') { forms.quick = quickForms; } return { content: [ { type: 'text', text: JSON.stringify(forms, null, 2) } ] }; } - src/index.ts:324-337 (registration)Registration of the kb_list_forms tool in the MCP tools list, including its description and input schema.
{ name: 'kb_list_forms', description: 'List available forms and their structures', inputSchema: { type: 'object', properties: { type: { type: 'string', enum: ['onboarding', 'quick', 'all'], default: 'all' } } } }, - src/forms.ts:3-143 (helper)Definition of onboardingForms, which contains structured question data for onboarding categories. Used by kb_list_forms.
export const onboardingForms: Record<string, OnboardingQuestion[]> = { initial: [ { id: 'personal_name', question: 'What is your full name?', category: 'personal', field: 'name', type: 'text', required: true }, { id: 'personal_birth_year', question: 'What year were you born?', category: 'personal', field: 'birthYear', type: 'number', required: false }, { id: 'personal_location', question: 'Where are you currently located? (City, Country)', category: 'personal', field: 'currentLocation', type: 'text', required: false }, { id: 'personal_languages', question: 'What languages do you speak? (comma-separated)', category: 'personal', field: 'languages', type: 'multiselect', required: false }, { id: 'personal_pronouns', question: 'What are your pronouns?', category: 'personal', field: 'pronouns', type: 'text', required: false } ], professional: [ { id: 'prof_occupation', question: 'What is your occupation/job title?', category: 'professional', field: 'occupation', type: 'text', required: true }, { id: 'prof_experience', question: 'How many years of experience do you have?', category: 'professional', field: 'yearsOfExperience', type: 'number', required: false }, { id: 'prof_industry', question: 'What industry do you work in?', category: 'professional', field: 'industry', type: 'text', required: false }, { id: 'prof_specializations', question: 'What are your specializations? (comma-separated)', category: 'professional', field: 'specializations', type: 'multiselect', required: false }, { id: 'prof_skills', question: 'What are your main technical skills? (comma-separated)', category: 'professional', field: 'skills', type: 'multiselect', required: false } ], preferences: [ { id: 'pref_communication', question: 'How do you prefer communication? (formal/casual/technical)', category: 'preferences', field: 'communicationStyle', type: 'select', options: ['formal', 'casual', 'technical', 'balanced'], required: false }, { id: 'pref_detail', question: 'How detailed should responses be?', category: 'preferences', field: 'responseDetail', type: 'select', options: ['concise', 'detailed', 'balanced'], required: false }, { id: 'pref_technical', question: 'What is your technical expertise level?', category: 'preferences', field: 'technicalLevel', type: 'select', options: ['beginner', 'intermediate', 'expert'], required: false } ], projects: [ { id: 'proj_current', question: 'What projects are you currently working on? (comma-separated)', category: 'projects', field: 'currentProjects', type: 'multiselect', required: false }, { id: 'proj_tech', question: 'What technologies are you using? (comma-separated)', category: 'projects', field: 'technologies', type: 'multiselect', required: false }, { id: 'proj_goals', question: 'What are your current goals? (comma-separated)', category: 'projects', field: 'goals', type: 'multiselect', required: false } ] }; - src/forms.ts:145-173 (helper)Definition of quickForms, which contains field structures for quick setup forms. Used by kb_list_forms.
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 } } } };