kb_search
Search a knowledge base using semantic queries to find relevant information based on meaning rather than exact keywords.
Instructions
Search knowledge base using semantic search
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| limit | No | Maximum results to return |
Implementation Reference
- src/index.ts:749-760 (handler)Main handler for kb_search tool execution. Parses arguments, calls KnowledgeManager.search(), limits results, and formats response as MCP content.case 'kb_search': { const { query, limit = 10 } = args as any; const results = km.search(query).slice(0, limit); return { content: [ { type: 'text', text: JSON.stringify(results, null, 2) } ] }; }
- src/index.ts:252-270 (schema)Tool definition including name, description, and input schema (query: string required, limit: number optional).{ name: 'kb_search', description: 'Search knowledge base using semantic search', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Search query' }, limit: { type: 'number', default: 10, description: 'Maximum results to return' } }, required: ['query'] } },
- src/KnowledgeManager.ts:262-276 (helper)Core search logic using Fuse.js fuzzy search engine on flattened knowledge base data, returning formatted SearchResult objects.search(query: string): SearchResult[] { if (!this.fuse) { this.initializeSearch(); } const results = this.fuse!.search(query); return results.map(result => ({ category: result.item.category, field: result.item.field, value: result.item.original || result.item.value, relevance: 1 - (result.score || 0), context: this.getContext(result.item.category, result.item.field) })); }