@cubis/foundry 0.3.43 → 0.3.44
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/README.md +10 -0
- package/bin/cubis.js +7 -33
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -303,6 +303,10 @@ cbx mcp tools list --service postman --scope global
|
|
|
303
303
|
cbx mcp tools list --service stitch --scope global
|
|
304
304
|
```
|
|
305
305
|
|
|
306
|
+
Notes:
|
|
307
|
+
- `cbx mcp tools sync` requires `POSTMAN_API_KEY_DEFAULT`.
|
|
308
|
+
- For `--service stitch` or `--service all`, it also requires `STITCH_API_KEY_DEFAULT`.
|
|
309
|
+
|
|
306
310
|
Foundry local serve command (canonical entrypoint for MCP client registration):
|
|
307
311
|
|
|
308
312
|
```bash
|
|
@@ -338,6 +342,12 @@ Docker E2E MCP check (single command):
|
|
|
338
342
|
npm run test:mcp:docker
|
|
339
343
|
```
|
|
340
344
|
|
|
345
|
+
If port `3310` is already in use (for example by an existing `cbx-mcp` runtime), use a different port:
|
|
346
|
+
|
|
347
|
+
```bash
|
|
348
|
+
CBX_MCP_PORT=3999 npm run test:mcp:docker
|
|
349
|
+
```
|
|
350
|
+
|
|
341
351
|
Optional strict key mode:
|
|
342
352
|
|
|
343
353
|
```bash
|
package/bin/cubis.js
CHANGED
|
@@ -7913,51 +7913,25 @@ async function waitForMcpEndpointReady({
|
|
|
7913
7913
|
let lastError = null;
|
|
7914
7914
|
|
|
7915
7915
|
while (Date.now() - startedAt < timeoutMs) {
|
|
7916
|
-
let sessionId = null;
|
|
7917
7916
|
try {
|
|
7918
|
-
const init = await sendMcpJsonRpcRequest({
|
|
7919
|
-
url,
|
|
7920
|
-
method: "initialize",
|
|
7921
|
-
id: `cbx-runtime-init-${Date.now()}`,
|
|
7922
|
-
params: {
|
|
7923
|
-
protocolVersion: "2025-06-18",
|
|
7924
|
-
capabilities: {},
|
|
7925
|
-
clientInfo: {
|
|
7926
|
-
name: "cbx-runtime",
|
|
7927
|
-
version: CLI_VERSION,
|
|
7928
|
-
},
|
|
7929
|
-
},
|
|
7930
|
-
headers,
|
|
7931
|
-
});
|
|
7932
|
-
sessionId = init.sessionId;
|
|
7933
7917
|
await sendMcpJsonRpcRequest({
|
|
7934
7918
|
url,
|
|
7935
|
-
method: "
|
|
7919
|
+
method: "tools/list",
|
|
7920
|
+
id: `cbx-runtime-ready-${Date.now()}`,
|
|
7936
7921
|
params: {},
|
|
7937
7922
|
headers,
|
|
7938
|
-
sessionId,
|
|
7939
7923
|
});
|
|
7940
7924
|
return true;
|
|
7941
7925
|
} catch (error) {
|
|
7942
7926
|
const message = String(error?.message || "").toLowerCase();
|
|
7943
|
-
if (
|
|
7927
|
+
if (
|
|
7928
|
+
message.includes("server not initialized") ||
|
|
7929
|
+
message.includes("mcp-session-id header is required") ||
|
|
7930
|
+
message.includes("already initialized")
|
|
7931
|
+
) {
|
|
7944
7932
|
return true;
|
|
7945
7933
|
}
|
|
7946
7934
|
lastError = error;
|
|
7947
|
-
} finally {
|
|
7948
|
-
if (sessionId) {
|
|
7949
|
-
try {
|
|
7950
|
-
await fetch(url, {
|
|
7951
|
-
method: "DELETE",
|
|
7952
|
-
headers: {
|
|
7953
|
-
...headers,
|
|
7954
|
-
"mcp-session-id": sessionId,
|
|
7955
|
-
},
|
|
7956
|
-
});
|
|
7957
|
-
} catch {
|
|
7958
|
-
// best effort
|
|
7959
|
-
}
|
|
7960
|
-
}
|
|
7961
7935
|
}
|
|
7962
7936
|
await sleepMs(intervalMs);
|
|
7963
7937
|
}
|