@toolprint/hypertool-mcp
Version:
HyperTool MCP proxy server for routing requests between clients and multiple underlying MCP servers
72 lines • 1.97 kB
TypeScript
/**
* Base Hypertool MCP server implementation
* Provides core MCP server functionality with transport abstraction
*/
import { Tool } from "@modelcontextprotocol/sdk/types.js";
import { MetaMCPServerConfig, ServerInitOptions, ServerStatus } from "./types.js";
import { EventEmitter } from "events";
/**
* Base Hypertool MCP server class
* Handles MCP protocol implementation with pluggable transport layer
*/
export declare class MetaMCPServer extends EventEmitter {
private server;
private stdioTransport;
private httpServer?;
private config;
private state;
private startTime?;
private connectedClients;
constructor(config: MetaMCPServerConfig);
/**
* Setup MCP protocol handlers
*/
private setupHandlers;
/**
* Get available tools from underlying servers
* To be implemented by subclasses
*/
protected getAvailableTools(): Promise<Tool[]>;
/**
* Handle tool call requests
* To be implemented by subclasses
*/
protected handleToolCall(name: string, _args?: unknown): Promise<any>;
/**
* Initialize and start the server
*/
start(options: ServerInitOptions): Promise<void>;
/**
* Setup Express.js HTTP server for streamable MCP transport
*/
private setupHttpServer;
/**
* Stop the server
*/
stop(): Promise<void>;
/**
* Get current server status
*/
getStatus(): ServerStatus;
/**
* Get server configuration
*/
getConfig(): MetaMCPServerConfig;
/**
* Send tools list changed notification to clients
*/
protected notifyToolsChanged(): Promise<void>;
/**
* Set server state and emit event
*/
private setState;
/**
* Handle client connection events
*/
protected onClientConnected(): void;
/**
* Handle client disconnection events
*/
protected onClientDisconnected(): void;
}
//# sourceMappingURL=base.d.ts.map