mcp-proxy 2.8.1 → 2.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,7 +12,6 @@ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
12
12
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
13
13
  import { EventSource } from "eventsource";
14
14
  import { setTimeout } from "node:timers/promises";
15
- import multiline from "multiline-ts";
16
15
  if (!("EventSource" in global)) {
17
16
  global.EventSource = EventSource;
18
17
  }
@@ -66,14 +65,14 @@ try {
66
65
  await connectionPromise;
67
66
  console.info("connected to the MCP server");
68
67
  } catch (error) {
69
- console.error(multiline`
70
- could not connect to the MCP server
68
+ console.error(`
69
+ could not connect to the MCP server
71
70
 
72
- --- error ---
73
- ${String(error)}
71
+ --- error ---
72
+ ${String(error)}
74
73
 
75
- --- stderr output ---
76
- ${stderrOutput}
74
+ --- stderr output ---
75
+ ${stderrOutput}
77
76
  `);
78
77
  await setTimeout(1e3);
79
78
  process.exit(1);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bin/mcp-proxy.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport yargs from \"yargs\";\nimport { hideBin } from \"yargs/helpers\";\nimport { StdioClientTransport } from \"@modelcontextprotocol/sdk/client/stdio.js\";\nimport { Client } from \"@modelcontextprotocol/sdk/client/index.js\";\nimport { Server } from \"@modelcontextprotocol/sdk/server/index.js\";\nimport { proxyServer, startSSEServer } from \"../MCPProxy.js\";\nimport { EventSource } from \"eventsource\";\nimport { setTimeout } from \"node:timers/promises\";\nimport multiline from 'multiline-ts';\n\nif (!(\"EventSource\" in global)) {\n // @ts-expect-error - figure out how to use --experimental-eventsource with vitest\n global.EventSource = EventSource;\n}\n\nconst argv = await yargs(hideBin(process.argv))\n .scriptName(\"mcp-proxy\")\n .command(\"$0 <command> [args...]\", \"Run a command with MCP arguments\")\n .positional(\"command\", {\n type: \"string\",\n describe: \"The command to run\",\n demandOption: true,\n })\n .positional(\"args\", {\n type: \"string\",\n array: true,\n describe: \"The arguments to pass to the command\",\n })\n .options({\n debug: {\n type: \"boolean\",\n describe: \"Enable debug logging\",\n default: false,\n },\n endpoint: {\n type: \"string\",\n describe: \"The endpoint to listen on for SSE\",\n default: \"/sse\",\n },\n port: {\n type: \"number\",\n describe: \"The port to listen on for SSE\",\n default: 8080,\n },\n })\n .help()\n .parseAsync();\n\nconst transport = new StdioClientTransport({\n command: argv.command,\n args: argv.args,\n env: process.env as Record<string, string>,\n stderr: 'pipe',\n});\n\nconst client = new Client(\n {\n name: \"mcp-proxy\",\n version: \"1.0.0\",\n },\n {\n capabilities: {},\n },\n);\n\n\nlet stderrOutput = '';\n\ntry {\n console.info('connecting to the MCP server...');\n\n const connectionPromise = client.connect(transport);\n\n transport?.stderr?.on('data', (chunk) => {\n stderrOutput += chunk.toString();\n });\n\n await connectionPromise;\n\n console.info('connected to the MCP server');\n} catch (error) {\n console.error(multiline`\n could not connect to the MCP server\n\n --- error ---\n ${String(error)}\n\n --- stderr output ---\n ${stderrOutput}\n`);\n\n await setTimeout(1000);\n\n process.exit(1);\n}\n\nconst serverVersion = client.getServerVersion() as {\n name: string;\n version: string;\n};\n\nconst serverCapabilities = client.getServerCapabilities() as {};\n\ntry {\n console.info('starting the SSE server on port %d', argv.port);\n\n await startSSEServer({\n createServer: async () => {\n const server = new Server(serverVersion, {\n capabilities: serverCapabilities,\n });\n \n proxyServer({\n server,\n client,\n serverCapabilities,\n });\n \n return server;\n },\n port: argv.port,\n endpoint: argv.endpoint as `/${string}`,\n });\n} catch (error) {\n console.error('could not start the SSE server', error);\n\n await setTimeout(1000);\n\n process.exit(1);\n}\n"],"mappings":";;;;;;;AAEA,OAAO,WAAW;AAClB,SAAS,eAAe;AACxB,SAAS,4BAA4B;AACrC,SAAS,cAAc;AACvB,SAAS,cAAc;AAEvB,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAC3B,OAAO,eAAe;AAEtB,IAAI,EAAE,iBAAiB,SAAS;AAE9B,SAAO,cAAc;AACvB;AAEA,IAAM,OAAO,MAAM,MAAM,QAAQ,QAAQ,IAAI,CAAC,EAC3C,WAAW,WAAW,EACtB,QAAQ,0BAA0B,kCAAkC,EACpE,WAAW,WAAW;AAAA,EACrB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,cAAc;AAChB,CAAC,EACA,WAAW,QAAQ;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AACZ,CAAC,EACA,QAAQ;AAAA,EACP,OAAO;AAAA,IACL,MAAM;AAAA,IACN,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AAAA,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AAAA,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AACF,CAAC,EACA,KAAK,EACL,WAAW;AAEd,IAAM,YAAY,IAAI,qBAAqB;AAAA,EACzC,SAAS,KAAK;AAAA,EACd,MAAM,KAAK;AAAA,EACX,KAAK,QAAQ;AAAA,EACb,QAAQ;AACV,CAAC;AAED,IAAM,SAAS,IAAI;AAAA,EACjB;AAAA,IACE,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,cAAc,CAAC;AAAA,EACjB;AACF;AAGA,IAAI,eAAe;AAEnB,IAAI;AACF,UAAQ,KAAK,iCAAiC;AAE9C,QAAM,oBAAoB,OAAO,QAAQ,SAAS;AAElD,aAAW,QAAQ,GAAG,QAAQ,CAAC,UAAU;AACvC,oBAAgB,MAAM,SAAS;AAAA,EACjC,CAAC;AAED,QAAM;AAEN,UAAQ,KAAK,6BAA6B;AAC5C,SAAS,OAAO;AACd,UAAQ,MAAM;AAAA;AAAA;AAAA;AAAA,MAIV,OAAO,KAAK,CAAC;AAAA;AAAA;AAAA,MAGb,YAAY;AAAA,CACjB;AAEC,QAAM,WAAW,GAAI;AAErB,UAAQ,KAAK,CAAC;AAChB;AAEA,IAAM,gBAAgB,OAAO,iBAAiB;AAK9C,IAAM,qBAAqB,OAAO,sBAAsB;AAExD,IAAI;AACF,UAAQ,KAAK,sCAAsC,KAAK,IAAI;AAE5D,QAAM,eAAe;AAAA,IACnB,cAAc,YAAY;AACxB,YAAM,SAAS,IAAI,OAAO,eAAe;AAAA,QACvC,cAAc;AAAA,MAChB,CAAC;AAED,kBAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAED,aAAO;AAAA,IACT;AAAA,IACA,MAAM,KAAK;AAAA,IACX,UAAU,KAAK;AAAA,EACjB,CAAC;AACH,SAAS,OAAO;AACd,UAAQ,MAAM,kCAAkC,KAAK;AAErD,QAAM,WAAW,GAAI;AAErB,UAAQ,KAAK,CAAC;AAChB;","names":[]}
1
+ {"version":3,"sources":["../../src/bin/mcp-proxy.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport yargs from \"yargs\";\nimport { hideBin } from \"yargs/helpers\";\nimport { StdioClientTransport } from \"@modelcontextprotocol/sdk/client/stdio.js\";\nimport { Client } from \"@modelcontextprotocol/sdk/client/index.js\";\nimport { Server } from \"@modelcontextprotocol/sdk/server/index.js\";\nimport { proxyServer, startSSEServer } from \"../MCPProxy.js\";\nimport { EventSource } from \"eventsource\";\nimport { setTimeout } from \"node:timers/promises\";\n\nif (!(\"EventSource\" in global)) {\n // @ts-expect-error - figure out how to use --experimental-eventsource with vitest\n global.EventSource = EventSource;\n}\n\nconst argv = await yargs(hideBin(process.argv))\n .scriptName(\"mcp-proxy\")\n .command(\"$0 <command> [args...]\", \"Run a command with MCP arguments\")\n .positional(\"command\", {\n type: \"string\",\n describe: \"The command to run\",\n demandOption: true,\n })\n .positional(\"args\", {\n type: \"string\",\n array: true,\n describe: \"The arguments to pass to the command\",\n })\n .options({\n debug: {\n type: \"boolean\",\n describe: \"Enable debug logging\",\n default: false,\n },\n endpoint: {\n type: \"string\",\n describe: \"The endpoint to listen on for SSE\",\n default: \"/sse\",\n },\n port: {\n type: \"number\",\n describe: \"The port to listen on for SSE\",\n default: 8080,\n },\n })\n .help()\n .parseAsync();\n\nconst transport = new StdioClientTransport({\n command: argv.command,\n args: argv.args,\n env: process.env as Record<string, string>,\n stderr: 'pipe',\n});\n\nconst client = new Client(\n {\n name: \"mcp-proxy\",\n version: \"1.0.0\",\n },\n {\n capabilities: {},\n },\n);\n\n\nlet stderrOutput = '';\n\ntry {\n console.info('connecting to the MCP server...');\n\n const connectionPromise = client.connect(transport);\n\n transport?.stderr?.on('data', (chunk) => {\n stderrOutput += chunk.toString();\n });\n\n await connectionPromise;\n\n console.info('connected to the MCP server');\n} catch (error) {\n console.error(`\ncould not connect to the MCP server\n\n--- error ---\n${String(error)}\n\n--- stderr output ---\n${stderrOutput}\n`);\n\n await setTimeout(1000);\n\n process.exit(1);\n}\n\nconst serverVersion = client.getServerVersion() as {\n name: string;\n version: string;\n};\n\nconst serverCapabilities = client.getServerCapabilities() as {};\n\ntry {\n console.info('starting the SSE server on port %d', argv.port);\n\n await startSSEServer({\n createServer: async () => {\n const server = new Server(serverVersion, {\n capabilities: serverCapabilities,\n });\n \n proxyServer({\n server,\n client,\n serverCapabilities,\n });\n \n return server;\n },\n port: argv.port,\n endpoint: argv.endpoint as `/${string}`,\n });\n} catch (error) {\n console.error('could not start the SSE server', error);\n\n await setTimeout(1000);\n\n process.exit(1);\n}\n"],"mappings":";;;;;;;AAEA,OAAO,WAAW;AAClB,SAAS,eAAe;AACxB,SAAS,4BAA4B;AACrC,SAAS,cAAc;AACvB,SAAS,cAAc;AAEvB,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAE3B,IAAI,EAAE,iBAAiB,SAAS;AAE9B,SAAO,cAAc;AACvB;AAEA,IAAM,OAAO,MAAM,MAAM,QAAQ,QAAQ,IAAI,CAAC,EAC3C,WAAW,WAAW,EACtB,QAAQ,0BAA0B,kCAAkC,EACpE,WAAW,WAAW;AAAA,EACrB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,cAAc;AAChB,CAAC,EACA,WAAW,QAAQ;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AACZ,CAAC,EACA,QAAQ;AAAA,EACP,OAAO;AAAA,IACL,MAAM;AAAA,IACN,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AAAA,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AAAA,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AACF,CAAC,EACA,KAAK,EACL,WAAW;AAEd,IAAM,YAAY,IAAI,qBAAqB;AAAA,EACzC,SAAS,KAAK;AAAA,EACd,MAAM,KAAK;AAAA,EACX,KAAK,QAAQ;AAAA,EACb,QAAQ;AACV,CAAC;AAED,IAAM,SAAS,IAAI;AAAA,EACjB;AAAA,IACE,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,cAAc,CAAC;AAAA,EACjB;AACF;AAGA,IAAI,eAAe;AAEnB,IAAI;AACF,UAAQ,KAAK,iCAAiC;AAE9C,QAAM,oBAAoB,OAAO,QAAQ,SAAS;AAElD,aAAW,QAAQ,GAAG,QAAQ,CAAC,UAAU;AACvC,oBAAgB,MAAM,SAAS;AAAA,EACjC,CAAC;AAED,QAAM;AAEN,UAAQ,KAAK,6BAA6B;AAC5C,SAAS,OAAO;AACd,UAAQ,MAAM;AAAA;AAAA;AAAA;AAAA,EAId,OAAO,KAAK,CAAC;AAAA;AAAA;AAAA,EAGb,YAAY;AAAA,CACb;AAEC,QAAM,WAAW,GAAI;AAErB,UAAQ,KAAK,CAAC;AAChB;AAEA,IAAM,gBAAgB,OAAO,iBAAiB;AAK9C,IAAM,qBAAqB,OAAO,sBAAsB;AAExD,IAAI;AACF,UAAQ,KAAK,sCAAsC,KAAK,IAAI;AAE5D,QAAM,eAAe;AAAA,IACnB,cAAc,YAAY;AACxB,YAAM,SAAS,IAAI,OAAO,eAAe;AAAA,QACvC,cAAc;AAAA,MAChB,CAAC;AAED,kBAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAED,aAAO;AAAA,IACT;AAAA,IACA,MAAM,KAAK;AAAA,IACX,UAAU,KAAK;AAAA,EACjB,CAAC;AACH,SAAS,OAAO;AACd,UAAQ,MAAM,kCAAkC,KAAK;AAErD,QAAM,WAAW,GAAI;AAErB,UAAQ,KAAK,CAAC;AAChB;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-proxy",
3
- "version": "2.8.1",
3
+ "version": "2.8.2",
4
4
  "main": "dist/MCPProxy.js",
5
5
  "scripts": {
6
6
  "build": "tsup",
@@ -25,7 +25,6 @@
25
25
  "@modelcontextprotocol/sdk": "^1.6.0",
26
26
  "eventsource": "^3.0.5",
27
27
  "fastmcp": "^1.18.0",
28
- "multiline-ts": "^4.0.1",
29
28
  "yargs": "^17.7.2"
30
29
  },
31
30
  "repository": {
@@ -8,7 +8,6 @@ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
8
8
  import { proxyServer, startSSEServer } from "../MCPProxy.js";
9
9
  import { EventSource } from "eventsource";
10
10
  import { setTimeout } from "node:timers/promises";
11
- import multiline from 'multiline-ts';
12
11
 
13
12
  if (!("EventSource" in global)) {
14
13
  // @ts-expect-error - figure out how to use --experimental-eventsource with vitest
@@ -81,14 +80,14 @@ try {
81
80
 
82
81
  console.info('connected to the MCP server');
83
82
  } catch (error) {
84
- console.error(multiline`
85
- could not connect to the MCP server
83
+ console.error(`
84
+ could not connect to the MCP server
86
85
 
87
- --- error ---
88
- ${String(error)}
86
+ --- error ---
87
+ ${String(error)}
89
88
 
90
- --- stderr output ---
91
- ${stderrOutput}
89
+ --- stderr output ---
90
+ ${stderrOutput}
92
91
  `);
93
92
 
94
93
  await setTimeout(1000);