@@ -3,22 +3,9 @@ import cors from "cors";
3
3
import { Server } from "mcp-typescript/server/index.js" ;
4
4
import { SSEServerTransport } from "mcp-typescript/server/sse.js" ;
5
5
import express from "express" ;
6
- import {
7
- CallToolRequestSchema ,
8
- GetPromptRequestSchema ,
9
- ListPromptsRequestSchema ,
10
- ListResourcesRequestSchema ,
11
- ListToolsRequestSchema ,
12
- ReadResourceRequestSchema ,
13
- ListResourcesResultSchema ,
14
- ReadResourceResultSchema ,
15
- ListPromptsResultSchema ,
16
- GetPromptResultSchema ,
17
- ListToolsResultSchema ,
18
- CallToolResultSchema ,
19
- } from "mcp-typescript/types.js" ;
20
6
import { Client } from "mcp-typescript/client/index.js" ;
21
7
import { StdioClientTransport } from "mcp-typescript/client/stdio.js" ;
8
+ import mcpProxy from "./mcpProxy.js" ;
22
9
23
10
const app = express ( ) ;
24
11
app . use ( cors ( ) ) ;
@@ -47,65 +34,17 @@ app.get("/sse", async (req, res) => {
47
34
await mcpClient . close ( ) ;
48
35
} ;
49
36
50
- server . setRequestHandler ( ListResourcesRequestSchema , ( ) =>
51
- mcpClient . request (
52
- {
53
- method : "resources/list" ,
54
- } ,
55
- ListResourcesResultSchema ,
56
- ) ,
57
- ) ;
58
-
59
- server . setRequestHandler ( ReadResourceRequestSchema , ( params ) =>
60
- mcpClient . request (
61
- {
62
- method : "resources/read" ,
63
- params : params . params ,
64
- } ,
65
- ReadResourceResultSchema ,
66
- ) ,
67
- ) ;
68
-
69
- server . setRequestHandler ( ListPromptsRequestSchema , ( ) =>
70
- mcpClient . request (
71
- {
72
- method : "prompts/list" ,
73
- } ,
74
- ListPromptsResultSchema ,
75
- ) ,
76
- ) ;
77
-
78
- server . setRequestHandler ( GetPromptRequestSchema , ( params ) => {
79
- return mcpClient . request (
80
- {
81
- method : "prompts/get" ,
82
- params : params . params ,
83
- } ,
84
- GetPromptResultSchema ,
85
- ) ;
86
- } ) ;
87
-
88
- server . setRequestHandler ( ListToolsRequestSchema , ( ) =>
89
- mcpClient . request (
90
- {
91
- method : "tools/list" ,
92
- } ,
93
- ListToolsResultSchema ,
94
- ) ,
95
- ) ;
96
-
97
- server . setRequestHandler ( CallToolRequestSchema , ( params ) =>
98
- mcpClient . request (
99
- {
100
- method : "tools/call" ,
101
- params : params . params ,
102
- } ,
103
- CallToolResultSchema ,
104
- ) ,
105
- ) ;
106
-
107
37
await webAppTransport . connectSSE ( req , res ) ;
108
38
await server . connect ( webAppTransport ) ;
39
+
40
+ mcpProxy ( {
41
+ transportToClient : webAppTransport ,
42
+ transportToServer : backingServerTransport ,
43
+ onerror : ( error ) => {
44
+ console . error ( error ) ;
45
+ server . close ( ) ;
46
+ } ,
47
+ } ) ;
109
48
} ) ;
110
49
111
50
app . post ( "/message" , async ( req , res ) => {
0 commit comments