UNPKG

@toolprint/hypertool-mcp

Version:

HyperTool MCP proxy server for routing requests between clients and multiple underlying MCP servers

65 lines • 2.02 kB
/** * Request router implementation * Routes tool calls to appropriate underlying MCP servers */ import { EventEmitter } from "events"; import { CallToolRequest, CallToolResult } from "@modelcontextprotocol/sdk/types.js"; import { IRequestRouter, RouteContext, RoutingResult, RouterConfig, RouterStats } from "./types.js"; import { IToolDiscoveryEngine, DiscoveredTool } from "../discovery/types.js"; import { IConnectionManager } from "../connection/types.js"; /** * Request router implementation */ export declare class RequestRouter extends EventEmitter implements IRequestRouter { private config; private discoveryEngine; private connectionManager; private stats; private requestLog; constructor(discoveryEngine: IToolDiscoveryEngine, connectionManager: IConnectionManager); /** * Initialize the router with configuration */ initialize(config?: RouterConfig): Promise<void>; /** * Route a tool call request to the appropriate server */ routeToolCall(request: CallToolRequest["params"], context?: Partial<RouteContext>): Promise<CallToolResult>; /** * Resolve tool name to routing information */ resolveToolRoute(toolName: string): Promise<RoutingResult>; /** * Validate request parameters against tool schema */ validateRequest(request: CallToolRequest["params"], tool: DiscoveredTool): Promise<boolean>; /** * Make tool call to underlying server */ private makeToolCall; /** * Get router statistics */ getStats(): RouterStats; /** * Clear router statistics */ clearStats(): void; /** * Enable or disable request logging */ setLogging(enabled: boolean): void; /** * Create empty statistics object */ private createEmptyStats; /** * Update statistics after a request */ private updateStats; /** * Log message if logging is enabled */ private log; } //# sourceMappingURL=router.d.ts.map