@guardbee/mcp-security-proxy 1.11.0 → 1.13.0

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/proxy.js CHANGED
@@ -46,6 +46,9 @@ const config_js_1 = require("./gateway/config.js");
46
46
  const gateway_js_1 = require("./gateway/gateway.js");
47
47
  const upstream_js_1 = require("./gateway/upstream.js");
48
48
  const policy_sync_js_1 = require("./gateway/policy-sync.js");
49
+ const fs_1 = require("fs");
50
+ const path_1 = require("path");
51
+ const tracing_js_1 = require("./tracing.js");
49
52
  /** The MCP server the agent talks to; every request goes through the gateway. */
50
53
  function createProxyServer(gateway) {
51
54
  const server = new index_js_1.Server({ name: "guardbee-security-proxy", version: "1.0.0" }, {
@@ -80,11 +83,19 @@ function createGatewayServer(upstreams, config, audit, options = {}) {
80
83
  ? (0, approval_js_1.dashboardApprover)(config.audit.dashboard, timeoutSeconds)
81
84
  : (req) => (server ? (0, approval_js_1.elicitationApprover)(server, timeoutSeconds)(req) : Promise.resolve("unavailable"))))(request);
82
85
  };
83
- const gateway = new gateway_js_1.Gateway(upstreams, config, audit, approver, options);
86
+ // Servers' sampling requests go to this session's client, when it offers sampling
87
+ const sampler = {
88
+ available: () => Boolean(server?.getClientCapabilities()?.sampling),
89
+ create: (params) => server.createMessage(params),
90
+ };
91
+ const gateway = new gateway_js_1.Gateway(upstreams, config, audit, approver, { ...options, sampler });
84
92
  server = createProxyServer(gateway);
85
93
  return { gateway, server };
86
94
  }
87
95
  async function startGateway(config) {
96
+ const { version } = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, "..", "package.json"), "utf8"));
97
+ // OTLP export when OTEL_EXPORTER_OTLP_ENDPOINT is set and the SDK is installed
98
+ const stopTracing = await (0, tracing_js_1.startTracing)({ version });
88
99
  const audit = new logger_js_1.AuditLogger(config.audit);
89
100
  // Start with the dashboard policy when there is one; refresh in the background.
