@@ -3,22 +3,9 @@ import cors from "cors";
33import { Server } from "mcp-typescript/server/index.js" ;
44import { SSEServerTransport } from "mcp-typescript/server/sse.js" ;
55import 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" ;
206import { Client } from "mcp-typescript/client/index.js" ;
217import { StdioClientTransport } from "mcp-typescript/client/stdio.js" ;
8+ import mcpProxy from "./mcpProxy.js" ;
229
2310const app = express ( ) ;
2411app . use ( cors ( ) ) ;
@@ -47,65 +34,17 @@ app.get("/sse", async (req, res) => {
4734 await mcpClient . close ( ) ;
4835 } ;
4936
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-
10737 await webAppTransport . connectSSE ( req , res ) ;
10838 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+ } ) ;
10948} ) ;
11049
11150app . post ( "/message" , async ( req , res ) => {
0 commit comments