-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathindex.ts
More file actions
62 lines (53 loc) · 1.86 KB
/
index.ts
File metadata and controls
62 lines (53 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import express, { type Request } from 'express';
import expressWs from 'express-ws';
import cors from 'cors';
import dotenv from 'dotenv';
import { createConnector, createSSEConnector } from './connector';
import { createProxyServer } from './proxy-server';
import { createChat } from './chat';
dotenv.config();
const chatConfigFn = (req: Request) => ({
llmConfig: {
url: process.env.url,
apiKey: process.env.apiKey,
model: process.env.model,
systemPrompt: process.env.systemPrompt,
},
maxIterationSteps: 3,
mcpServersConfig: {
mcpServers: {
// http with sse(deprecated )
// 'localhost-mcp': {
// url: `http://127.0.0.1:3001/sse?client=${req.headers['connector-client-id'] as string}&code=${req.headers['mcp-verify-code']}`,
// headers: {},
// timeout: 60
// },
'localhost-mcp-streamable-http': {
url: 'http://127.0.0.1:3001/mcp',
headers: {
'connector-client-id': req.headers['connector-client-id'],
'mcp-verify-code': req.headers['mcp-verify-code'],
},
timeout: 60,
},
},
},
});
// const { connectorCenter, websocketConnectionHandler } = createConnector();
const { connectorCenter } = createSSEConnector();
const { sseHandlers, streamableHttpHandlers } = createProxyServer({ connectorCenter });
const { chatHandler } = createChat(chatConfigFn);
const app = express();
expressWs(app);
app.use(cors());
// // connector
// (app as unknown as expressWs.WithWebsocketMethod).ws('/ws', websocketConnectionHandler);
// mcp server
app.get('/mcp', streamableHttpHandlers.sessionHandler);
app.delete('/mcp', streamableHttpHandlers.sessionHandler);
app.post('/mcp', streamableHttpHandlers.messageHandler);
app.get('/sse', sseHandlers.sessionHandler);
app.post('/messages', sseHandlers.messageHandler);
// chat
app.post('/chat', chatHandler);
app.listen(3001);