@toolprint/hypertool-mcp
Version:
HyperTool MCP proxy server for routing requests between clients and multiple underlying MCP servers
65 lines • 2.02 kB
TypeScript
/**
* 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