Files
n8n-enterprise-unlocked/packages/@n8n/nodes-langchain/nodes/Mcp/FlushingSSEServerTransport.ts
jeanpaul 8360283c6f feat(MCP Server Trigger Node): Add MCP Server Trigger node to expose tools to MCP clients (#14403)
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2025-04-09 14:45:24 +02:00

27 lines
772 B
TypeScript

import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';
import type { JSONRPCMessage } from '@modelcontextprotocol/sdk/types.js';
import type { Response } from 'express';
export type CompressionResponse = Response & {
/**
* `flush()` is defined in the compression middleware.
* This is necessary because the compression middleware sometimes waits
* for a certain amount of data before sending the data to the client
*/
flush: () => void;
};
export class FlushingSSEServerTransport extends SSEServerTransport {
constructor(
_endpoint: string,
private response: CompressionResponse,
) {
super(_endpoint, response);
}
async send(message: JSONRPCMessage): Promise<void> {
await super.send(message);
this.response.flush();
}
}