UNPKG

@sofianedjerbi/knowledge-tree-mcp

Version:

MCP server for hierarchical project knowledge management

1,001 lines 31.1 kB
/** * Central registry and export point for all MCP tool implementations * * This module follows the Single Responsibility Principle by handling * tool registration and exports only. Each tool implementation is * isolated in its own module. */ import type { ToolHandler } from '../types/index.js'; import { helpHandler } from './help.js'; import { indexKnowledgeHandler } from './indexKnowledge.js'; import { searchKnowledgeHandler } from './search.js'; import { addKnowledgeHandler } from './add.js'; import { updateKnowledgeHandler } from './update.js'; import { deleteKnowledgeHandler } from './delete.js'; import { linkKnowledgeHandler } from './link.js'; import { validateKnowledgeHandler } from './validate.js'; import { exportKnowledgeHandler } from './export.js'; import { statsKnowledgeHandler } from './stats.js'; import { recentKnowledgeHandler } from './recent.js'; import { usageAnalyticsHandler } from './analytics.js'; import { setupProjectHandler } from './setup.js'; /** * Map of tool names to their handlers * This provides a clean interface for the server to look up tools */ export declare const toolHandlers: Record<string, ToolHandler>; /** * Tool definitions for MCP registration * These match the structure expected by the MCP SDK */ export declare const toolDefinitions: ({ name: string; description: string; inputSchema: { type: string; properties: { action: { type: string; enum: string[]; description: string; default: string; }; name: { type: string; description: string; }; pathPrefix: { type: string; description: string; }; technologies: { type: string; items: { type: string; }; description: string; }; categories: { type: string; description: string; additionalProperties: { type: string; properties: { keywords: { type: string; items: { type: string; }; }; subcategories: { type: string; items: { type: string; }; }; }; }; }; autoTags: { type: string; description: string; additionalProperties: { type: string; items: { type: string; }; }; }; topic?: undefined; format?: undefined; include_content?: undefined; max_entries?: undefined; path?: undefined; content?: undefined; query?: undefined; priority?: undefined; category?: undefined; searchIn?: undefined; regex?: undefined; caseSensitive?: undefined; limit?: undefined; sortBy?: undefined; new_path?: undefined; updates?: undefined; regenerate_path?: undefined; cleanup_links?: undefined; from?: undefined; to?: undefined; relationship?: undefined; description?: undefined; fix?: undefined; filter?: undefined; include_links?: undefined; include?: undefined; days?: undefined; type?: undefined; keywords?: undefined; subcategories?: undefined; scope?: undefined; }; required?: undefined; }; } | { name: string; description: string; inputSchema: { type: string; properties: { topic: { type: string; enum: string[]; description: string; }; action?: undefined; name?: undefined; pathPrefix?: undefined; technologies?: undefined; categories?: undefined; autoTags?: undefined; format?: undefined; include_content?: undefined; max_entries?: undefined; path?: undefined; content?: undefined; query?: undefined; priority?: undefined; category?: undefined; searchIn?: undefined; regex?: undefined; caseSensitive?: undefined; limit?: undefined; sortBy?: undefined; new_path?: undefined; updates?: undefined; regenerate_path?: undefined; cleanup_links?: undefined; from?: undefined; to?: undefined; relationship?: undefined; description?: undefined; fix?: undefined; filter?: undefined; include_links?: undefined; include?: undefined; days?: undefined; type?: undefined; keywords?: undefined; subcategories?: undefined; scope?: undefined; }; required?: undefined; }; } | { name: string; description: string; inputSchema: { type: string; properties: { format: { type: string; enum: string[]; description: string; default: string; }; include_content: { type: string; description: string; default: boolean; }; max_entries: { type: string; description: string; default: number; }; action?: undefined; name?: undefined; pathPrefix?: undefined; technologies?: undefined; categories?: undefined; autoTags?: undefined; topic?: undefined; path?: undefined; content?: undefined; query?: undefined; priority?: undefined; category?: undefined; searchIn?: undefined; regex?: undefined; caseSensitive?: undefined; limit?: undefined; sortBy?: undefined; new_path?: undefined; updates?: undefined; regenerate_path?: undefined; cleanup_links?: undefined; from?: undefined; to?: undefined; relationship?: undefined; description?: undefined; fix?: undefined; filter?: undefined; include_links?: undefined; include?: undefined; days?: undefined; type?: undefined; keywords?: undefined; subcategories?: undefined; scope?: undefined; }; required?: undefined; }; } | { name: string; description: string; inputSchema: { type: string; properties: { path: { type: string; description: string; }; content: { type: string; description: string; }; action?: undefined; name?: undefined; pathPrefix?: undefined; technologies?: undefined; categories?: undefined; autoTags?: undefined; topic?: undefined; format?: undefined; include_content?: undefined; max_entries?: undefined; query?: undefined; priority?: undefined; category?: undefined; searchIn?: undefined; regex?: undefined; caseSensitive?: undefined; limit?: undefined; sortBy?: undefined; new_path?: undefined; updates?: undefined; regenerate_path?: undefined; cleanup_links?: undefined; from?: undefined; to?: undefined; relationship?: undefined; description?: undefined; fix?: undefined; filter?: undefined; include_links?: undefined; include?: undefined; days?: undefined; type?: undefined; keywords?: undefined; subcategories?: undefined; scope?: undefined; }; required: string[]; }; } | { name: string; description: string; inputSchema: { type: string; properties: { query: { type: string; description: string; }; priority: { type: string; items: { type: string; enum: string[]; }; description: string; }; category: { type: string; description: string; }; searchIn: { type: string; items: { type: string; enum: string[]; }; description: string; default: string[]; }; regex: { type: string; description: string; default: boolean; }; caseSensitive: { type: string; description: string; default: boolean; }; limit: { type: string; description: string; default: number; }; sortBy: { type: string; enum: string[]; description: string; default: string; }; action?: undefined; name?: undefined; pathPrefix?: undefined; technologies?: undefined; categories?: undefined; autoTags?: undefined; topic?: undefined; format?: undefined; include_content?: undefined; max_entries?: undefined; path?: undefined; content?: undefined; new_path?: undefined; updates?: undefined; regenerate_path?: undefined; cleanup_links?: undefined; from?: undefined; to?: undefined; relationship?: undefined; description?: undefined; fix?: undefined; filter?: undefined; include_links?: undefined; include?: undefined; days?: undefined; type?: undefined; keywords?: undefined; subcategories?: undefined; scope?: undefined; }; required?: undefined; }; } | { name: string; description: string; inputSchema: { type: string; properties: { path: { type: string; description: string; }; new_path: { type: string; description: string; }; updates: { type: string; properties: { title: { type: string; description: string; }; slug: { type: string; description: string; }; priority: { type: string; enum: string[]; description: string; }; category: { type: string; description: string; }; tags: { type: string; items: { type: string; }; description: string; }; problem: { type: string; description: string; }; context: { type: string; description: string; }; solution: { type: string; description: string; }; examples: { type: string; description: string; items: { type: string; properties: { title: { type: string; }; description: { type: string; }; code: { type: string; }; language: { type: string; }; }; }; }; code: { type: string; description: string; }; author: { type: string; description: string; }; version: { type: string; description: string; }; related_to: { type: string; description: string; items: { type: string; properties: { path: { type: string; }; relationship: { type: string; enum: string[]; }; description: { type: string; }; }; required: string[]; }; }; }; description: string; }; regenerate_path: { type: string; description: string; }; action?: undefined; name?: undefined; pathPrefix?: undefined; technologies?: undefined; categories?: undefined; autoTags?: undefined; topic?: undefined; format?: undefined; include_content?: undefined; max_entries?: undefined; content?: undefined; query?: undefined; priority?: undefined; category?: undefined; searchIn?: undefined; regex?: undefined; caseSensitive?: undefined; limit?: undefined; sortBy?: undefined; cleanup_links?: undefined; from?: undefined; to?: undefined; relationship?: undefined; description?: undefined; fix?: undefined; filter?: undefined; include_links?: undefined; include?: undefined; days?: undefined; type?: undefined; keywords?: undefined; subcategories?: undefined; scope?: undefined; }; required: string[]; }; } | { name: string; description: string; inputSchema: { type: string; properties: { path: { type: string; description: string; }; cleanup_links: { type: string; description: string; default: boolean; }; action?: undefined; name?: undefined; pathPrefix?: undefined; technologies?: undefined; categories?: undefined; autoTags?: undefined; topic?: undefined; format?: undefined; include_content?: undefined; max_entries?: undefined; content?: undefined; query?: undefined; priority?: undefined; category?: undefined; searchIn?: undefined; regex?: undefined; caseSensitive?: undefined; limit?: undefined; sortBy?: undefined; new_path?: undefined; updates?: undefined; regenerate_path?: undefined; from?: undefined; to?: undefined; relationship?: undefined; description?: undefined; fix?: undefined; filter?: undefined; include_links?: undefined; include?: undefined; days?: undefined; type?: undefined; keywords?: undefined; subcategories?: undefined; scope?: undefined; }; required: string[]; }; } | { name: string; description: string; inputSchema: { type: string; properties: { from: { type: string; description: string; }; to: { type: string; description: string; }; relationship: { type: string; enum: string[]; description: string; }; description: { type: string; description: string; }; action?: undefined; name?: undefined; pathPrefix?: undefined; technologies?: undefined; categories?: undefined; autoTags?: undefined; topic?: undefined; format?: undefined; include_content?: undefined; max_entries?: undefined; path?: undefined; content?: undefined; query?: undefined; priority?: undefined; category?: undefined; searchIn?: undefined; regex?: undefined; caseSensitive?: undefined; limit?: undefined; sortBy?: undefined; new_path?: undefined; updates?: undefined; regenerate_path?: undefined; cleanup_links?: undefined; fix?: undefined; filter?: undefined; include_links?: undefined; include?: undefined; days?: undefined; type?: undefined; keywords?: undefined; subcategories?: undefined; scope?: undefined; }; required: string[]; }; } | { name: string; description: string; inputSchema: { type: string; properties: { path: { type: string; description: string; }; fix: { type: string; description: string; default: boolean; }; action?: undefined; name?: undefined; pathPrefix?: undefined; technologies?: undefined; categories?: undefined; autoTags?: undefined; topic?: undefined; format?: undefined; include_content?: undefined; max_entries?: undefined; content?: undefined; query?: undefined; priority?: undefined; category?: undefined; searchIn?: undefined; regex?: undefined; caseSensitive?: undefined; limit?: undefined; sortBy?: undefined; new_path?: undefined; updates?: undefined; regenerate_path?: undefined; cleanup_links?: undefined; from?: undefined; to?: undefined; relationship?: undefined; description?: undefined; filter?: undefined; include_links?: undefined; include?: undefined; days?: undefined; type?: undefined; keywords?: undefined; subcategories?: undefined; scope?: undefined; }; required?: undefined; }; } | { name: string; description: string; inputSchema: { type: string; properties: { format: { type: string; enum: string[]; description: string; default: string; }; filter: { type: string; properties: { priority: { type: string; items: { type: string; enum: string[]; }; description: string; }; category: { type: string; description: string; }; }; description: string; }; include_links: { type: string; description: string; default: boolean; }; action?: undefined; name?: undefined; pathPrefix?: undefined; technologies?: undefined; categories?: undefined; autoTags?: undefined; topic?: undefined; include_content?: undefined; max_entries?: undefined; path?: undefined; content?: undefined; query?: undefined; priority?: undefined; category?: undefined; searchIn?: undefined; regex?: undefined; caseSensitive?: undefined; limit?: undefined; sortBy?: undefined; new_path?: undefined; updates?: undefined; regenerate_path?: undefined; cleanup_links?: undefined; from?: undefined; to?: undefined; relationship?: undefined; description?: undefined; fix?: undefined; include?: undefined; days?: undefined; type?: undefined; keywords?: undefined; subcategories?: undefined; scope?: undefined; }; required?: undefined; }; } | { name: string; description: string; inputSchema: { type: string; properties: { include: { type: string; items: { type: string; enum: string[]; }; description: string; default: string[]; }; action?: undefined; name?: undefined; pathPrefix?: undefined; technologies?: undefined; categories?: undefined; autoTags?: undefined; topic?: undefined; format?: undefined; include_content?: undefined; max_entries?: undefined; path?: undefined; content?: undefined; query?: undefined; priority?: undefined; category?: undefined; searchIn?: undefined; regex?: undefined; caseSensitive?: undefined; limit?: undefined; sortBy?: undefined; new_path?: undefined; updates?: undefined; regenerate_path?: undefined; cleanup_links?: undefined; from?: undefined; to?: undefined; relationship?: undefined; description?: undefined; fix?: undefined; filter?: undefined; include_links?: undefined; days?: undefined; type?: undefined; keywords?: undefined; subcategories?: undefined; scope?: undefined; }; required?: undefined; }; } | { name: string; description: string; inputSchema: { type: string; properties: { days: { type: string; description: string; default: number; }; limit: { type: string; description: string; default: number; }; type: { type: string; enum: string[]; description: string; default: string; }; action?: undefined; name?: undefined; pathPrefix?: undefined; technologies?: undefined; categories?: undefined; autoTags?: undefined; topic?: undefined; format?: undefined; include_content?: undefined; max_entries?: undefined; path?: undefined; content?: undefined; query?: undefined; priority?: undefined; category?: undefined; searchIn?: undefined; regex?: undefined; caseSensitive?: undefined; sortBy?: undefined; new_path?: undefined; updates?: undefined; regenerate_path?: undefined; cleanup_links?: undefined; from?: undefined; to?: undefined; relationship?: undefined; description?: undefined; fix?: undefined; filter?: undefined; include_links?: undefined; include?: undefined; keywords?: undefined; subcategories?: undefined; scope?: undefined; }; required?: undefined; }; } | { name: string; description: string; inputSchema: { type: string; required: string[]; properties: { action: { type: string; enum: string[]; description: string; default?: undefined; }; category: { type: string; description: string; }; keywords: { type: string; items: { type: string; }; description: string; }; subcategories: { type: string; items: { type: string; }; description: string; }; scope: { type: string; enum: string[]; default: string; description: string; }; description: { type: string; description: string; }; name?: undefined; pathPrefix?: undefined; technologies?: undefined; categories?: undefined; autoTags?: undefined; topic?: undefined; format?: undefined; include_content?: undefined; max_entries?: undefined; path?: undefined; content?: undefined; query?: undefined; priority?: undefined; searchIn?: undefined; regex?: undefined; caseSensitive?: undefined; limit?: undefined; sortBy?: undefined; new_path?: undefined; updates?: undefined; regenerate_path?: undefined; cleanup_links?: undefined; from?: undefined; to?: undefined; relationship?: undefined; fix?: undefined; filter?: undefined; include_links?: undefined; include?: undefined; days?: undefined; type?: undefined; }; }; } | { name: string; description: string; inputSchema: { type: string; properties: { days: { type: string; description: string; default: number; }; include: { type: string; items: { type: string; enum: string[]; }; description: string; default: string[]; }; action?: undefined; name?: undefined; pathPrefix?: undefined; technologies?: undefined; categories?: undefined; autoTags?: undefined; topic?: undefined; format?: undefined; include_content?: undefined; max_entries?: undefined; path?: undefined; content?: undefined; query?: undefined; priority?: undefined; category?: undefined; searchIn?: undefined; regex?: undefined; caseSensitive?: undefined; limit?: undefined; sortBy?: undefined; new_path?: undefined; updates?: undefined; regenerate_path?: undefined; cleanup_links?: undefined; from?: undefined; to?: undefined; relationship?: undefined; description?: undefined; fix?: undefined; filter?: undefined; include_links?: undefined; type?: undefined; keywords?: undefined; subcategories?: undefined; scope?: undefined; }; required?: undefined; }; })[]; export { helpHandler, setupProjectHandler, indexKnowledgeHandler, searchKnowledgeHandler, addKnowledgeHandler, updateKnowledgeHandler, deleteKnowledgeHandler, linkKnowledgeHandler, validateKnowledgeHandler, exportKnowledgeHandler, statsKnowledgeHandler, recentKnowledgeHandler, usageAnalyticsHandler }; //# sourceMappingURL=index.d.ts.map