mcp-guardian 1.2.1 → 1.3.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/bin/mcp-guardian.js +194 -21
- package/dist/bin/mcp-guardian.js.map +1 -1
- package/package.json +1 -1
package/dist/bin/mcp-guardian.js
CHANGED
|
@@ -12,6 +12,17 @@ import { getDefaultConfigPath, getVersion, } from "../src/config.js";
|
|
|
12
12
|
import { securityAuditHandler, } from "../src/security-audit.js";
|
|
13
13
|
import { scanMcpConfig, scanMcpConfigSync, } from "../src/manifest.js";
|
|
14
14
|
import { getManifestSummary, } from "../src/tool-pinning.js";
|
|
15
|
+
/**
|
|
16
|
+
* Exit codes for CI/CD integration
|
|
17
|
+
* - 0: Clean scan (no issues)
|
|
18
|
+
* - 1: Warnings detected
|
|
19
|
+
* - 2: Critical issues detected
|
|
20
|
+
* - 3: Configuration/runtime error
|
|
21
|
+
*/
|
|
22
|
+
const EXIT_CLEAN = 0;
|
|
23
|
+
const EXIT_WARNING = 1;
|
|
24
|
+
const EXIT_CRITICAL = 2;
|
|
25
|
+
const EXIT_ERROR = 3;
|
|
15
26
|
const VERSION = getVersion();
|
|
16
27
|
/**
|
|
17
28
|
* Run as MCP server
|
|
@@ -93,6 +104,93 @@ async function runMcpServer() {
|
|
|
93
104
|
await server.connect(transport);
|
|
94
105
|
console.error(`[mcp-guardian] MCP server v${VERSION} running on stdio`);
|
|
95
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Filter results based on severity threshold
|
|
109
|
+
*/
|
|
110
|
+
function filterBySeverity(result, threshold) {
|
|
111
|
+
if (threshold === "info")
|
|
112
|
+
return result;
|
|
113
|
+
const filteredServers = result.servers.map(server => {
|
|
114
|
+
const filteredIssues = server.issues.map(tool => ({
|
|
115
|
+
...tool,
|
|
116
|
+
issues: tool.issues.filter(issue => {
|
|
117
|
+
if (threshold === "critical")
|
|
118
|
+
return issue.severity === "critical";
|
|
119
|
+
if (threshold === "warning")
|
|
120
|
+
return issue.severity === "critical" || issue.severity === "warning";
|
|
121
|
+
return true;
|
|
122
|
+
})
|
|
123
|
+
})).filter(tool => tool.issues.length > 0);
|
|
124
|
+
return {
|
|
125
|
+
...server,
|
|
126
|
+
issues: filteredIssues,
|
|
127
|
+
status: filteredIssues.some(t => t.issues.some(i => i.severity === "critical")) ? "critical" :
|
|
128
|
+
filteredIssues.some(t => t.issues.some(i => i.severity === "warning")) ? "warning" : "clean"
|
|
129
|
+
};
|
|
130
|
+
});
|
|
131
|
+
return {
|
|
132
|
+
servers: filteredServers,
|
|
133
|
+
summary: result.summary // Keep original summary for context
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Generate SARIF 2.1.0 output format
|
|
138
|
+
*/
|
|
139
|
+
function generateSarif(result, configPath) {
|
|
140
|
+
const rules = [];
|
|
141
|
+
const ruleIds = new Set();
|
|
142
|
+
// Collect unique rules from findings
|
|
143
|
+
for (const server of result.servers) {
|
|
144
|
+
for (const tool of server.issues) {
|
|
145
|
+
for (const issue of tool.issues) {
|
|
146
|
+
if (!ruleIds.has(issue.pattern)) {
|
|
147
|
+
ruleIds.add(issue.pattern);
|
|
148
|
+
rules.push({
|
|
149
|
+
id: issue.pattern,
|
|
150
|
+
shortDescription: { text: issue.pattern.replace(/_/g, " ") },
|
|
151
|
+
defaultConfiguration: {
|
|
152
|
+
level: issue.severity === "critical" ? "error" : "warning"
|
|
153
|
+
},
|
|
154
|
+
...(issue.severity === "critical" && { properties: { cwe: "CWE-94" } })
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
const results = [];
|
|
161
|
+
for (const server of result.servers) {
|
|
162
|
+
for (const tool of server.issues) {
|
|
163
|
+
for (const issue of tool.issues) {
|
|
164
|
+
results.push({
|
|
165
|
+
ruleId: issue.pattern,
|
|
166
|
+
level: issue.severity === "critical" ? "error" : "warning",
|
|
167
|
+
message: { text: `Detected "${issue.match}" in tool "${tool.toolName}" (server: ${server.serverName})` },
|
|
168
|
+
locations: [{
|
|
169
|
+
physicalLocation: {
|
|
170
|
+
artifactLocation: { uri: configPath },
|
|
171
|
+
...(issue.position !== undefined && { region: { startLine: 1 } })
|
|
172
|
+
}
|
|
173
|
+
}]
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return {
|
|
179
|
+
$schema: "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json",
|
|
180
|
+
version: "2.1.0",
|
|
181
|
+
runs: [{
|
|
182
|
+
tool: {
|
|
183
|
+
driver: {
|
|
184
|
+
name: "mcp-guardian",
|
|
185
|
+
version: VERSION,
|
|
186
|
+
informationUri: "https://github.com/alexandriashai/mcp-guardian",
|
|
187
|
+
rules
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
results
|
|
191
|
+
}]
|
|
192
|
+
};
|
|
193
|
+
}
|
|
96
194
|
/**
|
|
97
195
|
* Run CLI scan
|
|
98
196
|
*/
|
|
@@ -104,36 +202,61 @@ async function runCliScan(configPath, options) {
|
|
|
104
202
|
console.error(` macOS: ~/Library/Application Support/Claude/claude_desktop_config.json`);
|
|
105
203
|
console.error(` Windows: %APPDATA%\\Claude\\claude_desktop_config.json`);
|
|
106
204
|
console.error(` Linux: ~/.config/Claude/claude_desktop_config.json`);
|
|
107
|
-
process.exit(
|
|
205
|
+
process.exit(EXIT_ERROR);
|
|
206
|
+
}
|
|
207
|
+
if (!options.quiet) {
|
|
208
|
+
console.error(`[mcp-guardian] Scanning: ${targetPath}`);
|
|
108
209
|
}
|
|
109
|
-
console.error(`[mcp-guardian] Scanning: ${targetPath}`);
|
|
110
210
|
let result;
|
|
111
211
|
if (options.sync) {
|
|
112
212
|
// Sync mode only parses config structure, doesn't query servers
|
|
113
213
|
result = scanMcpConfigSync(targetPath);
|
|
114
|
-
|
|
214
|
+
if (!options.quiet) {
|
|
215
|
+
console.error(`[mcp-guardian] Note: --sync mode only reads config structure (no tool scanning)`);
|
|
216
|
+
}
|
|
115
217
|
}
|
|
116
218
|
else {
|
|
117
219
|
// Default: async mode that actually queries MCP servers
|
|
118
|
-
|
|
220
|
+
if (!options.quiet) {
|
|
221
|
+
console.error(`[mcp-guardian] Connecting to MCP servers to scan their tools...`);
|
|
222
|
+
}
|
|
119
223
|
result = await scanMcpConfig(targetPath);
|
|
120
224
|
}
|
|
121
|
-
|
|
122
|
-
|
|
225
|
+
// Apply severity threshold filter
|
|
226
|
+
const filteredResult = filterBySeverity(result, options.severityThreshold);
|
|
227
|
+
// Determine exit code based on findings
|
|
228
|
+
const exitCode = result.summary.critical > 0 ? EXIT_CRITICAL
|
|
229
|
+
: result.summary.warning > 0 ? EXIT_WARNING
|
|
230
|
+
: EXIT_CLEAN;
|
|
231
|
+
// Quiet mode: no output on clean scan
|
|
232
|
+
if (options.quiet && exitCode === EXIT_CLEAN) {
|
|
233
|
+
process.exit(options.exitZero ? EXIT_CLEAN : exitCode);
|
|
234
|
+
}
|
|
235
|
+
// Output results
|
|
236
|
+
if (options.sarif) {
|
|
237
|
+
console.log(JSON.stringify(generateSarif(filteredResult, targetPath), null, 2));
|
|
238
|
+
}
|
|
239
|
+
else if (options.json) {
|
|
240
|
+
console.log(JSON.stringify(filteredResult, null, 2));
|
|
123
241
|
}
|
|
124
242
|
else {
|
|
125
243
|
// Human-readable output
|
|
126
244
|
console.log(`\n=== MCP Guardian Security Scan ===`);
|
|
127
245
|
console.log(`Config: ${targetPath}`);
|
|
128
|
-
console.log(`Servers: ${
|
|
246
|
+
console.log(`Servers: ${filteredResult.servers.length}`);
|
|
129
247
|
console.log(`\nServers found:`);
|
|
130
|
-
for (const server of
|
|
248
|
+
for (const server of filteredResult.servers) {
|
|
131
249
|
const icon = server.status === "critical" ? "🔴" :
|
|
132
250
|
server.status === "warning" ? "🟡" : "🟢";
|
|
133
251
|
console.log(` ${icon} ${server.serverName} (${server.toolCount} tools)`);
|
|
134
252
|
if (server.issues.length > 0) {
|
|
135
253
|
for (const tool of server.issues) {
|
|
136
|
-
console.log(` └─ ${tool.toolName}
|
|
254
|
+
console.log(` └─ ${tool.toolName}:`);
|
|
255
|
+
for (const issue of tool.issues) {
|
|
256
|
+
const severity = issue.severity === "critical" ? "🔴 CRITICAL" : "🟡 WARNING";
|
|
257
|
+
console.log(` ${severity}: ${issue.pattern}`);
|
|
258
|
+
console.log(` Match: "${issue.match}" at position ${issue.position}`);
|
|
259
|
+
}
|
|
137
260
|
}
|
|
138
261
|
}
|
|
139
262
|
}
|
|
@@ -142,7 +265,12 @@ async function runCliScan(configPath, options) {
|
|
|
142
265
|
console.log(` Clean: ${result.summary.clean}`);
|
|
143
266
|
console.log(` Warning: ${result.summary.warning}`);
|
|
144
267
|
console.log(` Critical: ${result.summary.critical}`);
|
|
268
|
+
if (options.severityThreshold !== "warning") {
|
|
269
|
+
console.log(`\n (Filtered to ${options.severityThreshold} severity)`);
|
|
270
|
+
}
|
|
145
271
|
}
|
|
272
|
+
// Exit with appropriate code
|
|
273
|
+
process.exit(options.exitZero ? EXIT_CLEAN : exitCode);
|
|
146
274
|
}
|
|
147
275
|
/**
|
|
148
276
|
* Show help
|
|
@@ -156,14 +284,24 @@ USAGE:
|
|
|
156
284
|
mcp-guardian [options] [config_path]
|
|
157
285
|
|
|
158
286
|
OPTIONS:
|
|
159
|
-
--mcp
|
|
160
|
-
--json
|
|
161
|
-
--
|
|
162
|
-
--
|
|
163
|
-
--
|
|
287
|
+
--mcp Run as MCP server (for Claude Desktop integration)
|
|
288
|
+
--json Output JSON instead of human-readable format
|
|
289
|
+
--sarif Output SARIF 2.1.0 format (for GitHub Advanced Security)
|
|
290
|
+
--sync Fast mode: only parse config, don't query servers
|
|
291
|
+
--severity-threshold <lvl> Filter results: critical, warning (default), or info
|
|
292
|
+
--quiet Suppress output on clean scans (exit code still set)
|
|
293
|
+
--exit-zero Always exit with code 0 (for info-only mode)
|
|
294
|
+
--version, -v Show version
|
|
295
|
+
--help, -h Show this help
|
|
296
|
+
|
|
297
|
+
EXIT CODES:
|
|
298
|
+
0 Clean scan (no issues found)
|
|
299
|
+
1 Warnings detected
|
|
300
|
+
2 Critical issues detected
|
|
301
|
+
3 Configuration or runtime error
|
|
164
302
|
|
|
165
303
|
EXAMPLES:
|
|
166
|
-
# Scan all MCP servers in Claude Desktop config
|
|
304
|
+
# Scan all MCP servers in Claude Desktop config
|
|
167
305
|
mcp-guardian
|
|
168
306
|
|
|
169
307
|
# Scan specific config file
|
|
@@ -175,8 +313,17 @@ EXAMPLES:
|
|
|
175
313
|
# JSON output
|
|
176
314
|
mcp-guardian --json
|
|
177
315
|
|
|
178
|
-
#
|
|
179
|
-
mcp-guardian --
|
|
316
|
+
# SARIF output for GitHub Advanced Security
|
|
317
|
+
mcp-guardian --sarif > results.sarif
|
|
318
|
+
|
|
319
|
+
# Only show critical issues
|
|
320
|
+
mcp-guardian --severity-threshold critical
|
|
321
|
+
|
|
322
|
+
# CI mode: quiet on success, fail on findings
|
|
323
|
+
mcp-guardian --quiet
|
|
324
|
+
|
|
325
|
+
# Info mode: report but don't fail pipeline
|
|
326
|
+
mcp-guardian --exit-zero
|
|
180
327
|
|
|
181
328
|
CLAUDE DESKTOP INTEGRATION:
|
|
182
329
|
Add to your claude_desktop_config.json:
|
|
@@ -191,6 +338,21 @@ CLAUDE DESKTOP INTEGRATION:
|
|
|
191
338
|
}
|
|
192
339
|
`);
|
|
193
340
|
}
|
|
341
|
+
/**
|
|
342
|
+
* Parse severity threshold from args
|
|
343
|
+
*/
|
|
344
|
+
function parseSeverityThreshold(args) {
|
|
345
|
+
const idx = args.indexOf("--severity-threshold");
|
|
346
|
+
if (idx === -1 || idx >= args.length - 1) {
|
|
347
|
+
return "warning"; // default
|
|
348
|
+
}
|
|
349
|
+
const value = args[idx + 1];
|
|
350
|
+
if (value === "critical" || value === "warning" || value === "info") {
|
|
351
|
+
return value;
|
|
352
|
+
}
|
|
353
|
+
console.error(`Invalid severity threshold: ${value}. Using 'warning'.`);
|
|
354
|
+
return "warning";
|
|
355
|
+
}
|
|
194
356
|
/**
|
|
195
357
|
* Main entry point
|
|
196
358
|
*/
|
|
@@ -200,12 +362,23 @@ async function main() {
|
|
|
200
362
|
const options = {
|
|
201
363
|
mcp: args.includes("--mcp"),
|
|
202
364
|
json: args.includes("--json"),
|
|
365
|
+
sarif: args.includes("--sarif"),
|
|
203
366
|
sync: args.includes("--sync"),
|
|
204
367
|
help: args.includes("--help") || args.includes("-h"),
|
|
205
368
|
version: args.includes("--version") || args.includes("-v"),
|
|
369
|
+
quiet: args.includes("--quiet"),
|
|
370
|
+
exitZero: args.includes("--exit-zero"),
|
|
371
|
+
severityThreshold: parseSeverityThreshold(args),
|
|
206
372
|
};
|
|
207
|
-
// Filter out flags to get config path
|
|
208
|
-
const positionalArgs = args.filter(arg =>
|
|
373
|
+
// Filter out flags to get config path (skip flag values too)
|
|
374
|
+
const positionalArgs = args.filter((arg, idx) => {
|
|
375
|
+
if (arg.startsWith("-"))
|
|
376
|
+
return false;
|
|
377
|
+
// Skip values that follow --severity-threshold
|
|
378
|
+
if (idx > 0 && args[idx - 1] === "--severity-threshold")
|
|
379
|
+
return false;
|
|
380
|
+
return true;
|
|
381
|
+
});
|
|
209
382
|
const configPath = positionalArgs[0] || null;
|
|
210
383
|
if (options.version) {
|
|
211
384
|
console.log(VERSION);
|
|
@@ -219,10 +392,10 @@ async function main() {
|
|
|
219
392
|
await runMcpServer();
|
|
220
393
|
return;
|
|
221
394
|
}
|
|
222
|
-
await runCliScan(configPath,
|
|
395
|
+
await runCliScan(configPath, options);
|
|
223
396
|
}
|
|
224
397
|
main().catch((error) => {
|
|
225
398
|
console.error("Fatal error:", error);
|
|
226
|
-
process.exit(
|
|
399
|
+
process.exit(EXIT_ERROR);
|
|
227
400
|
});
|
|
228
401
|
//# sourceMappingURL=mcp-guardian.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-guardian.js","sourceRoot":"","sources":["../../bin/mcp-guardian.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,oBAAoB,EACpB,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,oBAAoB,GAErB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,aAAa,EACb,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;AAE7B;;GAEG;AACH,KAAK,UAAU,YAAY;IACzB,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;QACE,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,OAAO;KACjB,EACD;QACE,YAAY,EAAE;YACZ,KAAK,EAAE,EAAE;SACV;KACF,CACF,CAAC;IAEF,aAAa;IACb,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EACT,wLAAwL;gBAC1L,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,WAAW,EAAE;4BACX,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,wFAAwF;yBAC3F;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;4BACtB,OAAO,EAAE,MAAM;4BACf,WAAW,EAAE,2DAA2D;yBACzE;wBACD,UAAU,EAAE;4BACV,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,gEAAgE;yBAC9E;qBACF;iBACF;aACF;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EACT,8GAA8G;gBAChH,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,EAAE;iBACf;aACF;SACF;KACF,CAAC,CAAC,CAAC;IAEJ,oBAAoB;IACpB,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAEjD,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC9B,OAAO,MAAM,oBAAoB,CAAC,IAAkD,CAAC,CAAC;QACxF,CAAC;QAED,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;YACrC,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;qBACvC;iBACF;aACF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;iBACzD;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,eAAe;IACf,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,8BAA8B,OAAO,mBAAmB,CAAC,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,UAAU,CAAC,UAAyB,EAAE,OAGpD;IACC,MAAM,UAAU,GAAG,UAAU,IAAI,oBAAoB,EAAE,CAAC;IAExD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAC5F,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC1E,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;IAExD,IAAI,MAAM,CAAC;IACX,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,gEAAgE;QAChE,MAAM,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;IACnG,CAAC;SAAM,CAAC;QACN,wDAAwD;QACxD,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACjF,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,wBAAwB;QACxB,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,WAAW,UAAU,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAEhC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,SAAS,SAAS,CAAC,CAAC;YAE1E,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBACjC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ;IACf,OAAO,CAAC,GAAG,CAAC;0BACY,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwChC,CAAC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,gBAAgB;IAChB,MAAM,OAAO,GAAG;QACd,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC3B,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC7B,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC7B,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACpD,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;KAC3D,CAAC;IAEF,sCAAsC;IACtC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAE7C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,QAAQ,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,MAAM,YAAY,EAAE,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,UAAU,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"mcp-guardian.js","sourceRoot":"","sources":["../../bin/mcp-guardian.ts"],"names":[],"mappings":"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"}
|