mcp-use
Version:
Opinionated MCP Framework for TypeScript (@modelcontextprotocol/sdk compatible) - Build MCP Agents, Clients and Servers with support for ChatGPT Apps, Code Mode, OAuth, Notifications, Sampling, Observability and more.
76 lines • 2.19 kB
TypeScript
/**
* In-Memory Stream Manager
*
* Default implementation for managing active SSE connections in a single server instance.
* Streams are stored in memory and lost on server restart.
*
* For distributed deployments, use RedisStreamManager or PostgresStreamManager.
*/
import type { StreamManager } from "./index.js";
/**
* In-memory stream management for SSE connections
*
* Stores active ReadableStreamDefaultController instances for pushing
* server-initiated messages (notifications, sampling responses) to clients.
*
* Suitable for:
* - Single-instance deployments
* - Development environments
* - Non-distributed architectures
*
* Not suitable for:
* - Load-balanced deployments (streams on different servers)
* - Horizontal scaling
* - Session persistence requirements
*
* @example
* ```typescript
* import { MCPServer, InMemoryStreamManager } from 'mcp-use/server';
*
* const server = new MCPServer({
* name: 'my-server',
* version: '1.0.0',
* streamManager: new InMemoryStreamManager()
* });
* ```
*/
export declare class InMemoryStreamManager implements StreamManager {
/**
* Map of active SSE stream controllers
* Key: sessionId, Value: ReadableStreamDefaultController
*/
private streams;
/**
* Text encoder for converting strings to Uint8Array
*/
private textEncoder;
/**
* Register an active SSE stream controller
*/
create(sessionId: string, controller: ReadableStreamDefaultController): Promise<void>;
/**
* Send data to active SSE streams
*
* Directly enqueues data to in-memory controllers.
* For distributed deployments, use RedisStreamManager instead.
*/
send(sessionIds: string[] | undefined, data: string): Promise<void>;
/**
* Remove an active SSE stream
*/
delete(sessionId: string): Promise<void>;
/**
* Check if an active stream exists
*/
has(sessionId: string): Promise<boolean>;
/**
* Close all active streams
*/
close(): Promise<void>;
/**
* Get the number of active streams
* Useful for monitoring
*/
get size(): number;
}
//# sourceMappingURL=memory.d.ts.map