@toolprint/hypertool-mcp
Version:
HyperTool MCP proxy server for routing requests between clients and multiple underlying MCP servers
119 lines • 3.86 kB
TypeScript
/**
* Enhanced Hypertool MCP server with request routing capabilities
*/
import { MetaMCPServer } from "./base.js";
import { MetaMCPServerConfig, ServerInitOptions } from "./types.js";
import { RuntimeOptions } from "../types/runtime.js";
import { Tool } from "@modelcontextprotocol/sdk/types.js";
import { IToolDiscoveryEngine } from "../discovery/index.js";
import { IConnectionManager } from "../connection/index.js";
import { PersonaManager } from "../persona/manager.js";
/**
* Enhanced Hypertool MCP server with routing capabilities
*/
export declare class EnhancedMetaMCPServer extends MetaMCPServer {
private requestRouter?;
private discoveryEngine?;
private connectionManager?;
private extensionManager?;
private toolsetManager;
private personaManager?;
private configToolsManager?;
private configurationMode;
private enterConfigurationModeTool?;
private runtimeOptions?;
private configToolsMenuEnabled;
private serverInitOptions?;
private currentServerConfigs;
private isPersonaMode;
constructor(config: MetaMCPServerConfig);
/**
* Getter methods for safe access to shared objects
*/
getPersonaManager(): PersonaManager | undefined;
/**
* Check if server is in persona mode
*/
getIsPersonaMode(): boolean;
getConnectionManager(): IConnectionManager | undefined;
getDiscoveryEngine(): IToolDiscoveryEngine | undefined;
/**
* Initialize PersonaManager early in boot sequence
*/
private initializePersonaManager;
/**
* Update PersonaManager MCP configuration handlers with actual implementations
*/
private updatePersonaMcpHandlers;
/**
* Phase 2: Collect ALL MCP configurations (persona + file + extensions)
*/
private collectAllMcpConfigs;
/**
* Handle mode change request from ConfigToolsManager (toggle mode)
*/
private handleConfigToolsModeChange;
/**
* Enhanced start method with routing initialization
*/
start(options: ServerInitOptions, runtimeOptions?: RuntimeOptions): Promise<void>;
private loadMcpConfigOrExit;
/**
* Filter out server configurations that would cause HyperTool to connect to itself
*/
private filterSelfReferencingServers;
/**
* Check if a server configuration references HyperTool itself
*/
private isSelfReferencingServer;
private connectToDownstreamServers;
/**
* Initialize routing components
*/
private initializeRouting;
/**
* Initialize tool modules with dependency injection
*/
private initializeToolModules;
/**
* Initialize and activate a persona
*/
private initializePersona;
/**
* Load MCP configuration from persona directory
*/
private loadPersonaMcpConfig;
/**
* Initialize configuration mode components
*/
private initializeConfigurationMode;
/**
* Check toolset status and warn if no toolset is equipped
*/
private checkToolsetStatus;
/**
* Get available tools based on current mode
*/
protected getAvailableTools(): Promise<Tool[]>;
/**
* Check if a tool is an internal tool that should be handled directly
*/
private isInternalTool;
/**
* Handle tool call requests with mode-based routing
*/
protected handleToolCall(name: string, args?: any): Promise<any>;
/**
* Enhanced stop method
*/
stop(): Promise<void>;
/**
* Get routing statistics (if enabled)
*/
getRoutingStats(): {
router: import("../router/types.js").RouterStats;
discovery: import("../discovery/types.js").DiscoveryStats | undefined;
connections: Record<string, import("../connection/types.js").ConnectionStatus> | undefined;
} | null;
}
//# sourceMappingURL=enhanced.d.ts.map