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