@panguard-ai/panguard-mcp 1.3.1 → 1.3.2
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/cli/index.d.ts +13 -0
- package/dist/cli/index.js +0 -0
- package/dist/config/index.d.ts +2 -2
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/mcp-injector.d.ts +30 -0
- package/dist/config/mcp-injector.d.ts.map +1 -1
- package/dist/config/mcp-injector.js +208 -2
- package/dist/config/mcp-injector.js.map +1 -1
- package/dist/index.d.ts +12 -0
- package/dist/server.d.ts +356 -0
- package/dist/tools/guard-tools.d.ts +62 -0
- package/dist/tools/manage-tools.d.ts +65 -0
- package/dist/tools/scan-tools.d.ts +46 -0
- package/package.json +11 -10
- package/LICENSE +0 -21
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Panguard MCP - CLI Entry Point
|
|
4
|
+
* Panguard MCP - CLI 入口點
|
|
5
|
+
*
|
|
6
|
+
* Starts the Panguard MCP server on stdio for integration with
|
|
7
|
+
* Claude Desktop, Cursor, or Claude Code.
|
|
8
|
+
* 在 stdio 上啟動 Panguard MCP 伺服器,用於與 Claude Desktop、Cursor 或 Claude Code 整合。
|
|
9
|
+
*
|
|
10
|
+
* @module @panguard-ai/panguard-mcp/cli
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
package/dist/cli/index.js
CHANGED
|
File without changes
|
package/dist/config/index.d.ts
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export { detectPlatforms, getConfigPath } from './platform-detector.js';
|
|
8
8
|
export type { PlatformId, DetectedPlatform } from './platform-detector.js';
|
|
9
|
-
export { injectMCPConfig, removeMCPConfig, injectAll, getInstallCommand } from './mcp-injector.js';
|
|
10
|
-
export type { InjectionResult } from './mcp-injector.js';
|
|
9
|
+
export { injectMCPConfig, removeMCPConfig, injectAll, getInstallCommand, injectProxy, removeProxy } from './mcp-injector.js';
|
|
10
|
+
export type { InjectionResult, ProxyInjectionResult, ProxyInjectionSummary } from './mcp-injector.js';
|
|
11
11
|
export { parseMCPServers, resolveSkillDir, discoverAllSkills, removeServer, } from './mcp-config-reader.js';
|
|
12
12
|
export type { MCPServerEntry } from './mcp-config-reader.js';
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACxE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACxE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC7H,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACtG,OAAO,EACL,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/config/index.js
CHANGED
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
* @module @panguard-ai/panguard-mcp/config
|
|
6
6
|
*/
|
|
7
7
|
export { detectPlatforms, getConfigPath } from './platform-detector.js';
|
|
8
|
-
export { injectMCPConfig, removeMCPConfig, injectAll, getInstallCommand } from './mcp-injector.js';
|
|
8
|
+
export { injectMCPConfig, removeMCPConfig, injectAll, getInstallCommand, injectProxy, removeProxy } from './mcp-injector.js';
|
|
9
9
|
export { parseMCPServers, resolveSkillDir, discoverAllSkills, removeServer, } from './mcp-config-reader.js';
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE7H,OAAO,EACL,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,YAAY,GACb,MAAM,wBAAwB,CAAC"}
|
|
@@ -37,4 +37,34 @@ export declare function injectAll(platformIds: PlatformId[]): Promise<InjectionR
|
|
|
37
37
|
* 取得用於顯示的一行安裝指令。
|
|
38
38
|
*/
|
|
39
39
|
export declare function getInstallCommand(): string;
|
|
40
|
+
export interface ProxyInjectionResult {
|
|
41
|
+
readonly platformId: PlatformId;
|
|
42
|
+
readonly configPath: string;
|
|
43
|
+
readonly serversProxied: number;
|
|
44
|
+
readonly serversSkipped: number;
|
|
45
|
+
readonly backupPath?: string;
|
|
46
|
+
readonly error?: string;
|
|
47
|
+
}
|
|
48
|
+
export interface ProxyInjectionSummary {
|
|
49
|
+
readonly results: readonly ProxyInjectionResult[];
|
|
50
|
+
readonly totalPlatforms: number;
|
|
51
|
+
readonly totalServersProxied: number;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Inject MCP proxy into all detected platforms.
|
|
55
|
+
* Wraps every non-panguard MCP server with panguard-mcp-proxy
|
|
56
|
+
* so all tool calls pass through ATR evaluation.
|
|
57
|
+
*
|
|
58
|
+
* @param platformIds - Platforms to inject proxy into
|
|
59
|
+
* @returns Summary with per-platform results
|
|
60
|
+
*/
|
|
61
|
+
export declare function injectProxy(platformIds: readonly PlatformId[]): ProxyInjectionSummary;
|
|
62
|
+
/**
|
|
63
|
+
* Remove proxy wrappers from all MCP servers on detected platforms.
|
|
64
|
+
* Restores original command/args for each proxied server.
|
|
65
|
+
*
|
|
66
|
+
* @param platformIds - Platforms to remove proxy from
|
|
67
|
+
* @returns Summary with per-platform results
|
|
68
|
+
*/
|
|
69
|
+
export declare function removeProxy(platformIds: readonly PlatformId[]): ProxyInjectionSummary;
|
|
40
70
|
//# sourceMappingURL=mcp-injector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-injector.d.ts","sourceRoot":"","sources":["../../src/config/mcp-injector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAKzD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;
|
|
1
|
+
{"version":3,"file":"mcp-injector.d.ts","sourceRoot":"","sources":["../../src/config/mcp-injector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAKzD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA2KD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,eAAe,CAmFvE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,eAAe,CAqCvE;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAErF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAsDD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAClD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AAwED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,GAAG,qBAAqB,CAgBrF;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,GAAG,qBAAqB,CAiErF"}
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module @panguard-ai/panguard-mcp/config/mcp-injector
|
|
8
8
|
*/
|
|
9
|
-
import { existsSync, mkdirSync, readFileSync, writeFileSync, copyFileSync, rmSync } from 'node:fs';
|
|
10
|
-
import { dirname, join } from 'node:path';
|
|
9
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync, copyFileSync, rmSync, chmodSync, readdirSync, unlinkSync } from 'node:fs';
|
|
10
|
+
import { dirname, join, basename } from 'node:path';
|
|
11
11
|
import { fileURLToPath } from 'node:url';
|
|
12
12
|
import { execFileSync } from 'node:child_process';
|
|
13
13
|
import { createLogger } from '@panguard-ai/core';
|
|
@@ -46,7 +46,26 @@ function backupFile(filePath) {
|
|
|
46
46
|
return undefined;
|
|
47
47
|
const backupPath = `${filePath}.bak.${Date.now()}`;
|
|
48
48
|
copyFileSync(filePath, backupPath);
|
|
49
|
+
// Set restrictive permissions — config files may contain API keys
|
|
50
|
+
try {
|
|
51
|
+
chmodSync(backupPath, 0o600);
|
|
52
|
+
}
|
|
53
|
+
catch { /* best effort */ }
|
|
49
54
|
logger.info(`Backed up ${filePath} -> ${backupPath}`);
|
|
55
|
+
// Cleanup old backups — keep only the 3 most recent
|
|
56
|
+
try {
|
|
57
|
+
const dir = dirname(filePath);
|
|
58
|
+
const base = basename(filePath);
|
|
59
|
+
const backups = readdirSync(dir)
|
|
60
|
+
.filter((f) => f.startsWith(`${base}.bak.`))
|
|
61
|
+
.sort()
|
|
62
|
+
.reverse();
|
|
63
|
+
for (const old of backups.slice(3)) {
|
|
64
|
+
unlinkSync(join(dir, old));
|
|
65
|
+
logger.debug(`Removed old backup: ${old}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch { /* cleanup is best-effort */ }
|
|
50
69
|
return backupPath;
|
|
51
70
|
}
|
|
52
71
|
/**
|
|
@@ -302,4 +321,191 @@ export async function injectAll(platformIds) {
|
|
|
302
321
|
export function getInstallCommand() {
|
|
303
322
|
return 'npx panguard setup';
|
|
304
323
|
}
|
|
324
|
+
// ── Proxy Injection ──────────────────────────────────────────
|
|
325
|
+
const PROXY_PACKAGE = '@panguard-ai/panguard-mcp-proxy';
|
|
326
|
+
/** Check if an MCP server entry is already wrapped with the proxy. */
|
|
327
|
+
function isAlreadyProxied(server) {
|
|
328
|
+
const args = Array.isArray(server['args']) ? server['args'] : [];
|
|
329
|
+
return args.some((a) => typeof a === 'string' && a.includes(PROXY_PACKAGE));
|
|
330
|
+
}
|
|
331
|
+
/** Check if an MCP server entry belongs to PanGuard itself. */
|
|
332
|
+
function isPanguardEntry(name, server) {
|
|
333
|
+
if (name === 'panguard')
|
|
334
|
+
return true;
|
|
335
|
+
const args = Array.isArray(server['args']) ? server['args'] : [];
|
|
336
|
+
const command = typeof server['command'] === 'string' ? server['command'] : '';
|
|
337
|
+
return (command.includes('panguard') ||
|
|
338
|
+
args.some((a) => typeof a === 'string' && a.includes('@panguard-ai/panguard-mcp')));
|
|
339
|
+
}
|
|
340
|
+
/** Wrap a single MCP server entry with the proxy. Returns a new object. */
|
|
341
|
+
function wrapWithProxy(server) {
|
|
342
|
+
const command = typeof server['command'] === 'string' ? server['command'] : '';
|
|
343
|
+
const args = Array.isArray(server['args'])
|
|
344
|
+
? server['args'].filter((a) => typeof a === 'string')
|
|
345
|
+
: [];
|
|
346
|
+
// New args: npx -y @panguard-ai/panguard-mcp-proxy -- <original command> <original args>
|
|
347
|
+
const proxyArgs = ['-y', PROXY_PACKAGE, '--', command, ...args];
|
|
348
|
+
return { ...server, command: 'npx', args: proxyArgs };
|
|
349
|
+
}
|
|
350
|
+
/** Unwrap a proxy-wrapped MCP server entry. Returns null if not proxied. */
|
|
351
|
+
function unwrapProxy(server) {
|
|
352
|
+
if (!isAlreadyProxied(server))
|
|
353
|
+
return null;
|
|
354
|
+
const args = Array.isArray(server['args'])
|
|
355
|
+
? server['args'].filter((a) => typeof a === 'string')
|
|
356
|
+
: [];
|
|
357
|
+
// Find "--" separator
|
|
358
|
+
const sepIdx = args.indexOf('--');
|
|
359
|
+
if (sepIdx === -1 || sepIdx >= args.length - 1)
|
|
360
|
+
return null;
|
|
361
|
+
const originalCommand = args[sepIdx + 1];
|
|
362
|
+
const originalArgs = args.slice(sepIdx + 2);
|
|
363
|
+
return { ...server, command: originalCommand, args: originalArgs };
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Inject proxy into all MCP servers on a single JSON-config platform.
|
|
367
|
+
* Wraps each non-panguard server with panguard-mcp-proxy.
|
|
368
|
+
* Skips already-proxied servers and panguard's own entries.
|
|
369
|
+
*/
|
|
370
|
+
function injectProxyForJsonPlatform(platformId, configPath) {
|
|
371
|
+
const result = {
|
|
372
|
+
platformId,
|
|
373
|
+
configPath,
|
|
374
|
+
serversProxied: 0,
|
|
375
|
+
serversSkipped: 0,
|
|
376
|
+
};
|
|
377
|
+
if (!existsSync(configPath)) {
|
|
378
|
+
return result;
|
|
379
|
+
}
|
|
380
|
+
try {
|
|
381
|
+
const config = readJsonSafe(configPath);
|
|
382
|
+
const servers = config['mcpServers'];
|
|
383
|
+
if (!servers || typeof servers !== 'object')
|
|
384
|
+
return result;
|
|
385
|
+
const updatedServers = {};
|
|
386
|
+
let changed = false;
|
|
387
|
+
for (const [name, value] of Object.entries(servers)) {
|
|
388
|
+
if (!value || typeof value !== 'object') {
|
|
389
|
+
updatedServers[name] = value;
|
|
390
|
+
continue;
|
|
391
|
+
}
|
|
392
|
+
const server = value;
|
|
393
|
+
// Skip panguard's own entries
|
|
394
|
+
if (isPanguardEntry(name, server)) {
|
|
395
|
+
updatedServers[name] = server;
|
|
396
|
+
result.serversSkipped++;
|
|
397
|
+
continue;
|
|
398
|
+
}
|
|
399
|
+
// Skip already proxied
|
|
400
|
+
if (isAlreadyProxied(server)) {
|
|
401
|
+
updatedServers[name] = server;
|
|
402
|
+
result.serversSkipped++;
|
|
403
|
+
continue;
|
|
404
|
+
}
|
|
405
|
+
// Wrap with proxy
|
|
406
|
+
updatedServers[name] = wrapWithProxy(server);
|
|
407
|
+
result.serversProxied++;
|
|
408
|
+
changed = true;
|
|
409
|
+
}
|
|
410
|
+
if (changed) {
|
|
411
|
+
result.backupPath = backupFile(configPath);
|
|
412
|
+
const updatedConfig = { ...config, mcpServers: updatedServers };
|
|
413
|
+
ensureDir(configPath);
|
|
414
|
+
writeFileSync(configPath, JSON.stringify(updatedConfig, null, 2), 'utf-8');
|
|
415
|
+
logger.info(`Proxied ${result.serversProxied} server(s) on ${platformId}`);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
catch (err) {
|
|
419
|
+
result.error = err instanceof Error ? err.message : String(err);
|
|
420
|
+
logger.error(`Failed to inject proxy for ${platformId}: ${result.error}`);
|
|
421
|
+
}
|
|
422
|
+
return result;
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
* Inject MCP proxy into all detected platforms.
|
|
426
|
+
* Wraps every non-panguard MCP server with panguard-mcp-proxy
|
|
427
|
+
* so all tool calls pass through ATR evaluation.
|
|
428
|
+
*
|
|
429
|
+
* @param platformIds - Platforms to inject proxy into
|
|
430
|
+
* @returns Summary with per-platform results
|
|
431
|
+
*/
|
|
432
|
+
export function injectProxy(platformIds) {
|
|
433
|
+
const results = [];
|
|
434
|
+
for (const platformId of platformIds) {
|
|
435
|
+
// OpenClaw uses SKILL.md, not MCP protocol — skip
|
|
436
|
+
if (platformId === 'openclaw')
|
|
437
|
+
continue;
|
|
438
|
+
const configPath = getConfigPath(platformId);
|
|
439
|
+
const result = injectProxyForJsonPlatform(platformId, configPath);
|
|
440
|
+
results.push(result);
|
|
441
|
+
}
|
|
442
|
+
const totalServersProxied = results.reduce((sum, r) => sum + r.serversProxied, 0);
|
|
443
|
+
const totalPlatforms = results.filter((r) => r.serversProxied > 0).length;
|
|
444
|
+
return { results, totalPlatforms, totalServersProxied };
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
447
|
+
* Remove proxy wrappers from all MCP servers on detected platforms.
|
|
448
|
+
* Restores original command/args for each proxied server.
|
|
449
|
+
*
|
|
450
|
+
* @param platformIds - Platforms to remove proxy from
|
|
451
|
+
* @returns Summary with per-platform results
|
|
452
|
+
*/
|
|
453
|
+
export function removeProxy(platformIds) {
|
|
454
|
+
const results = [];
|
|
455
|
+
for (const platformId of platformIds) {
|
|
456
|
+
if (platformId === 'openclaw')
|
|
457
|
+
continue;
|
|
458
|
+
const configPath = getConfigPath(platformId);
|
|
459
|
+
const result = {
|
|
460
|
+
platformId,
|
|
461
|
+
configPath,
|
|
462
|
+
serversProxied: 0,
|
|
463
|
+
serversSkipped: 0,
|
|
464
|
+
};
|
|
465
|
+
if (!existsSync(configPath)) {
|
|
466
|
+
results.push(result);
|
|
467
|
+
continue;
|
|
468
|
+
}
|
|
469
|
+
try {
|
|
470
|
+
const config = readJsonSafe(configPath);
|
|
471
|
+
const servers = config['mcpServers'];
|
|
472
|
+
if (!servers || typeof servers !== 'object') {
|
|
473
|
+
results.push(result);
|
|
474
|
+
continue;
|
|
475
|
+
}
|
|
476
|
+
const updatedServers = {};
|
|
477
|
+
let changed = false;
|
|
478
|
+
for (const [name, value] of Object.entries(servers)) {
|
|
479
|
+
if (!value || typeof value !== 'object') {
|
|
480
|
+
updatedServers[name] = value;
|
|
481
|
+
continue;
|
|
482
|
+
}
|
|
483
|
+
const server = value;
|
|
484
|
+
const unwrapped = unwrapProxy(server);
|
|
485
|
+
if (unwrapped) {
|
|
486
|
+
updatedServers[name] = unwrapped;
|
|
487
|
+
result.serversProxied++;
|
|
488
|
+
changed = true;
|
|
489
|
+
}
|
|
490
|
+
else {
|
|
491
|
+
updatedServers[name] = server;
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
if (changed) {
|
|
495
|
+
result.backupPath = backupFile(configPath);
|
|
496
|
+
const updatedConfig = { ...config, mcpServers: updatedServers };
|
|
497
|
+
writeFileSync(configPath, JSON.stringify(updatedConfig, null, 2), 'utf-8');
|
|
498
|
+
logger.info(`Removed proxy from ${result.serversProxied} server(s) on ${platformId}`);
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
catch (err) {
|
|
502
|
+
result.error = err instanceof Error ? err.message : String(err);
|
|
503
|
+
logger.error(`Failed to remove proxy for ${platformId}: ${result.error}`);
|
|
504
|
+
}
|
|
505
|
+
results.push(result);
|
|
506
|
+
}
|
|
507
|
+
const totalServersProxied = results.reduce((sum, r) => sum + r.serversProxied, 0);
|
|
508
|
+
const totalPlatforms = results.filter((r) => r.serversProxied > 0).length;
|
|
509
|
+
return { results, totalPlatforms, totalServersProxied };
|
|
510
|
+
}
|
|
305
511
|
//# sourceMappingURL=mcp-injector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-injector.js","sourceRoot":"","sources":["../../src/config/mcp-injector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-injector.js","sourceRoot":"","sources":["../../src/config/mcp-injector.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Panguard MCP - Public API
|
|
3
|
+
* Panguard MCP - 公開 API
|
|
4
|
+
*
|
|
5
|
+
* MCP server for Panguard AI — control security scanning and guard from
|
|
6
|
+
* Claude Desktop, Cursor, or Claude Code via conversation.
|
|
7
|
+
* 用於 Panguard AI 的 MCP 伺服器 — 透過對話從 Claude Desktop、Cursor 或 Claude Code 控制安全掃描和守護。
|
|
8
|
+
*
|
|
9
|
+
* @module @panguard-ai/panguard-mcp
|
|
10
|
+
*/
|
|
11
|
+
export { startMCPServer, getAllToolDefinitions, dispatchTool, PANGUARD_MCP_VERSION, } from './server.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Panguard MCP - Server
|
|
3
|
+
* Panguard MCP - 伺服器
|
|
4
|
+
*
|
|
5
|
+
* Main MCP server entry: registers all tools and dispatches incoming requests.
|
|
6
|
+
* 主要 MCP 伺服器入口:註冊所有工具並分派傳入請求。
|
|
7
|
+
*
|
|
8
|
+
* @module @panguard-ai/panguard-mcp/server
|
|
9
|
+
*/
|
|
10
|
+
/** MCP server version / MCP 伺服器版本 */
|
|
11
|
+
export declare const PANGUARD_MCP_VERSION: string;
|
|
12
|
+
/**
|
|
13
|
+
* Returns the complete list of all MCP tool definitions.
|
|
14
|
+
* 返回所有 MCP 工具定義的完整清單。
|
|
15
|
+
*/
|
|
16
|
+
export declare function getAllToolDefinitions(): ({
|
|
17
|
+
name: string;
|
|
18
|
+
description: string;
|
|
19
|
+
inputSchema: {
|
|
20
|
+
type: "object";
|
|
21
|
+
properties: {
|
|
22
|
+
depth: {
|
|
23
|
+
type: string;
|
|
24
|
+
enum: string[];
|
|
25
|
+
description: string;
|
|
26
|
+
default: string;
|
|
27
|
+
};
|
|
28
|
+
lang: {
|
|
29
|
+
type: string;
|
|
30
|
+
enum: string[];
|
|
31
|
+
description: string;
|
|
32
|
+
default: string;
|
|
33
|
+
};
|
|
34
|
+
dir?: undefined;
|
|
35
|
+
dataDir?: undefined;
|
|
36
|
+
mode?: undefined;
|
|
37
|
+
limit?: undefined;
|
|
38
|
+
severity?: undefined;
|
|
39
|
+
ip?: undefined;
|
|
40
|
+
duration?: undefined;
|
|
41
|
+
reason?: undefined;
|
|
42
|
+
output?: undefined;
|
|
43
|
+
path?: undefined;
|
|
44
|
+
generateReport?: undefined;
|
|
45
|
+
};
|
|
46
|
+
required?: undefined;
|
|
47
|
+
};
|
|
48
|
+
} | {
|
|
49
|
+
name: string;
|
|
50
|
+
description: string;
|
|
51
|
+
inputSchema: {
|
|
52
|
+
type: "object";
|
|
53
|
+
properties: {
|
|
54
|
+
dir: {
|
|
55
|
+
type: string;
|
|
56
|
+
description: string;
|
|
57
|
+
default: string;
|
|
58
|
+
};
|
|
59
|
+
lang: {
|
|
60
|
+
type: string;
|
|
61
|
+
enum: string[];
|
|
62
|
+
default: string;
|
|
63
|
+
description?: undefined;
|
|
64
|
+
};
|
|
65
|
+
depth?: undefined;
|
|
66
|
+
dataDir?: undefined;
|
|
67
|
+
mode?: undefined;
|
|
68
|
+
limit?: undefined;
|
|
69
|
+
severity?: undefined;
|
|
70
|
+
ip?: undefined;
|
|
71
|
+
duration?: undefined;
|
|
72
|
+
reason?: undefined;
|
|
73
|
+
output?: undefined;
|
|
74
|
+
path?: undefined;
|
|
75
|
+
generateReport?: undefined;
|
|
76
|
+
};
|
|
77
|
+
required: string[];
|
|
78
|
+
};
|
|
79
|
+
} | {
|
|
80
|
+
name: string;
|
|
81
|
+
description: string;
|
|
82
|
+
inputSchema: {
|
|
83
|
+
type: "object";
|
|
84
|
+
properties: {
|
|
85
|
+
dataDir: {
|
|
86
|
+
type: string;
|
|
87
|
+
description: string;
|
|
88
|
+
};
|
|
89
|
+
mode: {
|
|
90
|
+
type: string;
|
|
91
|
+
enum: string[];
|
|
92
|
+
description: string;
|
|
93
|
+
default?: undefined;
|
|
94
|
+
};
|
|
95
|
+
depth?: undefined;
|
|
96
|
+
lang?: undefined;
|
|
97
|
+
dir?: undefined;
|
|
98
|
+
limit?: undefined;
|
|
99
|
+
severity?: undefined;
|
|
100
|
+
ip?: undefined;
|
|
101
|
+
duration?: undefined;
|
|
102
|
+
reason?: undefined;
|
|
103
|
+
output?: undefined;
|
|
104
|
+
path?: undefined;
|
|
105
|
+
generateReport?: undefined;
|
|
106
|
+
};
|
|
107
|
+
required?: undefined;
|
|
108
|
+
};
|
|
109
|
+
} | {
|
|
110
|
+
name: string;
|
|
111
|
+
description: string;
|
|
112
|
+
inputSchema: {
|
|
113
|
+
type: "object";
|
|
114
|
+
properties: {
|
|
115
|
+
dataDir: {
|
|
116
|
+
type: string;
|
|
117
|
+
description: string;
|
|
118
|
+
};
|
|
119
|
+
depth?: undefined;
|
|
120
|
+
lang?: undefined;
|
|
121
|
+
dir?: undefined;
|
|
122
|
+
mode?: undefined;
|
|
123
|
+
limit?: undefined;
|
|
124
|
+
severity?: undefined;
|
|
125
|
+
ip?: undefined;
|
|
126
|
+
duration?: undefined;
|
|
127
|
+
reason?: undefined;
|
|
128
|
+
output?: undefined;
|
|
129
|
+
path?: undefined;
|
|
130
|
+
generateReport?: undefined;
|
|
131
|
+
};
|
|
132
|
+
required?: undefined;
|
|
133
|
+
};
|
|
134
|
+
} | {
|
|
135
|
+
name: string;
|
|
136
|
+
description: string;
|
|
137
|
+
inputSchema: {
|
|
138
|
+
type: "object";
|
|
139
|
+
properties: {
|
|
140
|
+
limit: {
|
|
141
|
+
type: string;
|
|
142
|
+
description: string;
|
|
143
|
+
default: number;
|
|
144
|
+
};
|
|
145
|
+
severity: {
|
|
146
|
+
type: string;
|
|
147
|
+
enum: string[];
|
|
148
|
+
default: string;
|
|
149
|
+
};
|
|
150
|
+
dataDir: {
|
|
151
|
+
type: string;
|
|
152
|
+
description: string;
|
|
153
|
+
};
|
|
154
|
+
depth?: undefined;
|
|
155
|
+
lang?: undefined;
|
|
156
|
+
dir?: undefined;
|
|
157
|
+
mode?: undefined;
|
|
158
|
+
ip?: undefined;
|
|
159
|
+
duration?: undefined;
|
|
160
|
+
reason?: undefined;
|
|
161
|
+
output?: undefined;
|
|
162
|
+
path?: undefined;
|
|
163
|
+
generateReport?: undefined;
|
|
164
|
+
};
|
|
165
|
+
required?: undefined;
|
|
166
|
+
};
|
|
167
|
+
} | {
|
|
168
|
+
name: string;
|
|
169
|
+
description: string;
|
|
170
|
+
inputSchema: {
|
|
171
|
+
type: "object";
|
|
172
|
+
properties: {
|
|
173
|
+
ip: {
|
|
174
|
+
type: string;
|
|
175
|
+
description: string;
|
|
176
|
+
};
|
|
177
|
+
duration: {
|
|
178
|
+
type: string;
|
|
179
|
+
description: string;
|
|
180
|
+
default: string;
|
|
181
|
+
};
|
|
182
|
+
reason: {
|
|
183
|
+
type: string;
|
|
184
|
+
description: string;
|
|
185
|
+
};
|
|
186
|
+
depth?: undefined;
|
|
187
|
+
lang?: undefined;
|
|
188
|
+
dir?: undefined;
|
|
189
|
+
dataDir?: undefined;
|
|
190
|
+
mode?: undefined;
|
|
191
|
+
limit?: undefined;
|
|
192
|
+
severity?: undefined;
|
|
193
|
+
output?: undefined;
|
|
194
|
+
path?: undefined;
|
|
195
|
+
generateReport?: undefined;
|
|
196
|
+
};
|
|
197
|
+
required: string[];
|
|
198
|
+
};
|
|
199
|
+
} | {
|
|
200
|
+
name: string;
|
|
201
|
+
description: string;
|
|
202
|
+
inputSchema: {
|
|
203
|
+
type: "object";
|
|
204
|
+
properties: {
|
|
205
|
+
output: {
|
|
206
|
+
type: string;
|
|
207
|
+
description: string;
|
|
208
|
+
default: string;
|
|
209
|
+
};
|
|
210
|
+
lang: {
|
|
211
|
+
type: string;
|
|
212
|
+
enum: string[];
|
|
213
|
+
default: string;
|
|
214
|
+
description?: undefined;
|
|
215
|
+
};
|
|
216
|
+
depth: {
|
|
217
|
+
type: string;
|
|
218
|
+
enum: string[];
|
|
219
|
+
default: string;
|
|
220
|
+
description?: undefined;
|
|
221
|
+
};
|
|
222
|
+
dir?: undefined;
|
|
223
|
+
dataDir?: undefined;
|
|
224
|
+
mode?: undefined;
|
|
225
|
+
limit?: undefined;
|
|
226
|
+
severity?: undefined;
|
|
227
|
+
ip?: undefined;
|
|
228
|
+
duration?: undefined;
|
|
229
|
+
reason?: undefined;
|
|
230
|
+
path?: undefined;
|
|
231
|
+
generateReport?: undefined;
|
|
232
|
+
};
|
|
233
|
+
required?: undefined;
|
|
234
|
+
};
|
|
235
|
+
} | {
|
|
236
|
+
name: string;
|
|
237
|
+
description: string;
|
|
238
|
+
inputSchema: {
|
|
239
|
+
type: "object";
|
|
240
|
+
properties: {
|
|
241
|
+
dataDir: {
|
|
242
|
+
type: string;
|
|
243
|
+
description: string;
|
|
244
|
+
};
|
|
245
|
+
lang: {
|
|
246
|
+
type: string;
|
|
247
|
+
enum: string[];
|
|
248
|
+
default: string;
|
|
249
|
+
description?: undefined;
|
|
250
|
+
};
|
|
251
|
+
mode: {
|
|
252
|
+
type: string;
|
|
253
|
+
enum: string[];
|
|
254
|
+
default: string;
|
|
255
|
+
description?: undefined;
|
|
256
|
+
};
|
|
257
|
+
depth?: undefined;
|
|
258
|
+
dir?: undefined;
|
|
259
|
+
limit?: undefined;
|
|
260
|
+
severity?: undefined;
|
|
261
|
+
ip?: undefined;
|
|
262
|
+
duration?: undefined;
|
|
263
|
+
reason?: undefined;
|
|
264
|
+
output?: undefined;
|
|
265
|
+
path?: undefined;
|
|
266
|
+
generateReport?: undefined;
|
|
267
|
+
};
|
|
268
|
+
required?: undefined;
|
|
269
|
+
};
|
|
270
|
+
} | {
|
|
271
|
+
name: string;
|
|
272
|
+
description: string;
|
|
273
|
+
inputSchema: {
|
|
274
|
+
type: "object";
|
|
275
|
+
properties: {
|
|
276
|
+
path: {
|
|
277
|
+
type: string;
|
|
278
|
+
description: string;
|
|
279
|
+
};
|
|
280
|
+
depth?: undefined;
|
|
281
|
+
lang?: undefined;
|
|
282
|
+
dir?: undefined;
|
|
283
|
+
dataDir?: undefined;
|
|
284
|
+
mode?: undefined;
|
|
285
|
+
limit?: undefined;
|
|
286
|
+
severity?: undefined;
|
|
287
|
+
ip?: undefined;
|
|
288
|
+
duration?: undefined;
|
|
289
|
+
reason?: undefined;
|
|
290
|
+
output?: undefined;
|
|
291
|
+
generateReport?: undefined;
|
|
292
|
+
};
|
|
293
|
+
required: string[];
|
|
294
|
+
};
|
|
295
|
+
} | {
|
|
296
|
+
name: string;
|
|
297
|
+
description: string;
|
|
298
|
+
inputSchema: {
|
|
299
|
+
type: "object";
|
|
300
|
+
properties: {
|
|
301
|
+
dataDir: {
|
|
302
|
+
type: string;
|
|
303
|
+
description: string;
|
|
304
|
+
};
|
|
305
|
+
lang: {
|
|
306
|
+
type: string;
|
|
307
|
+
enum: string[];
|
|
308
|
+
default: string;
|
|
309
|
+
description?: undefined;
|
|
310
|
+
};
|
|
311
|
+
mode: {
|
|
312
|
+
type: string;
|
|
313
|
+
enum: string[];
|
|
314
|
+
default: string;
|
|
315
|
+
description?: undefined;
|
|
316
|
+
};
|
|
317
|
+
generateReport: {
|
|
318
|
+
type: string;
|
|
319
|
+
description: string;
|
|
320
|
+
default: boolean;
|
|
321
|
+
};
|
|
322
|
+
depth?: undefined;
|
|
323
|
+
dir?: undefined;
|
|
324
|
+
limit?: undefined;
|
|
325
|
+
severity?: undefined;
|
|
326
|
+
ip?: undefined;
|
|
327
|
+
duration?: undefined;
|
|
328
|
+
reason?: undefined;
|
|
329
|
+
output?: undefined;
|
|
330
|
+
path?: undefined;
|
|
331
|
+
};
|
|
332
|
+
required?: undefined;
|
|
333
|
+
};
|
|
334
|
+
})[];
|
|
335
|
+
/**
|
|
336
|
+
* Dispatch an incoming tool call to the appropriate handler.
|
|
337
|
+
* 將傳入的工具呼叫分派給適當的處理程序。
|
|
338
|
+
*
|
|
339
|
+
* @param name - Tool name / 工具名稱
|
|
340
|
+
* @param args - Tool arguments / 工具參數
|
|
341
|
+
*/
|
|
342
|
+
export declare function dispatchTool(name: string, args: Record<string, unknown>): Promise<{
|
|
343
|
+
content: {
|
|
344
|
+
type: "text";
|
|
345
|
+
text: string;
|
|
346
|
+
}[];
|
|
347
|
+
}>;
|
|
348
|
+
/**
|
|
349
|
+
* Create and start the MCP server using stdio transport.
|
|
350
|
+
* 使用 stdio 傳輸建立並啟動 MCP 伺服器。
|
|
351
|
+
*
|
|
352
|
+
* This is the main entry point for the MCP server process.
|
|
353
|
+
* 這是 MCP 伺服器進程的主要入口點。
|
|
354
|
+
*/
|
|
355
|
+
export declare function startMCPServer(): Promise<void>;
|
|
356
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Panguard MCP - Guard Tools
|
|
3
|
+
* Panguard MCP - 守護工具
|
|
4
|
+
*
|
|
5
|
+
* Implements panguard_guard_start, panguard_guard_stop, panguard_status,
|
|
6
|
+
* and panguard_alerts MCP tools.
|
|
7
|
+
* 實作 panguard_guard_start、panguard_guard_stop、panguard_status 和 panguard_alerts MCP 工具。
|
|
8
|
+
*
|
|
9
|
+
* @module @panguard-ai/panguard-mcp/tools/guard-tools
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Execute panguard_guard_start — start the real-time threat monitoring daemon.
|
|
13
|
+
* 執行 panguard_guard_start — 啟動即時威脅監控常駐程式。
|
|
14
|
+
*
|
|
15
|
+
* Spawns the guard daemon as a detached background process with stdio
|
|
16
|
+
* redirected to a log file, so it does not interfere with MCP stdio transport.
|
|
17
|
+
* 將守護常駐程式作為分離的背景進程啟動,stdio 重導向到日誌檔案。
|
|
18
|
+
*/
|
|
19
|
+
export declare function executeGuardStart(args: Record<string, unknown>): Promise<{
|
|
20
|
+
content: {
|
|
21
|
+
type: "text";
|
|
22
|
+
text: string;
|
|
23
|
+
}[];
|
|
24
|
+
isError?: undefined;
|
|
25
|
+
} | {
|
|
26
|
+
content: {
|
|
27
|
+
type: "text";
|
|
28
|
+
text: string;
|
|
29
|
+
}[];
|
|
30
|
+
isError: boolean;
|
|
31
|
+
}>;
|
|
32
|
+
/**
|
|
33
|
+
* Execute panguard_guard_stop — stop the real-time threat monitoring daemon.
|
|
34
|
+
* 執行 panguard_guard_stop — 停止即時威脅監控常駐程式。
|
|
35
|
+
*/
|
|
36
|
+
export declare function executeGuardStop(args: Record<string, unknown>): Promise<{
|
|
37
|
+
content: {
|
|
38
|
+
type: "text";
|
|
39
|
+
text: string;
|
|
40
|
+
}[];
|
|
41
|
+
}>;
|
|
42
|
+
/**
|
|
43
|
+
* Execute panguard_status — get current status of all Panguard services.
|
|
44
|
+
* 執行 panguard_status — 取得所有 Panguard 服務的當前狀態。
|
|
45
|
+
*/
|
|
46
|
+
export declare function executeStatus(args: Record<string, unknown>): Promise<{
|
|
47
|
+
content: {
|
|
48
|
+
type: "text";
|
|
49
|
+
text: string;
|
|
50
|
+
}[];
|
|
51
|
+
}>;
|
|
52
|
+
/**
|
|
53
|
+
* Execute panguard_alerts — get recent security alerts from guard event log.
|
|
54
|
+
* 執行 panguard_alerts — 從守護事件日誌取得近期安全告警。
|
|
55
|
+
*/
|
|
56
|
+
export declare function executeAlerts(args: Record<string, unknown>): Promise<{
|
|
57
|
+
content: {
|
|
58
|
+
type: "text";
|
|
59
|
+
text: string;
|
|
60
|
+
}[];
|
|
61
|
+
}>;
|
|
62
|
+
//# sourceMappingURL=guard-tools.d.ts.map
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Panguard MCP - Management Tools
|
|
3
|
+
* Panguard MCP - 管理工具
|
|
4
|
+
*
|
|
5
|
+
* Implements panguard_init, panguard_deploy, panguard_block_ip,
|
|
6
|
+
* and panguard_generate_report MCP tools.
|
|
7
|
+
* 實作 panguard_init、panguard_deploy、panguard_block_ip 和 panguard_generate_report MCP 工具。
|
|
8
|
+
*
|
|
9
|
+
* @module @panguard-ai/panguard-mcp/tools/manage-tools
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Execute panguard_block_ip — manually block an IP address.
|
|
13
|
+
* 執行 panguard_block_ip — 手動封鎖 IP 位址。
|
|
14
|
+
*/
|
|
15
|
+
export declare function executeBlockIP(args: Record<string, unknown>): Promise<{
|
|
16
|
+
content: {
|
|
17
|
+
type: "text";
|
|
18
|
+
text: string;
|
|
19
|
+
}[];
|
|
20
|
+
isError: boolean;
|
|
21
|
+
} | {
|
|
22
|
+
content: {
|
|
23
|
+
type: "text";
|
|
24
|
+
text: string;
|
|
25
|
+
}[];
|
|
26
|
+
isError?: undefined;
|
|
27
|
+
}>;
|
|
28
|
+
/**
|
|
29
|
+
* Execute panguard_generate_report — run scan and generate a PDF compliance report.
|
|
30
|
+
* 執行 panguard_generate_report — 執行掃描並生成 PDF 合規報告。
|
|
31
|
+
*/
|
|
32
|
+
export declare function executeGenerateReport(args: Record<string, unknown>): Promise<{
|
|
33
|
+
content: {
|
|
34
|
+
type: "text";
|
|
35
|
+
text: string;
|
|
36
|
+
}[];
|
|
37
|
+
isError?: undefined;
|
|
38
|
+
} | {
|
|
39
|
+
content: {
|
|
40
|
+
type: "text";
|
|
41
|
+
text: string;
|
|
42
|
+
}[];
|
|
43
|
+
isError: boolean;
|
|
44
|
+
}>;
|
|
45
|
+
/**
|
|
46
|
+
* Execute panguard_init — initialize Panguard configuration with defaults.
|
|
47
|
+
* 執行 panguard_init — 以預設值初始化 Panguard 配置。
|
|
48
|
+
*/
|
|
49
|
+
export declare function executeInit(args: Record<string, unknown>): Promise<{
|
|
50
|
+
content: {
|
|
51
|
+
type: "text";
|
|
52
|
+
text: string;
|
|
53
|
+
}[];
|
|
54
|
+
}>;
|
|
55
|
+
/**
|
|
56
|
+
* Execute panguard_deploy — one-click setup: init + scan + optional report.
|
|
57
|
+
* 執行 panguard_deploy — 一鍵設定:初始化 + 掃描 + 可選報告。
|
|
58
|
+
*/
|
|
59
|
+
export declare function executeDeploy(args: Record<string, unknown>): Promise<{
|
|
60
|
+
content: {
|
|
61
|
+
type: "text";
|
|
62
|
+
text: string;
|
|
63
|
+
}[];
|
|
64
|
+
}>;
|
|
65
|
+
//# sourceMappingURL=manage-tools.d.ts.map
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Panguard MCP - Scan Tools
|
|
3
|
+
* Panguard MCP - 掃描工具
|
|
4
|
+
*
|
|
5
|
+
* Implements panguard_scan and panguard_scan_code MCP tools.
|
|
6
|
+
* 實作 panguard_scan 和 panguard_scan_code MCP 工具。
|
|
7
|
+
*
|
|
8
|
+
* @module @panguard-ai/panguard-mcp/tools/scan-tools
|
|
9
|
+
*/
|
|
10
|
+
import { runScan, generatePdfReport } from '@panguard-ai/panguard-scan';
|
|
11
|
+
/**
|
|
12
|
+
* Execute panguard_scan — system security health check.
|
|
13
|
+
* 執行 panguard_scan — 系統安全健檢。
|
|
14
|
+
*/
|
|
15
|
+
export declare function executeScan(args: Record<string, unknown>): Promise<{
|
|
16
|
+
content: {
|
|
17
|
+
type: "text";
|
|
18
|
+
text: string;
|
|
19
|
+
}[];
|
|
20
|
+
isError?: undefined;
|
|
21
|
+
} | {
|
|
22
|
+
content: {
|
|
23
|
+
type: "text";
|
|
24
|
+
text: string;
|
|
25
|
+
}[];
|
|
26
|
+
isError: boolean;
|
|
27
|
+
}>;
|
|
28
|
+
/**
|
|
29
|
+
* Execute panguard_scan_code — SAST source code scan.
|
|
30
|
+
* 執行 panguard_scan_code — SAST 原始碼掃描。
|
|
31
|
+
*/
|
|
32
|
+
export declare function executeScanCode(args: Record<string, unknown>): Promise<{
|
|
33
|
+
content: {
|
|
34
|
+
type: "text";
|
|
35
|
+
text: string;
|
|
36
|
+
}[];
|
|
37
|
+
isError: boolean;
|
|
38
|
+
} | {
|
|
39
|
+
content: {
|
|
40
|
+
type: "text";
|
|
41
|
+
text: string;
|
|
42
|
+
}[];
|
|
43
|
+
isError?: undefined;
|
|
44
|
+
}>;
|
|
45
|
+
export { runScan, generatePdfReport };
|
|
46
|
+
//# sourceMappingURL=scan-tools.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@panguard-ai/panguard-mcp",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -30,9 +30,17 @@
|
|
|
30
30
|
"package.json",
|
|
31
31
|
"README.md"
|
|
32
32
|
],
|
|
33
|
+
"scripts": {
|
|
34
|
+
"build": "tsc --build",
|
|
35
|
+
"clean": "rm -rf dist tsconfig.tsbuildinfo",
|
|
36
|
+
"typecheck": "tsc --noEmit",
|
|
37
|
+
"test": "vitest run",
|
|
38
|
+
"dev": "tsc --build --watch",
|
|
39
|
+
"prepublishOnly": "pnpm run build"
|
|
40
|
+
},
|
|
33
41
|
"dependencies": {
|
|
34
42
|
"@modelcontextprotocol/sdk": "^1.12.0",
|
|
35
|
-
"@panguard-ai/core": "^1.3.
|
|
43
|
+
"@panguard-ai/core": "^1.3.2",
|
|
36
44
|
"@panguard-ai/panguard-scan": "^1.3.0",
|
|
37
45
|
"@panguard-ai/panguard-guard": "^1.4.2",
|
|
38
46
|
"@panguard-ai/panguard-skill-auditor": "^1.4.1"
|
|
@@ -40,12 +48,5 @@
|
|
|
40
48
|
"devDependencies": {
|
|
41
49
|
"@types/node": "^22.14.0",
|
|
42
50
|
"typescript": "~5.7.3"
|
|
43
|
-
},
|
|
44
|
-
"scripts": {
|
|
45
|
-
"build": "tsc --build",
|
|
46
|
-
"clean": "rm -rf dist tsconfig.tsbuildinfo",
|
|
47
|
-
"typecheck": "tsc --noEmit",
|
|
48
|
-
"test": "vitest run",
|
|
49
|
-
"dev": "tsc --build --watch"
|
|
50
51
|
}
|
|
51
|
-
}
|
|
52
|
+
}
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025-2026 Panguard AI Team
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|