list-domains
Discover available knowledge domains and their document counts to identify relevant content areas for search and retrieval operations.
Instructions
List all available domains and their document counts.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/index.ts:358-381 (handler)The main handler for the 'list-domains' tool call. It invokes repository.listDomains(), formats the results into a markdown list, and returns as TextContent.case 'list-domains': { console.error(`[DEBUG] list-domains called`); const domains = repository.listDomains(); console.error(`[DEBUG] domains found: ${JSON.stringify(domains)}`); if (domains.length === 0) { const content: TextContent[] = [{ type: 'text', text: `## Available Domains\n\nNo domains found. Check if documents are loaded properly.` }]; return { content }; } const domainList = domains .map(d => `- ${d.name}: ${d.documentCount} documents`) .join('\n'); const content: TextContent[] = [{ type: 'text', text: `## Available Domains\n\n${domainList}` }]; return { content }; }
- Core helper method in DocumentRepository that iterates over all documents, groups by domainName (default 'general'), and returns array of {name, documentCount}.listDomains(): Array<{ name: string; documentCount: number }> { this.ensureInitialized(); console.error(`[DEBUG] listDomains called on instance ${this.instanceId}, documents.size=${this.documents.size}`); const domainCounts = new Map<string, number>(); this.documents.forEach(doc => { const domain = doc.domainName || 'general'; console.error(`[DEBUG] Processing document: ID=${doc.id}, domain=${domain}`); domainCounts.set(domain, (domainCounts.get(domain) || 0) + 1); }); console.error(`[DEBUG] domainCounts Map: ${JSON.stringify([...domainCounts.entries()])}`); const result = Array.from(domainCounts.entries()).map(([name, count]) => ({ name, documentCount: count })); console.error(`[DEBUG] listDomains result: ${JSON.stringify(result)}`); return result; }
- src/index.ts:253-260 (registration)Tool registration in ListToolsRequestSchema handler, including name, description, and empty input schema (no parameters required).{ name: 'list-domains', description: 'List all available domains and their document counts.', inputSchema: { type: 'object', properties: {} } },
- src/index.ts:256-259 (schema)Input schema for 'list-domains' tool: empty object (no input parameters).inputSchema: { type: 'object', properties: {} }