/** * Tool Registry * * Central registry for all tools from all sources. * Replaces the monolithic switch statement with Map-based dispatch. */ import type { Tool } from '@modelcontextprotocol/sdk/types.js'; import type { Source } from './core/base-source.js'; import type { MCPToolResponse } from './core/types.js'; /** * Source registration status */ export interface SourceStatus { name: string; displayName: string; toolCount: number; authRequired: boolean; authConfigured: boolean; } /** * Central tool registry that manages all sources and their tools */ declare class ToolRegistry { private sources; private tools; /** * Register a source and all its tools */ register(source: Source): void; /** * Get all registered tool schemas for ListToolsRequest */ listTools(): Tool[]; /** * Execute a tool by name */ executeTool(name: string, args: Record): Promise; /** * Check if a tool exists */ hasTool(name: string): boolean; /** * Get the schema for a specific tool (for dynamic loading) */ getToolSchema(name: string): Tool | undefined; /** * Get status of all registered sources */ getSourcesStatus(): SourceStatus[]; /** * Get list of tools grouped by source */ getToolsBySource(): Map; /** * Get the source name for a given tool */ private getSourceForTool; /** * Get total tool count */ get toolCount(): number; /** * Get total source count */ get sourceCount(): number; } export declare const registry: ToolRegistry; export {}; //# sourceMappingURL=registry.d.ts.map