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

Function runServer

scripts/cli.ts:60–131  ·  view source on GitHub ↗
(port: number | null)

Source from the content-addressed store, hash-verified

58}
59
60async function runServer(port: number | null) {
61 if (port !== null) {
62 const app = express();
63
64 let servers: Server[] = [];
65
66 app.get('/sse', async (req, res) => {
67 console.log('Got new SSE connection');
68
69 const transport = new SSEServerTransport('/message', res);
70 const server = new Server(
71 {
72 name: 'mcp-typescript test server',
73 version: '0.1.0'
74 },
75 {
76 capabilities: {}
77 }
78 );
79
80 servers.push(server);
81
82 server.onclose = () => {
83 console.log('SSE connection closed');
84 servers = servers.filter(s => s !== server);
85 };
86
87 await server.connect(transport);
88 });
89
90 app.post('/message', async (req, res) => {
91 console.log('Received message');
92
93 const sessionId = req.query.sessionId as string;
94 const transport = servers.map(s => s.transport as SSEServerTransport).find(t => t.sessionId === sessionId);
95 if (!transport) {
96 res.status(404).send('Session not found');
97 return;
98 }
99
100 await transport.handlePostMessage(req, res);
101 });
102
103 app.listen(port, error => {
104 if (error) {
105 console.error('Failed to start server:', error);
106 process.exit(1);
107 }
108 console.log(`Server running on http://localhost:${port}/sse`);
109 });
110 } else {
111 const server = new Server(
112 {
113 name: 'mcp-typescript test server',
114 version: '0.1.0'
115 },
116 {
117 capabilities: {

Callers 1

cli.tsFile · 0.85

Calls 3

handlePostMessageMethod · 0.80
sendMethod · 0.65
connectMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…