jezweb-mcp-core
Version:
Jezweb Model Context Protocol (MCP) Core - A universal server for providing AI tools and resources, designed for seamless integration with various AI models and clients. Features adaptable multi-provider support, comprehensive tool and resource management
150 lines • 4.84 kB
TypeScript
/**
* Transport Adapters for Thin Deployment Adapters
*
* This module provides shared transport-specific logic that can be used
* by thin deployment adapters to handle protocol-specific concerns while
* delegating all business logic to the BaseMCPHandler.
*/
import { MCPRequest, MCPResponse, MCPError } from '../types/index.js';
/**
* Transport adapter interface for deployment-specific implementations
*/
export interface TransportAdapter {
/** Handle transport-specific request preprocessing */
preprocessRequest?(request: MCPRequest): Promise<MCPRequest>;
/** Handle transport-specific response postprocessing */
postprocessResponse?(response: MCPResponse): Promise<MCPResponse>;
/** Handle transport-specific error formatting */
formatError?(error: MCPError, requestId: string | number | null): MCPResponse;
}
/**
* Cloudflare Workers Transport Adapter
* Handles HTTP-specific optimizations for Cloudflare Workers
*/
export declare class CloudflareWorkerTransportAdapter implements TransportAdapter {
preprocessRequest(request: MCPRequest): Promise<MCPRequest>;
postprocessResponse(response: MCPResponse): Promise<MCPResponse>;
formatError(error: MCPError, requestId: string | number | null): MCPResponse;
}
/**
* HTTP Transport Adapter for Cloudflare Workers
* Handles HTTP-specific request/response processing
*/
export declare class HTTPTransportAdapter {
/**
* Extract API key from URL path
*/
extractApiKeyFromPath(pathname: string): {
apiKey: string | null;
error: MCPResponse | null;
};
/**
* Parse and validate JSON-RPC request from HTTP body
*/
parseRequest(request: Request): Promise<{
mcpRequest: MCPRequest | null;
error: MCPResponse | null;
}>;
/**
* Create HTTP Response with CORS headers
*/
createResponse(data: any, status?: number): Response;
/**
* Create CORS preflight response
*/
createCORSResponse(): Response;
/**
* Create method not allowed response
*/
createMethodNotAllowedResponse(): Response;
/**
* Create error response with enhanced error details
*/
createErrorResponse(error: any, requestId?: string | number | null): Response;
}
/**
* Stdio Transport Helper Class
* Provides stdio-specific utilities for NPM package deployment
*/
declare class StdioTransportHelper {
private debug;
constructor(debug?: boolean);
/**
* Setup error handling for the process
*/
setupErrorHandling(): void;
/**
* Setup stdio interface with readline
*/
setupStdioInterface(handleInput: (line: string) => Promise<void>): void;
/**
* Parse and validate JSON-RPC request from stdio line
*/
parseRequest(line: string): {
mcpRequest: MCPRequest | null;
error: MCPResponse | null;
};
/**
* Send response via stdout
*/
sendResponse(response: MCPResponse): void;
/**
* Send error response
*/
sendErrorResponse(id: string | number | null, code: number, message: string, data?: any): void;
/**
* Create error response
*/
createErrorResponse(id: string | number | null, code: number, message: string, data?: any): MCPResponse;
/**
* Create initialize response
*/
createInitializeResponse(id: string | number, serverName: string, serverVersion: string): MCPResponse;
/**
* Create initialized notification
*/
createInitializedNotification(): any;
/**
* Validate API key from environment
*/
validateApiKey(): {
apiKey: string | null;
error: MCPResponse | null;
};
/**
* Debug logging
*/
logDebug(...args: any[]): void;
/**
* Error logging
*/
logError(...args: any[]): void;
}
/**
* Stdio Transport Adapter that implements the TransportAdapter interface
*/
export declare class StdioTransportAdapter extends StdioTransportHelper implements TransportAdapter {
preprocessRequest(request: MCPRequest): Promise<MCPRequest>;
postprocessResponse(response: MCPResponse): Promise<MCPResponse>;
formatError(error: MCPError, requestId: string | number | null): MCPResponse;
}
/**
* Alias for backward compatibility
*/
export declare const ProxyTransportAdapter: typeof CloudflareWorkerTransportAdapter;
export declare const LocalDevTransportAdapter: typeof StdioTransportAdapter;
/**
* Shared request routing logic
*/
export declare class RequestRouter {
/**
* Route request to appropriate method
*/
static getMethodType(method: string): 'initialize' | 'mcp' | 'unknown';
/**
* Check if server is initialized for MCP requests
*/
static requiresInitialization(method: string): boolean;
}
export {};
//# sourceMappingURL=transport-adapters.d.ts.map