deadbyte-mcp 0.15.49 → 0.15.50
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/MANIFEST.SHA256 +82 -78
- package/PROVENANCE.json +3 -3
- package/README.txt +18 -18
- package/RELEASE.json +5 -5
- package/SBOM.cdx.json +2 -2
- package/TEST-MATRIX.json +2 -2
- package/docs/R130-SDK-SECURITY-PATCH.md +34 -0
- package/node_modules/@modelcontextprotocol/client/README.md +1 -7
- package/node_modules/@modelcontextprotocol/client/dist/{index-BCtJi0p5.d.mts → index-B-4n9P0J.d.mts} +5 -1
- package/node_modules/@modelcontextprotocol/client/dist/index-B-4n9P0J.d.mts.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/{index-CEk3qkZM.d.cts → index-J2FaQ-KY.d.cts} +5 -1
- package/node_modules/@modelcontextprotocol/client/dist/index-J2FaQ-KY.d.cts.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/index.cjs +175 -76
- package/node_modules/@modelcontextprotocol/client/dist/index.cjs.map +1 -1
- package/node_modules/@modelcontextprotocol/client/dist/index.d.cts +214 -35
- package/node_modules/@modelcontextprotocol/client/dist/index.d.cts.map +1 -1
- package/node_modules/@modelcontextprotocol/client/dist/index.d.mts +214 -35
- package/node_modules/@modelcontextprotocol/client/dist/index.d.mts.map +1 -1
- package/node_modules/@modelcontextprotocol/client/dist/index.mjs +175 -76
- package/node_modules/@modelcontextprotocol/client/dist/index.mjs.map +1 -1
- package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.cjs +1 -1
- package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.mjs +1 -1
- package/node_modules/@modelcontextprotocol/client/dist/{src-D0qEN74R.cjs → src-DpAS0jfg.cjs} +125 -11
- package/node_modules/@modelcontextprotocol/client/dist/src-DpAS0jfg.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/{src-DDAAhLnO.mjs → src-WCy6ifGf.mjs} +102 -12
- package/node_modules/@modelcontextprotocol/client/dist/src-WCy6ifGf.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/stdio.cjs +1 -1
- package/node_modules/@modelcontextprotocol/client/dist/stdio.d.cts +1 -1
- package/node_modules/@modelcontextprotocol/client/dist/stdio.d.mts +1 -1
- package/node_modules/@modelcontextprotocol/client/dist/stdio.mjs +1 -1
- package/node_modules/@modelcontextprotocol/client/package.json +5 -5
- package/node_modules/@modelcontextprotocol/core/dist/{auth--n_Yzytt.d.cts → auth-Anm-lwWi.d.mts} +9 -8
- package/node_modules/@modelcontextprotocol/core/dist/{auth--n_Yzytt.d.cts.map → auth-Anm-lwWi.d.mts.map} +1 -1
- package/node_modules/@modelcontextprotocol/core/dist/{auth-CGP0BDVq.mjs → auth-BNDyLTqp.mjs} +5 -3
- package/node_modules/@modelcontextprotocol/core/dist/{auth-CGP0BDVq.mjs.map → auth-BNDyLTqp.mjs.map} +1 -1
- package/node_modules/@modelcontextprotocol/core/dist/{auth-4-zilcqg.cjs → auth-D1CeV_Jr.cjs} +5 -3
- package/node_modules/@modelcontextprotocol/core/dist/{auth-4-zilcqg.cjs.map → auth-D1CeV_Jr.cjs.map} +1 -1
- package/node_modules/@modelcontextprotocol/core/dist/{auth-YUQV3RRv.d.mts → auth-V9XJSCfa.d.cts} +9 -8
- package/node_modules/@modelcontextprotocol/core/dist/{auth-YUQV3RRv.d.mts.map → auth-V9XJSCfa.d.cts.map} +1 -1
- package/node_modules/@modelcontextprotocol/core/dist/index.cjs +1 -1
- package/node_modules/@modelcontextprotocol/core/dist/index.d.cts +1 -1
- package/node_modules/@modelcontextprotocol/core/dist/index.d.mts +1 -1
- package/node_modules/@modelcontextprotocol/core/dist/index.mjs +1 -1
- package/node_modules/@modelcontextprotocol/core/dist/internal.cjs +1 -1
- package/node_modules/@modelcontextprotocol/core/dist/internal.d.cts +1 -1
- package/node_modules/@modelcontextprotocol/core/dist/internal.d.mts +1 -1
- package/node_modules/@modelcontextprotocol/core/dist/internal.mjs +1 -1
- package/node_modules/@modelcontextprotocol/core/package.json +2 -2
- package/node_modules/@modelcontextprotocol/server/README.md +1 -7
- package/node_modules/@modelcontextprotocol/server/dist/{createMcpHandler-Bt6U_Fqb.d.mts → createMcpHandler-D4NN8WsG.d.mts} +35 -13
- package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-D4NN8WsG.d.mts.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/{createMcpHandler-BLVe3qmU.d.cts → createMcpHandler-DZmmlN8e.d.cts} +35 -13
- package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-DZmmlN8e.d.cts.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/index.cjs +32 -5
- package/node_modules/@modelcontextprotocol/server/dist/index.cjs.map +1 -1
- package/node_modules/@modelcontextprotocol/server/dist/index.d.cts +41 -5
- package/node_modules/@modelcontextprotocol/server/dist/index.d.cts.map +1 -1
- package/node_modules/@modelcontextprotocol/server/dist/index.d.mts +41 -5
- package/node_modules/@modelcontextprotocol/server/dist/index.d.mts.map +1 -1
- package/node_modules/@modelcontextprotocol/server/dist/index.mjs +32 -5
- package/node_modules/@modelcontextprotocol/server/dist/index.mjs.map +1 -1
- package/node_modules/@modelcontextprotocol/server/dist/{mcp-DUcCQSTW.cjs → mcp-BumlNux0.cjs} +73 -23
- package/node_modules/@modelcontextprotocol/server/dist/mcp-BumlNux0.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/{mcp-Dw2OlZ1f.mjs → mcp-DIH4cS6P.mjs} +73 -23
- package/node_modules/@modelcontextprotocol/server/dist/mcp-DIH4cS6P.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.cjs +1 -1
- package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.mjs +1 -1
- package/node_modules/@modelcontextprotocol/server/dist/{src-CgFsfg3E.cjs → src-BhnGYybN.cjs} +29 -11
- package/node_modules/@modelcontextprotocol/server/dist/src-BhnGYybN.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/{src-D-y6h4N7.mjs → src-Cqbh3MYc.mjs} +29 -11
- package/node_modules/@modelcontextprotocol/server/dist/src-Cqbh3MYc.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/stdio.cjs +2 -2
- package/node_modules/@modelcontextprotocol/server/dist/stdio.d.cts +1 -1
- package/node_modules/@modelcontextprotocol/server/dist/stdio.d.mts +1 -1
- package/node_modules/@modelcontextprotocol/server/dist/stdio.mjs +2 -2
- package/node_modules/@modelcontextprotocol/server/package.json +4 -4
- package/node_modules/which/CHANGELOG.md +166 -0
- package/package.json +3 -3
- package/src/version.mjs +1 -1
- package/test/r129-sdk-security-baseline.test.mjs +38 -0
- package/test/r130-release-security-contract.test.mjs +28 -0
- package/test/r59-tool-surface-compat.test.mjs +1 -1
- package/test/r74-prepublish-contract.test.mjs +2 -2
- package/node_modules/@modelcontextprotocol/client/dist/index-BCtJi0p5.d.mts.map +0 -1
- package/node_modules/@modelcontextprotocol/client/dist/index-CEk3qkZM.d.cts.map +0 -1
- package/node_modules/@modelcontextprotocol/client/dist/src-D0qEN74R.cjs.map +0 -1
- package/node_modules/@modelcontextprotocol/client/dist/src-DDAAhLnO.mjs.map +0 -1
- package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-BLVe3qmU.d.cts.map +0 -1
- package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-Bt6U_Fqb.d.mts.map +0 -1
- package/node_modules/@modelcontextprotocol/server/dist/mcp-DUcCQSTW.cjs.map +0 -1
- package/node_modules/@modelcontextprotocol/server/dist/mcp-Dw2OlZ1f.mjs.map +0 -1
- package/node_modules/@modelcontextprotocol/server/dist/src-CgFsfg3E.cjs.map +0 -1
- package/node_modules/@modelcontextprotocol/server/dist/src-D-y6h4N7.mjs.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const require_chunk = require('./chunk-Bnu9O96Y.cjs');
|
|
2
|
-
const require_mcp = require('./mcp-
|
|
3
|
-
const require_src = require('./src-
|
|
2
|
+
const require_mcp = require('./mcp-BumlNux0.cjs');
|
|
3
|
+
const require_src = require('./src-BhnGYybN.cjs');
|
|
4
4
|
let _modelcontextprotocol_server__shims = require("@modelcontextprotocol/server/_shims");
|
|
5
5
|
let _modelcontextprotocol_core_internal = require("@modelcontextprotocol/core/internal");
|
|
6
6
|
|
|
@@ -341,6 +341,10 @@ async function readRequestBody(request, maxBytes = DEFAULT_MAX_REQUEST_BODY_SIZE
|
|
|
341
341
|
* @example Hono.js
|
|
342
342
|
* ```ts source="./streamableHttp.examples.ts#WebStandardStreamableHTTPServerTransport_hono"
|
|
343
343
|
* app.all('/mcp', async c => {
|
|
344
|
+
* // Stateless example: create a server and a transport per request.
|
|
345
|
+
* const server = new McpServer({ name: 'my-server', version: '1.0.0' });
|
|
346
|
+
* const transport = new WebStandardStreamableHTTPServerTransport({ sessionIdGenerator: undefined });
|
|
347
|
+
* await server.connect(transport);
|
|
344
348
|
* return transport.handleRequest(c.req.raw);
|
|
345
349
|
* });
|
|
346
350
|
* ```
|
|
@@ -349,6 +353,10 @@ async function readRequestBody(request, maxBytes = DEFAULT_MAX_REQUEST_BODY_SIZE
|
|
|
349
353
|
* ```ts source="./streamableHttp.examples.ts#WebStandardStreamableHTTPServerTransport_workers"
|
|
350
354
|
* const worker = {
|
|
351
355
|
* async fetch(request: Request): Promise<Response> {
|
|
356
|
+
* // Stateless example: create a server and a transport per request.
|
|
357
|
+
* const server = new McpServer({ name: 'my-server', version: '1.0.0' });
|
|
358
|
+
* const transport = new WebStandardStreamableHTTPServerTransport({ sessionIdGenerator: undefined });
|
|
359
|
+
* await server.connect(transport);
|
|
352
360
|
* return transport.handleRequest(request);
|
|
353
361
|
* }
|
|
354
362
|
* };
|
|
@@ -357,6 +365,7 @@ async function readRequestBody(request, maxBytes = DEFAULT_MAX_REQUEST_BODY_SIZE
|
|
|
357
365
|
var WebStandardStreamableHTTPServerTransport = class {
|
|
358
366
|
sessionIdGenerator;
|
|
359
367
|
_started = false;
|
|
368
|
+
_hasHandledRequest = false;
|
|
360
369
|
_closed = false;
|
|
361
370
|
_streamMapping = /* @__PURE__ */ new Map();
|
|
362
371
|
_requestToStreamMapping = /* @__PURE__ */ new Map();
|
|
@@ -478,6 +487,8 @@ var WebStandardStreamableHTTPServerTransport = class {
|
|
|
478
487
|
*/
|
|
479
488
|
async handleRequest(req, options) {
|
|
480
489
|
if (this._closed) return this.createJsonErrorResponse(404, -32001, "Session not found");
|
|
490
|
+
if (!this.sessionIdGenerator && this._hasHandledRequest) throw new Error("Stateless transport cannot be reused across requests. Create a new transport per request.");
|
|
491
|
+
this._hasHandledRequest = true;
|
|
481
492
|
const validationError = this.validateRequestHeaders(req);
|
|
482
493
|
if (validationError) return validationError;
|
|
483
494
|
switch (req.method) {
|
|
@@ -1029,6 +1040,10 @@ function toError(value) {
|
|
|
1029
1040
|
function internalServerErrorResponse(id = null) {
|
|
1030
1041
|
return jsonRpcErrorResponse(500, -32603, "Internal server error", void 0, id);
|
|
1031
1042
|
}
|
|
1043
|
+
/** Throws when the factory returned an instance that is still connected to another exchange. */
|
|
1044
|
+
function assertNotServing(server) {
|
|
1045
|
+
if (server.transport !== void 0) throw new Error("The factory returned an instance that is still serving another request. Return a new instance for each request.");
|
|
1046
|
+
}
|
|
1032
1047
|
/**
|
|
1033
1048
|
* The entry's default legacy serving (`legacy: 'stateless'`): per-request
|
|
1034
1049
|
* stateless serving of 2025-era traffic using the same factory as the modern
|
|
@@ -1367,6 +1382,7 @@ function createMcpHandler(factory, options = {}) {
|
|
|
1367
1382
|
requestInfo: request
|
|
1368
1383
|
});
|
|
1369
1384
|
const server = product instanceof require_mcp.McpServer ? product.server : product;
|
|
1385
|
+
assertNotServing(server);
|
|
1370
1386
|
if (route.messageKind === "request" && route.message.method === "subscriptions/listen") {
|
|
1371
1387
|
const capabilities = server.getCapabilities();
|
|
1372
1388
|
const serverInfo = require_mcp.serverIdentityOf(server);
|
|
@@ -1400,6 +1416,7 @@ function createMcpHandler(factory, options = {}) {
|
|
|
1400
1416
|
reportError(toError(error));
|
|
1401
1417
|
return internalServerErrorResponse(route.message.id);
|
|
1402
1418
|
}
|
|
1419
|
+
assertNotServing(server);
|
|
1403
1420
|
require_src.setNegotiatedProtocolVersion(server, claimedRevision);
|
|
1404
1421
|
require_mcp.installModernOnlyHandlers(server, require_src.SUPPORTED_MODERN_PROTOCOL_VERSIONS);
|
|
1405
1422
|
if (meta !== void 0) require_mcp.seedClientIdentityFromEnvelope(server, {
|
|
@@ -1408,10 +1425,12 @@ function createMcpHandler(factory, options = {}) {
|
|
|
1408
1425
|
});
|
|
1409
1426
|
const previousOnClose = server.onclose;
|
|
1410
1427
|
inflight.add(server);
|
|
1411
|
-
|
|
1428
|
+
const onExchangeClose = () => {
|
|
1412
1429
|
inflight.delete(server);
|
|
1430
|
+
if (server.onclose === onExchangeClose) server.onclose = previousOnClose;
|
|
1413
1431
|
previousOnClose?.();
|
|
1414
1432
|
};
|
|
1433
|
+
server.onclose = onExchangeClose;
|
|
1415
1434
|
try {
|
|
1416
1435
|
const response = await invoke(product, route.message, {
|
|
1417
1436
|
classification: route.classification,
|
|
@@ -1569,14 +1588,22 @@ function hostHeaderValidationResponse(req, allowedHostnames) {
|
|
|
1569
1588
|
* and only browser-originated requests carry the header this check defends against.
|
|
1570
1589
|
* - Allowlist items are hostnames only (no scheme, no port), the same convention as
|
|
1571
1590
|
* `validateHostHeader`. For IPv6, include brackets (e.g. `[::1]`).
|
|
1591
|
+
* - A browser extension's origin carries its extension ID as the hostname; list the
|
|
1592
|
+
* ID to allow one extension. An allowlist item of the form `<scheme>://*`
|
|
1593
|
+
* (lowercase, e.g. `moz-extension://*`) allows every origin of that scheme, which
|
|
1594
|
+
* Firefox needs because its extension IDs differ on every install.
|
|
1595
|
+
* `http://*` and `https://*` are not honoured: list websites by hostname.
|
|
1572
1596
|
* - Any present value that cannot be parsed as an origin URL — including the literal
|
|
1573
1597
|
* `null` origin browsers send for opaque contexts — is rejected (deny on failure).
|
|
1574
1598
|
*/
|
|
1575
1599
|
function validateOriginHeader(originHeader, allowedOriginHostnames) {
|
|
1576
1600
|
if (originHeader === null || originHeader === void 0 || originHeader === "") return { ok: true };
|
|
1577
1601
|
let hostname;
|
|
1602
|
+
let scheme;
|
|
1578
1603
|
try {
|
|
1579
|
-
|
|
1604
|
+
const url = new URL(originHeader);
|
|
1605
|
+
hostname = url.hostname;
|
|
1606
|
+
scheme = url.protocol;
|
|
1580
1607
|
} catch {
|
|
1581
1608
|
return {
|
|
1582
1609
|
ok: false,
|
|
@@ -1591,7 +1618,7 @@ function validateOriginHeader(originHeader, allowedOriginHostnames) {
|
|
|
1591
1618
|
message: `Invalid Origin header: ${originHeader}`,
|
|
1592
1619
|
originHeader
|
|
1593
1620
|
};
|
|
1594
|
-
if (!allowedOriginHostnames.includes(hostname)) return {
|
|
1621
|
+
if (!(scheme !== "http:" && scheme !== "https:" && allowedOriginHostnames.includes(`${scheme}//*`)) && !allowedOriginHostnames.includes(hostname)) return {
|
|
1595
1622
|
ok: false,
|
|
1596
1623
|
errorCode: "invalid_origin",
|
|
1597
1624
|
message: `Invalid Origin: ${hostname}`,
|