MCPcopy Create free account
hub / github.com/modelcontextprotocol/typescript-sdk / createTestServerWithSse

Function createTestServerWithSse

test/server/sse.test.ts:112–153  ·  view source on GitHub ↗

* Helper to create and start test HTTP server with MCP setup

(args: { mockRes: http.ServerResponse })

Source from the content-addressed store, hash-verified

110 * Helper to create and start test HTTP server with MCP setup
111 */
112 async function createTestServerWithSse(args: { mockRes: http.ServerResponse }): Promise<{
113 server: Server;
114 transport: SSEServerTransport;
115 mcpServer: McpServer;
116 baseUrl: URL;
117 sessionId: string;
118 serverPort: number;
119 }> {
120 const mcpServer = new McpServer({ name: 'test-server', version: '1.0.0' }, { capabilities: { logging: {} } });
121
122 mcpServer.tool(
123 'greet',
124 'A simple greeting tool',
125 { name: z.string().describe('Name to greet') },
126 async ({ name }): Promise<CallToolResult> => {
127 return { content: [{ type: 'text', text: `Hello, ${name}!` }] };
128 }
129 );
130
131 const endpoint = '/messages';
132
133 const transport = new SSEServerTransport(endpoint, args.mockRes);
134 const sessionId = transport.sessionId;
135
136 await mcpServer.connect(transport);
137
138 const server = createServer(async (req, res) => {
139 try {
140 await transport.handlePostMessage(req, res);
141 } catch (error) {
142 console.error('Error handling request:', error);
143 if (!res.headersSent) res.writeHead(500).end();
144 }
145 });
146
147 const baseUrl = await listenOnRandomPort(server);
148
149 const addr = server.address();
150 const port = typeof addr === 'string' ? new URL(baseUrl).port : (addr as any).port;
151
152 return { server, transport, mcpServer, baseUrl, sessionId, serverPort: Number(port) };
153 }
154
155 describe('SSEServerTransport', () => {
156 async function initializeServer(baseUrl: URL): Promise<void> {

Callers 1

sse.test.tsFile · 0.85

Calls 5

toolMethod · 0.95
connectMethod · 0.95
handlePostMessageMethod · 0.95
createServerFunction · 0.85
listenOnRandomPortFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…