@sofianedjerbi/knowledge-tree-mcp
Version:
MCP server for hierarchical project knowledge management
1,001 lines • 31.1 kB
TypeScript
/**
* 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