@holder-mcp/local-knowledge-base
Version:
Holder公司本地知识库MCP客户端,提供项目文档检索、模块信息查询和架构信息获取等工具
148 lines • 3.02 kB
TypeScript
/**
* MCP协议相关类型定义
*/
export interface MCPRequest {
jsonrpc: '2.0';
id: number;
method: string;
params?: any;
}
export interface MCPResponse {
jsonrpc: '2.0';
id: number;
result?: any;
error?: {
code: number;
message: string;
data?: any;
};
}
export interface MCPTool {
name: string;
description: string;
inputSchema: {
type: 'object';
properties: Record<string, any>;
required: string[];
};
}
export interface MCPCapabilities {
tools?: {};
resources?: {};
prompts?: {};
completion?: {};
}
export interface MCPServerInfo {
name: string;
version: string;
}
export interface MCPInitializeResult {
protocolVersion: string;
capabilities: MCPCapabilities;
serverInfo: MCPServerInfo;
}
export interface ToolCallResult {
content: Array<{
type: 'text';
text: string;
}>;
isError?: boolean;
}
/**
* 知识库工具相关类型
*/
export interface QueryKnowledgeBaseArgs {
query: string;
topK?: number;
}
export interface GetModuleInfoArgs {
moduleName: string;
}
export interface GetArchitectureInfoArgs {
random_string: string;
}
export interface GetKnowledgeBaseStatsArgs {
random_string: string;
}
export interface SearchCodeDocumentationArgs {
codeQuery: string;
}
/**
* 项目管理相关类型
*/
export interface RebuildProjectIndexArgs {
projectName: string;
documentPaths?: string[];
}
export interface UploadProjectDocumentsArgs {
projectName: string;
documentPaths?: string[];
}
/**
* 项目配置
*/
export interface ProjectConfig {
name: string;
documentPaths: string[];
enabled: boolean;
}
/**
* 文档监听配置
*/
export interface DocumentWatchConfig {
enabled: boolean;
debounceMs: number;
projects: ProjectConfig[];
}
/**
* 文档相关类型
*/
export interface DocumentInfo {
filePath: string;
fileName: string;
content: string;
encoding: string;
size: number;
lastModified: Date;
checksum: string;
type: 'MARKDOWN' | 'CODE' | 'TEXT' | 'PDF';
}
export interface ClientDocumentDto {
filePath: string;
fileName: string;
content: string;
encoding: string;
size: number;
lastModified: string;
checksum: string;
type: string;
}
/**
* 文件监听相关类型
*/
export interface FileWatchEvent {
type: 'add' | 'change' | 'unlink';
path: string;
timestamp: Date;
}
export interface WatcherState {
projectName: string;
watchedPaths: string[];
isActive: boolean;
debounceTimer?: NodeJS.Timeout;
lastUpdateTime?: Date;
}
/**
* 客户端配置
*/
export interface MCPClientConfig {
serverUrl: string;
defaultProject?: string;
defaultDocumentPaths?: string[];
workingDirectory?: string;
sseEndpoint?: string;
messageEndpoint?: string;
timeout?: number;
documentWatch?: DocumentWatchConfig;
}
//# sourceMappingURL=types.d.ts.map