@mcp-guardian/server 0.6.0 → 1.0.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/README.md +57 -6
- package/dist/auth/dpop.d.ts +38 -0
- package/dist/auth/dpop.d.ts.map +1 -0
- package/dist/auth/dpop.js +72 -0
- package/dist/auth/dpop.js.map +1 -0
- package/dist/auth/redis-session-cache.d.ts +21 -0
- package/dist/auth/redis-session-cache.d.ts.map +1 -0
- package/dist/auth/redis-session-cache.js +74 -0
- package/dist/auth/redis-session-cache.js.map +1 -0
- package/dist/auth/session-cache.d.ts +3 -3
- package/dist/auth/session-cache.d.ts.map +1 -1
- package/dist/auth/session-cache.js.map +1 -1
- package/dist/cli.js +26 -9
- package/dist/cli.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/proxy/http-proxy-server.d.ts +24 -0
- package/dist/proxy/http-proxy-server.d.ts.map +1 -0
- package/dist/proxy/http-proxy-server.js +161 -0
- package/dist/proxy/http-proxy-server.js.map +1 -0
- package/dist/proxy/proxy-server.d.ts.map +1 -1
- package/dist/proxy/proxy-server.js +9 -1
- package/dist/proxy/proxy-server.js.map +1 -1
- package/dist/utils/dashboard-server.d.ts +10 -0
- package/dist/utils/dashboard-server.d.ts.map +1 -0
- package/dist/utils/dashboard-server.js +86 -0
- package/dist/utils/dashboard-server.js.map +1 -0
- package/dist/utils/metrics.d.ts +17 -0
- package/dist/utils/metrics.d.ts.map +1 -0
- package/dist/utils/metrics.js +79 -0
- package/dist/utils/metrics.js.map +1 -0
- package/dist/utils/redis-rate-limiter.d.ts +22 -0
- package/dist/utils/redis-rate-limiter.d.ts.map +1 -0
- package/dist/utils/redis-rate-limiter.js +61 -0
- package/dist/utils/redis-rate-limiter.js.map +1 -0
- package/dist/utils/tracing.d.ts +7 -0
- package/dist/utils/tracing.d.ts.map +1 -0
- package/dist/utils/tracing.js +32 -0
- package/dist/utils/tracing.js.map +1 -0
- package/package.json +9 -1
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Logger } from './logger.js';
|
|
2
|
+
/**
|
|
3
|
+
* OpenTelemetry tracing for distributed request tracking across proxy + MCP servers.
|
|
4
|
+
* Enable with: OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
|
|
5
|
+
* Falls back gracefully if OpenTelemetry SDK is not installed.
|
|
6
|
+
*/
|
|
7
|
+
export async function initTracing() {
|
|
8
|
+
if (!process.env['OTEL_EXPORTER_OTLP_ENDPOINT']) {
|
|
9
|
+
Logger.debug('[tracing] OpenTelemetry not configured (set OTEL_EXPORTER_OTLP_ENDPOINT)');
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
try {
|
|
13
|
+
const { NodeSDK } = await import('@opentelemetry/sdk-node');
|
|
14
|
+
const { getNodeAutoInstrumentations } = await import('@opentelemetry/auto-instrumentations-node');
|
|
15
|
+
const { OTLPTraceExporter } = await import('@opentelemetry/exporter-otlp-grpc');
|
|
16
|
+
const exporter = new OTLPTraceExporter();
|
|
17
|
+
const instruments = getNodeAutoInstrumentations({
|
|
18
|
+
'@opentelemetry/instrumentation-http': { enabled: true },
|
|
19
|
+
'@opentelemetry/instrumentation-pino': { enabled: false },
|
|
20
|
+
});
|
|
21
|
+
const sdk = new NodeSDK({
|
|
22
|
+
traceExporter: exporter,
|
|
23
|
+
instrumentations: [instruments],
|
|
24
|
+
});
|
|
25
|
+
await sdk.start();
|
|
26
|
+
Logger.info('[tracing] OpenTelemetry tracing initialized — exporting to OTLP endpoint');
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
Logger.warn(`[tracing] OpenTelemetry initialization failed: ${err?.message}`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=tracing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/utils/tracing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;QACzF,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QAC5D,MAAM,EAAE,2BAA2B,EAAE,GAAG,MAAM,MAAM,CAAC,2CAA2C,CAAC,CAAC;QAClG,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;QAEhF,MAAM,QAAQ,GAAG,IAAI,iBAAiB,EAAS,CAAC;QAChD,MAAM,WAAW,GAAG,2BAA2B,CAAC;YAC9C,qCAAqC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YACxD,qCAAqC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;SAC1D,CAAQ,CAAC;QAEV,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC;YACtB,aAAa,EAAE,QAAQ;YACvB,gBAAgB,EAAE,CAAC,WAAW,CAAC;SAChC,CAAC,CAAC;QAEH,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;IAC1F,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,kDAAkD,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IAChF,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcp-guardian/server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Security, cost, and health audit for MCP infrastructure",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -38,20 +38,28 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
41
|
+
"@opentelemetry/api": "^1.9.1",
|
|
42
|
+
"@opentelemetry/auto-instrumentations-node": "^0.75.0",
|
|
43
|
+
"@opentelemetry/exporter-otlp-grpc": "^0.26.0",
|
|
44
|
+
"@opentelemetry/sdk-node": "^0.217.0",
|
|
41
45
|
"axios": "^1.7.0",
|
|
42
46
|
"chalk": "^5.3.0",
|
|
43
47
|
"chokidar": "^5.0.0",
|
|
44
48
|
"commander": "^12.0.0",
|
|
49
|
+
"express": "^5.2.1",
|
|
50
|
+
"ioredis": "^5.10.1",
|
|
45
51
|
"jose": "^6.2.3",
|
|
46
52
|
"js-yaml": "^4.1.1",
|
|
47
53
|
"pg": "^8.20.0",
|
|
48
54
|
"pino": "^10.3.1",
|
|
55
|
+
"prom-client": "^15.1.3",
|
|
49
56
|
"sql.js": "^1.11.0",
|
|
50
57
|
"tiktoken": "^1.0.15",
|
|
51
58
|
"zod": "^3.23.0"
|
|
52
59
|
},
|
|
53
60
|
"devDependencies": {
|
|
54
61
|
"@types/chokidar": "^1.7.5",
|
|
62
|
+
"@types/ioredis": "^4.28.10",
|
|
55
63
|
"@types/js-yaml": "^4.0.9",
|
|
56
64
|
"@types/node": "^20.0.0",
|
|
57
65
|
"@types/pg": "^8.20.0",
|