/** * @name web-standard-transport * @description Web Standard Streamable HTTP transport for SAP MCP Server. * * Uses the MCP SDK's `WebStandardStreamableHTTPServerTransport` which runs on * any runtime that supports Web Standard APIs: Node.js 18+, Cloudflare Workers, * Deno, Bun, Vercel Edge Functions, etc. * * This enables edge deployment of the SAP MCP gateway for global low-latency * access without Node.js-specific HTTP APIs. * * @module transports/web-standard */ import { Server } from '@modelcontextprotocol/sdk/server/index.js'; import { WebStandardStreamableHTTPServerTransport, type EventStore, type StreamId, type EventId } from '@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js'; import type { JSONRPCMessage } from '@modelcontextprotocol/sdk/types.js'; /** * @name WebStandardTransportOptions * @description Configuration for the web standard transport. */ export interface WebStandardTransportOptions { /** * Event store for stream resumability. When provided, clients can resume * interrupted SSE streams using the `Last-Event-ID` header. */ eventStore?: EventStore; /** * Enable session management. When true, each client gets a dedicated * session ID and must include it in subsequent requests. */ enableSessionManagement?: boolean; /** * Maximum message size in bytes (default: 4MB). */ maxMessageSize?: number; } /** * @name InMemoryEventStore * @description Simple in-memory event store for SSE stream resumability. * For production with multiple instances, use a Redis-backed implementation. */ export declare class InMemoryEventStore implements EventStore { private readonly events; private readonly eventIndex; private counter; storeEvent(streamId: StreamId, message: JSONRPCMessage): Promise; getStreamIdForEventId(eventId: EventId): Promise; replayEventsAfter(lastEventId: EventId, { send }: { send: (eventId: EventId, message: JSONRPCMessage) => Promise; }): Promise; /** * @name cleanup * @description Remove old events for a stream to prevent memory growth. */ cleanup(streamId: StreamId, keepLast?: number): void; } /** * @name createWebStandardTransport * @description Creates a Web Standard Streamable HTTP transport for the SAP MCP server. * Returns the transport instance that can be connected to an MCP Server. * * @example * ```ts * const transport = createWebStandardTransport({ * enableSessionManagement: true, * eventStore: new InMemoryEventStore(), * }); * await server.connect(transport); * ``` */ export declare function createWebStandardTransport(options?: WebStandardTransportOptions): WebStandardStreamableHTTPServerTransport; /** * @name handleWebStandardRequest * @description Handle an incoming Web Standard Request and return a Response. * This is the entry point for edge runtimes (Cloudflare Workers, Deno, Bun). * * @example Cloudflare Workers * ```ts * export default { * async fetch(request: Request): Promise { * return handleWebStandardRequest(transport, server, request); * } * }; * ``` */ export declare function handleWebStandardRequest(transport: WebStandardStreamableHTTPServerTransport, _server: Server, request: Request): Promise; //# sourceMappingURL=web-standard.d.ts.map