90
101
  if (config.policy.source === "dashboard" && config.audit.dashboard) {
@@ -92,7 +103,7 @@ async function startGateway(config) {
92
103
  }
93
104
  const upstreams = [];
94
105
  for (const [name, server] of Object.entries(config.upstreams)) {
95
- upstreams.push(await (0, upstream_js_1.connectUpstream)(name, server));
106
+ upstreams.push(await (0, upstream_js_1.connectUpstream)(name, server, { sampling: config.interceptors.sampling?.enabled === true }));
96
107
  }
97
108
  if (config.listen.transport === "http") {
98
109
  // Imported here: http-server.ts imports this module for createGatewayServer.
@@ -103,6 +114,7 @@ async function startGateway(config) {
103
114
  await http.close();
104
115
  await audit.close();
105
116
  await Promise.allSettled(upstreams.map((upstream) => upstream.close()));
117
+ await stopTracing?.();
106
118
  process.exit(0);
107
119
  };
108
120
  process.on("SIGINT", shutdown);
@@ -120,6 +132,7 @@ async function startGateway(config) {
120
132
  closing = true;
121
133
  await server.close().catch(() => { });
122
134
  await gateway.close();
135
+ await stopTracing?.();
123
136
  process.exit(0);
124
137
  };
125
138
  server.onclose = () => void shutdown();
package/dist/proxy.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,8CA2BC;AAOD,kDA0BC;AAED,oCAiDC;AAGD,gCAEC;AA3ID,wEAAmE;AACnE,wEAAiF;AACjF,iEAO4C;AAE5C,iDAAgD;AAChD,uDAA8G;AAC9G,mDAA2E;AAC3E,qDAAkF;AAClF,uDAAuE;AACvE,6DAAsD;AAEtD,2BAAkC;AAClC,+BAA4B;AAC5B,6CAA4C;AAE5C,iFAAiF;AACjF,SAAgB,iBAAiB,CAAC,OAAgB;IAChD,MAAM,MAAM,GAAG,IAAI,iBAAM,CACvB,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,OAAO,EAAE,EACrD;QACE,YAAY,EAAE;YACZ,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;YAC5B,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;SACZ;KACF,CACF,CAAC;IAEF,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IACrG,MAAM,CAAC,iBAAiB,CAAC,gCAAqB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAC5D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAC9D,CAAC;IACF,MAAM,CAAC,iBAAiB,CAAC,qCAA0B,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;IACjH,MAAM,CAAC,iBAAiB,CAAC,oCAAyB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACzG,MAAM,CAAC,iBAAiB,CAAC,mCAAwB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3G,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAC7D,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CACzD,CAAC;IACF,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE;QAC1B,KAAK,MAAM,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CACjC,SAAqB,EACrB,MAAqB,EACrB,KAAkB,EAClB,UAAkF,EAAE;IAEpF,IAAI,MAA0B,CAAC;IAC/B,kGAAkG;IAClG,MAAM,QAAQ,GAAa,CAAC,OAAO,EAAE,EAAE;QACrC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;QACrD,OAAO,IAAA,4BAAc,EACnB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAY,EAAE,CACjC,OAAO,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS;YAC/C,CAAC,CAAC,IAAA,+BAAiB,EAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC;YAC3D,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,iCAAmB,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAC1G,CACF,CAAC,OAAO,CAAC,CAAC;IACb,CAAC,CAAC;IACF,kFAAkF;IAClF,MAAM,OAAO,GAAY;QACvB,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,qBAAqB,EAAE,EAAE,QAAQ,CAAC;QACnE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAO,CAAC,aAAa,CAAC,MAAM,CAAC;KAClD,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,oBAAO,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACzF,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,MAAqB;IACtD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAwB,CAAC;IACnH,+EAA+E;IAC/E,MAAM,WAAW,GAAG,MAAM,IAAA,yBAAY,EAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,IAAI,uBAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,gFAAgF;IAChF,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACnE,MAAM,IAAI,2BAAU,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7F,CAAC;IACD,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9D,SAAS,CAAC,IAAI,CAAC,MAAM,IAAA,6BAAe,EAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IACpH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QACvC,6EAA6E;QAC7E,MAAM,EAAE,gBAAgB,EAAE,GAAG,wDAAa,kBAAkB,GAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;YAC1B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACxE,MAAM,WAAW,EAAE,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAChC,OAAO;IACT,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1E,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,+BAAoB,EAAE,CAAC,CAAC;IAEjD,4EAA4E;IAC5E,+CAA+C;IAC/C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,IAAI,OAAO;YAAE,OAAO;QACpB,OAAO,GAAG,IAAI,CAAC;QACf,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,WAAW,EAAE,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IACF,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC;IACvC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,iFAAiF;AAC1E,KAAK,UAAU,UAAU,CAAC,MAAmB;IAClD,MAAM,YAAY,CAAC,IAAA,4BAAgB,EAAC,MAAM,CAAC,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { type Span, type Tracer, type TracerProvider } from "@opentelemetry/api";
2
+ export declare function tracer(): Tracer;
3
+ export declare function activeCallSpan(): Span | undefined;
4
+ export declare function withCallSpan<T>(span: Span, run: () => Promise<T>): Promise<T>;
5
+ interface Sdk {
6
+ BasicTracerProvider: new (config: {
7
+ resource?: unknown;
8
+ spanProcessors?: unknown[];
9
+ }) => TracerProvider & {
10
+ shutdown(): Promise<void>;
11
+ };
12
+ BatchSpanProcessor: new (exporter: unknown) => unknown;
13
+ OTLPTraceExporter: new () => unknown;
14
+ resourceFromAttributes: (attributes: Record<string, string>) => unknown;
15
+ }
16
+ /**
17
+ * Start exporting spans over OTLP/HTTP when OTEL_EXPORTER_OTLP_ENDPOINT (or
18
+ * the _TRACES_ variant) is set. Returns a shutdown function that flushes, or
19
+ * null when tracing stays off.
20
+ */
21
+ export declare function startTracing(options?: {
22
+ env?: NodeJS.ProcessEnv;
23
+ load?: () => Promise<Sdk>;
24
+ version?: string;
25
+ warn?: (line: string) => void;
26
+ }): Promise<(() => Promise<void>) | null>;
27
+ export {};
28
+ //# sourceMappingURL=tracing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../src/tracing.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAaxF,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAKD,wBAAgB,cAAc,IAAI,IAAI,GAAG,SAAS,CAEjD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAE7E;AAED,UAAU,GAAG;IACX,mBAAmB,EAAE,KAAK,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,KAAK,cAAc,GAAG;QACxG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;KAC3B,CAAC;IACF,kBAAkB,EAAE,KAAK,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC;IACvD,iBAAiB,EAAE,UAAU,OAAO,CAAC;IACrC,sBAAsB,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC;CACzE;AAYD;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAAO,GACpH,OAAO,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CA6BvC"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.tracer = tracer;
37
+ exports.activeCallSpan = activeCallSpan;
38
+ exports.withCallSpan = withCallSpan;
39
+ exports.startTracing = startTracing;
40
+ const async_hooks_1 = require("async_hooks");
41
+ const api_1 = require("@opentelemetry/api");
42
+ /**
43
+ * OpenTelemetry for the gateway. Only @opentelemetry/api (no dependencies) is
44
+ * required: without an SDK every span is a no-op. Exporting is opt-in through
45
+ * the standard OTEL_* environment, with the SDK installed next to the proxy
46
+ * (optional peer dependencies; the Docker image has them). A process that
47
+ * already registered its own SDK (zero-code instrumentation) keeps it.
48
+ */
49
+ const NAME = "@guardbee/mcp-security-proxy";
50
+ const SDK_PACKAGES = ["@opentelemetry/sdk-trace-base", "@opentelemetry/exporter-trace-otlp-http", "@opentelemetry/resources"];
51
+ function tracer() {
52
+ return api_1.trace.getTracer(NAME);
53
+ }
54
+ /** The span of the tool call being handled, so audit events can become its span events. */
55
+ const callSpan = new async_hooks_1.AsyncLocalStorage();
56
+ function activeCallSpan() {
57
+ return callSpan.getStore();
58
+ }
59
+ function withCallSpan(span, run) {
60
+ return callSpan.run(span, run);
61
+ }
62
+ async function loadSdk() {
63
+ const [base, exporter, resources] = await Promise.all(SDK_PACKAGES.map((name) => Promise.resolve(`${name}`).then(s => __importStar(require(s)))));
64
+ return {
65
+ BasicTracerProvider: base.BasicTracerProvider,
66
+ BatchSpanProcessor: base.BatchSpanProcessor,
67
+ OTLPTraceExporter: exporter.OTLPTraceExporter,
68
+ resourceFromAttributes: resources.resourceFromAttributes,
69
+ };
70
+ }
71
+ /**
72
+ * Start exporting spans over OTLP/HTTP when OTEL_EXPORTER_OTLP_ENDPOINT (or
73
+ * the _TRACES_ variant) is set. Returns a shutdown function that flushes, or
74
+ * null when tracing stays off.
75
+ */
76
+ async function startTracing(options = {}) {
77
+ const env = options.env ?? process.env;
78
+ const warn = options.warn ?? ((line) => process.stderr.write(`[guardbee-proxy] ${line}\n`));
79
+ const endpoint = env["OTEL_EXPORTER_OTLP_TRACES_ENDPOINT"] ?? env["OTEL_EXPORTER_OTLP_ENDPOINT"];
80
+ if (!endpoint || env["OTEL_SDK_DISABLED"] === "true" || env["OTEL_TRACES_EXPORTER"] === "none")
81
+ return null;
82
+ let sdk;
83
+ try {
84
+ sdk = await (options.load ?? loadSdk)();
85
+ }
86
+ catch {
87
+ warn(`OTEL_EXPORTER_OTLP_ENDPOINT is set but the OpenTelemetry SDK is not installed; spans are not exported. Install: npm i ${SDK_PACKAGES.join(" ")}`);
88
+ return null;
89
+ }
90
+ const provider = new sdk.BasicTracerProvider({
91
+ resource: sdk.resourceFromAttributes({
92
+ "service.name": env["OTEL_SERVICE_NAME"] ?? "guardbee-security-proxy",
93
+ ...(options.version ? { "service.version": options.version } : {}),
94
+ }),
95
+ // The exporter reads OTEL_EXPORTER_OTLP_* (endpoint, headers, timeout) itself
96
+ spanProcessors: [new sdk.BatchSpanProcessor(new sdk.OTLPTraceExporter())],
97
+ });
98
+ if (!api_1.trace.setGlobalTracerProvider(provider)) {
99
+ // Someone (zero-code instrumentation) registered an SDK first: use theirs
100
+ await provider.shutdown();
101
+ return null;
102
+ }
103
+ warn(`exporting OpenTelemetry spans to ${endpoint}`);
104
+ return () => provider.shutdown();
105
+ }
106
+ //# sourceMappingURL=tracing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing.js","sourceRoot":"","sources":["../src/tracing.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -66,6 +66,23 @@ export type ProxyConfig = {
66
66
  action: "block" | "warn";
67
67
  allowTools?: string[];
68
68
  };
69
+ /**
70
+ * Let servers ask the agent's model for a completion (sampling), with
71
+ * guards: only during one of the server's tool calls, no context from the
72
+ * conversation, a token and per-call cap, an injection scan on what the
73
+ * server sends, and the model's answer checked like an egress call.
74
+ * Off (default): servers are not offered sampling at all.
75
+ */
76
+ sampling?: {
77
+ enabled: boolean;
78
+ action: "block" | "warn";
79
+ /** Cap on the completion length the server may ask for (default 1024). */
80
+ maxTokens?: number;
81
+ /** Sampling requests allowed during one tool call (default 3). */
82
+ maxPerCall?: number;
83
+ /** Ask the person before each request (MCP elicitation / dashboard). */
84
+ approval?: boolean;
85
+ };
69
86
  definitionDrift?: {
70
87
  enabled: boolean;
71
88
  action: "block" | "warn";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B,CAAC;AAEF,sEAAsE;AACtE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,kBAAkB,CAAC;AAElE,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,IAAI,kBAAkB,CAEnF;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iEAAiE;IACjE,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,0EAA0E;IAC1E,GAAG,EAAE,MAAM,CAAC;IACZ,gFAAgF;IAChF,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,YAAY,CAAC,EAAE;QACb,eAAe,CAAC,EAAE;YAChB,OAAO,EAAE,OAAO,CAAC;YACjB,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;SAC1B,CAAC;QACF,mBAAmB,CAAC,EAAE;YACpB,OAAO,EAAE,OAAO,CAAC;YACjB,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;SAC1B,CAAC;QACF;;;;WAIG;QACH,aAAa,CAAC,EAAE;YACd,OAAO,EAAE,OAAO,CAAC;YACjB,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;SAC1B,CAAC;QACF;;;;WAIG;QACH,aAAa,CAAC,EAAE;YACd,OAAO,EAAE,OAAO,CAAC;YACjB,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;YACzB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;SACvB,CAAC;QACF;;;;;;WAMG;QACH,QAAQ,CAAC,EAAE;YACT,OAAO,EAAE,OAAO,CAAC;YACjB,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;YACzB,0EAA0E;YAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,kEAAkE;YAClE,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,wEAAwE;YACxE,QAAQ,CAAC,EAAE,OAAO,CAAC;SACpB,CAAC;QACF,eAAe,CAAC,EAAE;YAChB,OAAO,EAAE,OAAO,CAAC;YACjB,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;YACzB;;;eAGG;YACH,OAAO,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC;SACtC,CAAC;QACF,UAAU,CAAC,EAAE;YACX,OAAO,EAAE,OAAO,CAAC;YACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;YACpB,4GAA4G;YAC5G,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;YAC7B,iFAAiF;YACjF,mBAAmB,CAAC,EAAE,OAAO,CAAC;SAC/B,CAAC;QACF,+EAA+E;QAC/E,OAAO,CAAC,EAAE,aAAa,CAAC;KACzB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,eAAe,GACvB;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GACnB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,GAAG,eAAe,GAAG,SAAS,GAAG,MAAM,GAAG,YAAY,GAAG,eAAe,GAAG,UAAU,CAAC;IACvG,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,CAAC;IACzD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@guardbee/mcp-security-proxy",
3
- "version": "1.11.0",
3
+ "version": "1.13.0",
4
4
  "mcpName": "io.github.GuardBee/security-proxy",
5
5
  "description": "MCP security gateway: several MCP servers behind one policy, with toxic-flow (lethal trifecta) blocking, approvals, PII masking and a hash-chained audit log",
6
6
  "author": "GuardBee <hello@guardbee.ai>",
@@ -42,12 +42,34 @@
42
42
  },
43
43
  "dependencies": {
44
44
  "@modelcontextprotocol/sdk": "^1.30.0",
45
+ "@opentelemetry/api": "^1.9.1",
45
46
  "jose": "^6.2.12",
46
47
  "yaml": "^2.9.1",
47
48
  "zod": "^4.5.4",
48
- "@guardbee/guard-core": "^0.9.0",
49
+ "@guardbee/guard-core": "^0.11.0",
49
50
  "@guardbee/mcp-telemetry": "^0.1.3"
50
51
  },
52
+ "devDependencies": {
53
+ "@opentelemetry/exporter-trace-otlp-http": "^0.223.0",
54
+ "@opentelemetry/resources": "^2.12.0",
55
+ "@opentelemetry/sdk-trace-base": "^2.12.0"
56
+ },
57
+ "peerDependencies": {
58
+ "@opentelemetry/exporter-trace-otlp-http": "^0.223.0",
59
+ "@opentelemetry/resources": "^2.12.0",
60
+ "@opentelemetry/sdk-trace-base": "^2.12.0"
61
+ },
62
+ "peerDependenciesMeta": {
63
+ "@opentelemetry/exporter-trace-otlp-http": {
64
+ "optional": true
65
+ },
66
+ "@opentelemetry/resources": {
67
+ "optional": true
68
+ },
69
+ "@opentelemetry/sdk-trace-base": {
70
+ "optional": true
71
+ }
72
+ },
51
73
  "scripts": {
52
74
  "build": "tsc",
53
75
  "dev": "tsx src/cli.ts",