@aiwerk/mcp-bridge 2.8.32 → 2.8.33

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.
@@ -593,6 +593,41 @@ async function cmdInstall(serverName, args, logger) {
593
593
  }
594
594
  else {
595
595
  process.stdout.write(`All required environment variables are set. Ready to use.\n`);
596
+ // Pre-discover tools and cache them (so direct mode has tools on first start)
597
+ process.stdout.write(`\nDiscovering tools...\n`);
598
+ try {
599
+ const { StdioTransport } = await import("../src/transport-stdio.js");
600
+ const { SseTransport } = await import("../src/transport-sse.js");
601
+ const { StreamableHttpTransport } = await import("../src/transport-streamable-http.js");
602
+ const { fetchToolsList, initializeProtocol, PACKAGE_VERSION } = await import("../src/protocol.js");
603
+ let transport;
604
+ if (serverConfig.transport === "stdio") {
605
+ transport = new StdioTransport(serverConfig, { servers: {} }, logger, async () => { });
606
+ }
607
+ else if (serverConfig.transport === "sse") {
608
+ transport = new SseTransport(serverConfig, { servers: {} }, logger, async () => { });
609
+ }
610
+ else if (serverConfig.transport === "streamable-http") {
611
+ transport = new StreamableHttpTransport(serverConfig, { servers: {} }, logger, async () => { });
612
+ }
613
+ if (transport) {
614
+ await transport.connect();
615
+ await initializeProtocol(transport, PACKAGE_VERSION);
616
+ const tools = await fetchToolsList(transport);
617
+ // Save to cache
618
+ const cacheToolDir = join(configDir, "cache");
619
+ mkdirSync(cacheToolDir, { recursive: true });
620
+ writeFileSync(join(cacheToolDir, `${serverName}-tools.json`), JSON.stringify(tools, null, 2), "utf-8");
621
+ process.stdout.write(`✓ Cached ${tools.length} tools from "${serverName}"\n`);
622
+ // Disconnect
623
+ await transport.disconnect().catch(() => { });
624
+ }
625
+ }
626
+ catch (discErr) {
627
+ // Non-fatal: tool discovery is a nice-to-have, server still installed
628
+ logger.info(`Tool discovery skipped: ${discErr instanceof Error ? discErr.message : String(discErr)}`);
629
+ process.stdout.write(`Tool discovery skipped (server will discover tools on first use).\n`);
630
+ }
596
631
  }
597
632
  }
598
633
  async function cmdUpdate(logger, checkOnly) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiwerk/mcp-bridge",
3
- "version": "2.8.32",
3
+ "version": "2.8.33",
4
4
  "description": "Standalone MCP server that multiplexes multiple MCP servers into one interface",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",