agent-security-scanner-mcp 4.0.0 → 4.0.1

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 CHANGED
@@ -2,20 +2,18 @@
2
2
 
3
3
  <img src="./prooflayer-logo.png" alt="ProofLayer Logo" width="400"/>
4
4
 
5
- # prooflayer-agent-security
5
+ # agent-security-scanner-mcp
6
6
 
7
7
  **Security scanner for AI coding agents and autonomous assistants**
8
8
 
9
9
  Scans code for vulnerabilities, detects hallucinated packages, blocks prompt injection, and provides LLM-powered semantic code review — via MCP (Claude Code, Cursor, Windsurf, Cline) or CLI (OpenClaw, CI/CD).
10
10
 
11
- [![npm downloads](https://img.shields.io/npm/dt/prooflayer-agent-security.svg)](https://www.npmjs.com/package/prooflayer-agent-security)
12
- [![npm version](https://img.shields.io/npm/v/prooflayer-agent-security.svg)](https://www.npmjs.com/package/prooflayer-agent-security)
11
+ [![npm downloads](https://img.shields.io/npm/dt/agent-security-scanner-mcp.svg)](https://www.npmjs.com/package/agent-security-scanner-mcp)
12
+ [![npm version](https://img.shields.io/npm/v/agent-security-scanner-mcp.svg)](https://www.npmjs.com/package/agent-security-scanner-mcp)
13
13
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
14
14
  [![Benchmark: 97.7% precision](https://img.shields.io/badge/precision-97.7%25-brightgreen.svg)](benchmarks/RESULTS.md)
15
15
  [![CI](https://github.com/sinewaveai/agent-security-scanner-mcp/actions/workflows/test.yml/badge.svg)](https://github.com/sinewaveai/agent-security-scanner-mcp/actions/workflows/test.yml)
16
16
 
17
- > **Package renamed:** Previously `agent-security-scanner-mcp`. The old name still works for backwards compatibility.
18
-
19
17
  </div>
20
18
 
21
19
  ---
@@ -47,10 +45,10 @@ npm install -g @prooflayer/security-scanner
47
45
  ### 🔬 Full Version (Advanced)
48
46
  **Enterprise-grade scanner** with AST analysis, taint tracking, cross-file analysis, and LLM-powered semantic review
49
47
 
50
- [![npm](https://img.shields.io/npm/v/prooflayer-agent-security.svg)](https://www.npmjs.com/package/prooflayer-agent-security)
48
+ [![npm](https://img.shields.io/npm/v/agent-security-scanner-mcp.svg)](https://www.npmjs.com/package/agent-security-scanner-mcp)
51
49
 
52
50
  ```bash
53
- npm install -g prooflayer-agent-security
51
+ npm install -g agent-security-scanner-mcp
54
52
  ```
55
53
 
56
54
  - 🧬 **AST + Taint Analysis** - deep code understanding
@@ -65,6 +63,8 @@ Continue reading below for full version documentation →
65
63
 
66
64
  ---
67
65
 
66
+ > **New in v4.0.0:** LLM-powered semantic code review agent with intent profiling — understands what your project is supposed to do and flags patterns that violate that intent. Same `eval()` call = safe in a build tool, dangerous in an e-commerce app. Supports Claude CLI (no API key needed!), Anthropic, and OpenAI. [See code-review-agent](#-llm-powered-code-review-agent-new-in-v400).
67
+ >
68
68
  > **New in v3.11.0:** ClawHub ecosystem security scanning — scanned all 16,532 ClawHub skills and found 46% have critical vulnerabilities. New `scan-clawhub` CLI for batch scanning, 40+ prompt injection patterns, jailbreak detection (DAN mode, dev mode), data exfiltration checks. [See ClawHub Security Dashboard](https://www.proof-layer.com/dashboard).
69
69
  >
70
70
  > **Also in v3.10.0:** ClawProof OpenClaw plugin — 6-layer deep skill scanner (`scan_skill`) with ClawHavoc malware signatures (27 rules, 121 patterns covering reverse shells, crypto miners, info stealers, C2 beacons, and OpenClaw-specific attacks), package supply chain verification, and rug pull detection.
@@ -91,14 +91,12 @@ Continue reading below for full version documentation →
91
91
  ## Quick Start
92
92
 
93
93
  ```bash
94
- npx prooflayer-agent-security init claude-code
94
+ npx agent-security-scanner-mcp init claude-code
95
95
  ```
96
96
 
97
97
  Restart your client after running init. That's it — the scanner is active.
98
98
 
99
99
  > **Other clients:** Replace `claude-code` with `cursor`, `claude-desktop`, `windsurf`, `cline`, `kilo-code`, `opencode`, or `cody`. Run with no argument for interactive client selection.
100
- >
101
- > **Note:** `npx agent-security-scanner-mcp` still works for backwards compatibility.
102
100
 
103
101
  ## Recommended Workflows
104
102
 
@@ -189,19 +187,20 @@ Same code, different verdicts based on what the project is supposed to do:
189
187
 
190
188
  ### Quick Start
191
189
 
190
+ After installing `agent-security-scanner-mcp`, the `cr-agent` CLI is automatically available:
191
+
192
192
  ```bash
193
- cd code-review-agent
194
- npm install
195
- npm run build
193
+ # Install the package (cr-agent is included)
194
+ npm install -g agent-security-scanner-mcp
196
195
 
197
196
  # Analyze a project (no API key needed with claude-cli!)
198
- npx tsx bin/cr-agent.ts analyze ../path/to/project -p claude-cli -v
197
+ npx cr-agent analyze ./path/to/project -p claude-cli --verbose
199
198
 
200
199
  # View intent profile only
201
- npx tsx bin/cr-agent.ts intent ../path/to/project -p claude-cli
200
+ npx cr-agent intent ./path/to/project -p claude-cli
202
201
 
203
202
  # Output as SARIF for GitHub Code Scanning
204
- npx tsx bin/cr-agent.ts analyze ../path/to/project -f sarif
203
+ npx cr-agent analyze ./path/to/project -f sarif -p claude-cli
205
204
  ```
206
205
 
207
206
  ### LLM Providers
@@ -843,17 +842,15 @@ Scan an entire project or directory for security vulnerabilities with aggregated
843
842
  ### Install
844
843
 
845
844
  ```bash
846
- npm install -g prooflayer-agent-security
845
+ npm install -g agent-security-scanner-mcp
847
846
  ```
848
847
 
849
848
  Or use directly with `npx` — no install required:
850
849
 
851
850
  ```bash
852
- npx prooflayer-agent-security
851
+ npx agent-security-scanner-mcp
853
852
  ```
854
853
 
855
- > **Backwards compatibility:** The old package name `agent-security-scanner-mcp` continues to work.
856
-
857
854
  ### Prerequisites
858
855
 
859
856
  - **Node.js >= 18.0.0** (required)
@@ -865,16 +862,16 @@ npx prooflayer-agent-security
865
862
 
866
863
  | Client | Command |
867
864
  |--------|---------|
868
- | Claude Code | `npx prooflayer-agent-security init claude-code` |
869
- | Claude Desktop | `npx prooflayer-agent-security init claude-desktop` |
870
- | Cursor | `npx prooflayer-agent-security init cursor` |
871
- | Windsurf | `npx prooflayer-agent-security init windsurf` |
872
- | Cline | `npx prooflayer-agent-security init cline` |
873
- | Kilo Code | `npx prooflayer-agent-security init kilo-code` |
874
- | OpenCode | `npx prooflayer-agent-security init opencode` |
875
- | Cody | `npx prooflayer-agent-security init cody` |
876
- | **OpenClaw** | `npx prooflayer-agent-security init openclaw` |
877
- | Interactive | `npx prooflayer-agent-security init` |
865
+ | Claude Code | `npx agent-security-scanner-mcp init claude-code` |
866
+ | Claude Desktop | `npx agent-security-scanner-mcp init claude-desktop` |
867
+ | Cursor | `npx agent-security-scanner-mcp init cursor` |
868
+ | Windsurf | `npx agent-security-scanner-mcp init windsurf` |
869
+ | Cline | `npx agent-security-scanner-mcp init cline` |
870
+ | Kilo Code | `npx agent-security-scanner-mcp init kilo-code` |
871
+ | OpenCode | `npx agent-security-scanner-mcp init opencode` |
872
+ | Cody | `npx agent-security-scanner-mcp init cody` |
873
+ | **OpenClaw** | `npx agent-security-scanner-mcp init openclaw` |
874
+ | Interactive | `npx agent-security-scanner-mcp init` |
878
875
 
879
876
  The `init` command auto-detects your OS, locates the config file, creates a backup, and adds the MCP server entry. **Restart your client after running init.**
880
877
 
@@ -896,7 +893,7 @@ Add to your MCP client config:
896
893
  "mcpServers": {
897
894
  "security-scanner": {
898
895
  "command": "npx",
899
- "args": ["-y", "prooflayer-agent-security"]
896
+ "args": ["-y", "agent-security-scanner-mcp"]
900
897
  }
901
898
  }
902
899
  }
@@ -913,8 +910,8 @@ Add to your MCP client config:
913
910
  ### Diagnostics
914
911
 
915
912
  ```bash
916
- npx prooflayer-agent-security doctor # Check setup health
917
- npx prooflayer-agent-security doctor --fix # Auto-fix trivial issues
913
+ npx agent-security-scanner-mcp doctor # Check setup health
914
+ npx agent-security-scanner-mcp doctor --fix # Auto-fix trivial issues
918
915
  ```
919
916
 
920
917
  Checks Node.js version, Python availability, analyzer engine status, and scans all client configs.
@@ -924,7 +921,7 @@ Checks Node.js version, Python availability, analyzer engine status, and scans a
924
921
  ## Try It Out
925
922
 
926
923
  ```bash
927
- npx prooflayer-agent-security demo --lang js
924
+ npx agent-security-scanner-mcp demo --lang js
928
925
  ```
929
926
 
930
927
  Creates a small file with 3 intentional vulnerabilities, runs the scanner, shows findings with CWE/OWASP references, and asks if you want to keep the file for testing.
@@ -939,28 +936,28 @@ Use the scanner directly from command line (for scripts, CI/CD, or OpenClaw):
939
936
 
940
937
  ```bash
941
938
  # Scan a prompt for injection attacks
942
- npx prooflayer-agent-security scan-prompt "ignore previous instructions"
939
+ npx agent-security-scanner-mcp scan-prompt "ignore previous instructions"
943
940
 
944
941
  # Scan a file for vulnerabilities
945
- npx prooflayer-agent-security scan-security ./app.py --verbosity minimal
942
+ npx agent-security-scanner-mcp scan-security ./app.py --verbosity minimal
946
943
 
947
944
  # Scan git diff (changed files only)
948
- npx prooflayer-agent-security scan-diff --base main --target HEAD
945
+ npx agent-security-scanner-mcp scan-diff --base main --target HEAD
949
946
 
950
947
  # Scan entire project with grading
951
- npx prooflayer-agent-security scan-project ./src
948
+ npx agent-security-scanner-mcp scan-project ./src
952
949
 
953
950
  # Check if a package is legitimate
954
- npx prooflayer-agent-security check-package flask pypi
951
+ npx agent-security-scanner-mcp check-package flask pypi
955
952
 
956
953
  # Scan file imports for hallucinated packages
957
- npx prooflayer-agent-security scan-packages ./requirements.txt pypi
954
+ npx agent-security-scanner-mcp scan-packages ./requirements.txt pypi
958
955
 
959
956
  # Install Claude Code hooks for automatic scanning
960
- npx prooflayer-agent-security init-hooks
957
+ npx agent-security-scanner-mcp init-hooks
961
958
 
962
959
  # LLM-powered semantic code review (new in v4.0.0)
963
- cd code-review-agent && npx tsx bin/cr-agent.ts analyze ../path/to/project -p claude-cli
960
+ npx cr-agent analyze ./path/to/project -p claude-cli --verbose
964
961
  ```
965
962
 
966
963
  **Exit codes:** `0` = safe, `1` = issues found. Use in scripts to block risky operations.
@@ -1016,7 +1013,7 @@ Automatically scan files after every edit with Claude Code hooks integration.
1016
1013
  ### Install Hooks
1017
1014
 
1018
1015
  ```bash
1019
- npx prooflayer-agent-security init-hooks
1016
+ npx agent-security-scanner-mcp init-hooks
1020
1017
  ```
1021
1018
 
1022
1019
  This installs a `post-tool-use` hook that triggers security scanning after `Write`, `Edit`, or `MultiEdit` operations.
@@ -1024,7 +1021,7 @@ This installs a `post-tool-use` hook that triggers security scanning after `Writ
1024
1021
  ### With Prompt Guard
1025
1022
 
1026
1023
  ```bash
1027
- npx prooflayer-agent-security init-hooks --with-prompt-guard
1024
+ npx agent-security-scanner-mcp init-hooks --with-prompt-guard
1028
1025
  ```
1029
1026
 
1030
1027
  Adds a `PreToolUse` hook that scans prompts for injection attacks before executing tools.
@@ -1039,7 +1036,7 @@ The command adds hooks to `~/.claude/settings.json`:
1039
1036
  "post-tool-use": [
1040
1037
  {
1041
1038
  "matcher": "Write|Edit|MultiEdit",
1042
- "command": "npx prooflayer-agent-security scan-security \"$TOOL_INPUT_file_path\" --verbosity minimal"
1039
+ "command": "npx agent-security-scanner-mcp scan-security \"$TOOL_INPUT_file_path\" --verbosity minimal"
1043
1040
  }
1044
1041
  ]
1045
1042
  }
@@ -1061,7 +1058,7 @@ The command adds hooks to `~/.claude/settings.json`:
1061
1058
  ### Install
1062
1059
 
1063
1060
  ```bash
1064
- npx prooflayer-agent-security init openclaw
1061
+ npx agent-security-scanner-mcp init openclaw
1065
1062
  ```
1066
1063
 
1067
1064
  This installs a skill to `~/.openclaw/workspace/skills/security-scanner/`.
@@ -1160,7 +1157,7 @@ AI coding agents introduce attack surfaces that traditional security tools weren
1160
1157
  | Property | Value |
1161
1158
  |----------|-------|
1162
1159
  | **Transport** | stdio |
1163
- | **Package** | `prooflayer-agent-security` (npm) |
1160
+ | **Package** | `agent-security-scanner-mcp` (npm) |
1164
1161
  | **Tools** | 12 |
1165
1162
  | **Languages** | 12 |
1166
1163
  | **Ecosystems** | 7 |
@@ -1243,11 +1240,10 @@ All MCP tools support a `verbosity` parameter to minimize context window consump
1243
1240
 
1244
1241
  ## Changelog
1245
1242
 
1246
- ### v4.0.0 (2026-03-20) - LLM-Powered Code Review & Rename
1243
+ ### v4.0.0 (2026-03-21) - LLM-Powered Code Review Agent
1247
1244
 
1248
- **🚀 Major Release: Package renamed to `prooflayer-agent-security`**
1245
+ **🚀 Major Release: LLM-Powered Semantic Code Review**
1249
1246
 
1250
- - **Package Rename:** `agent-security-scanner-mcp` → `prooflayer-agent-security` (old name still works for backwards compatibility)
1251
1247
  - **LLM-Powered Code Review Agent:** New `code-review-agent/` module for semantic security analysis
1252
1248
  - **Intent Profiling:** Understands project purpose to reduce false positives
1253
1249
  - **3 LLM Providers:** Anthropic, OpenAI, Claude CLI (no API key needed!)
@@ -1367,20 +1363,13 @@ All MCP tools support a `verbosity` parameter to minimize context window consump
1367
1363
  ### Default Package
1368
1364
 
1369
1365
  ```bash
1370
- npm install -g prooflayer-agent-security
1366
+ npm install -g agent-security-scanner-mcp
1371
1367
  ```
1372
1368
 
1373
1369
  Includes:
1374
1370
  - **All 7 ecosystems** — npm, PyPI, RubyGems, crates.io, pub.dev, CPAN, raku.land (4.3M+ packages total)
1375
1371
  - **LLM-powered code review agent** — semantic security analysis with intent profiling
1376
1372
 
1377
- ### Legacy Package Name
1378
-
1379
- The old package name continues to work for backwards compatibility:
1380
-
1381
- ```bash
1382
- npm install -g agent-security-scanner-mcp
1383
- ```
1384
1373
 
1385
1374
  ---
1386
1375
 
@@ -134,7 +134,7 @@ Stop analysis when estimated cost reaches a configurable threshold (e.g., `--max
134
134
 
135
135
  ### MCP server integration
136
136
 
137
- Expose cr-agent as an MCP tool in the parent prooflayer-agent-security server, so AI coding assistants can invoke semantic code review alongside the existing rules-based scanner.
137
+ Expose cr-agent as an MCP tool in the parent agent-security-scanner-mcp server, so AI coding assistants can invoke semantic code review alongside the existing rules-based scanner.
138
138
 
139
139
  ### SARIF upload
140
140
 
@@ -251,7 +251,7 @@ function toSarif(result) {
251
251
  driver: {
252
252
  name: 'cr-agent',
253
253
  version: '0.1.0',
254
- informationUri: 'https://github.com/anthropics/agent-security-scanner-mcp',
254
+ informationUri: 'https://github.com/sinewaveai/agent-security-scanner-mcp',
255
255
  rules: result.findings.map((f, i) => ({
256
256
  id: `CR${String(i + 1).padStart(3, '0')}`,
257
257
  name: f.title.replace(/\s+/g, ''),
@@ -1 +1 @@
1
- {"version":3,"file":"claude-cli.d.ts","sourceRoot":"","sources":["../../../src/llm/claude-cli.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAyB,MAAM,eAAe,CAAC;AAe1F,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,gBAAgB;gBAEzB,KAAK,CAAC,EAAE,MAAM;IAIpB,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9C,cAAc,CAAC,CAAC,EACpB,QAAQ,EAAE,WAAW,EAAE,EACvB,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC;IAoDb,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAKjC,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,SAAS;CAyDlB"}
1
+ {"version":3,"file":"claude-cli.d.ts","sourceRoot":"","sources":["../../../src/llm/claude-cli.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAyB,MAAM,eAAe,CAAC;AAe1F,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,gBAAgB;gBAEzB,KAAK,CAAC,EAAE,MAAM;IAIpB,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9C,cAAc,CAAC,CAAC,EACpB,QAAQ,EAAE,WAAW,EAAE,EACvB,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC;IAoDb,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAKjC,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,SAAS;CAwDlB"}
@@ -72,10 +72,9 @@ export class ClaudeCliProvider {
72
72
  runClaude(prompt) {
73
73
  return new Promise((resolve, reject) => {
74
74
  const args = [
75
- '-p', '-',
75
+ '-p',
76
76
  '--output-format', 'json',
77
77
  '--model', this.modelId,
78
- '--no-session-persistence',
79
78
  ];
80
79
  const child = spawn('claude', args, {
81
80
  stdio: ['pipe', 'pipe', 'pipe'],
@@ -1 +1 @@
1
- {"version":3,"file":"claude-cli.js","sourceRoot":"","sources":["../../../src/llm/claude-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-cli.js","sourceRoot":"","sources":["../../../src/llm/claude-cli.ts"],"names":[],"mappings":"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"}
@@ -108,10 +108,9 @@ export class ClaudeCliProvider implements LLMProvider {
108
108
  private runClaude(prompt: string): Promise<string> {
109
109
  return new Promise((resolve, reject) => {
110
110
  const args = [
111
- '-p', '-',
111
+ '-p',
112
112
  '--output-format', 'json',
113
113
  '--model', this.modelId,
114
- '--no-session-persistence',
115
114
  ];
116
115
 
117
116
  const child = spawn('claude', args, {
package/index.js CHANGED
@@ -47,7 +47,7 @@ try {
47
47
  // Create MCP Server
48
48
  const server = new McpServer(
49
49
  {
50
- name: "prooflayer-agent-security",
50
+ name: "agent-security-scanner-mcp",
51
51
  version: _pkgVersion,
52
52
  },
53
53
  {
@@ -306,7 +306,7 @@ const cliArgs = process.argv.slice(2);
306
306
  // CLI mode: scan-prompt <text> [--verbosity minimal|compact|full]
307
307
  const text = cliArgs[1];
308
308
  if (!text) {
309
- console.error('Usage: prooflayer-agent-security scan-prompt <text> [--verbosity minimal|compact|full]');
309
+ console.error('Usage: agent-security-scanner-mcp scan-prompt <text> [--verbosity minimal|compact|full]');
310
310
  process.exit(1);
311
311
  }
312
312
  const verbosityIdx = cliArgs.indexOf('--verbosity');
@@ -326,7 +326,7 @@ const cliArgs = process.argv.slice(2);
326
326
  // CLI mode: scan-security <file> [--verbosity minimal|compact|full] [--format json|sarif]
327
327
  const filePath = cliArgs[1];
328
328
  if (!filePath) {
329
- console.error('Usage: prooflayer-agent-security scan-security <file> [--verbosity minimal|compact|full] [--format json|sarif]');
329
+ console.error('Usage: agent-security-scanner-mcp scan-security <file> [--verbosity minimal|compact|full] [--format json|sarif]');
330
330
  process.exit(1);
331
331
  }
332
332
  const verbosityIdx = cliArgs.indexOf('--verbosity');
@@ -348,7 +348,7 @@ const cliArgs = process.argv.slice(2);
348
348
  const packageName = cliArgs[1];
349
349
  const ecosystem = cliArgs[2];
350
350
  if (!packageName || !ecosystem) {
351
- console.error('Usage: prooflayer-agent-security check-package <name> <ecosystem>');
351
+ console.error('Usage: agent-security-scanner-mcp check-package <name> <ecosystem>');
352
352
  console.error('Ecosystems: npm, pypi, rubygems, crates, dart, perl, raku');
353
353
  process.exit(1);
354
354
  }
@@ -367,7 +367,7 @@ const cliArgs = process.argv.slice(2);
367
367
  const filePath = cliArgs[1];
368
368
  const ecosystem = cliArgs[2];
369
369
  if (!filePath || !ecosystem) {
370
- console.error('Usage: prooflayer-agent-security scan-packages <file> <ecosystem> [--verbosity minimal|compact|full]');
370
+ console.error('Usage: agent-security-scanner-mcp scan-packages <file> <ecosystem> [--verbosity minimal|compact|full]');
371
371
  console.error('Ecosystems: npm, pypi, rubygems, crates, dart, perl, raku');
372
372
  process.exit(1);
373
373
  }
@@ -387,7 +387,7 @@ const cliArgs = process.argv.slice(2);
387
387
  // CLI mode: scan-project <dir> [--recursive] [--diff-only] [--cross-file] [--include '*.py'] [--exclude '*.test.js'] [--verbosity minimal|compact|full]
388
388
  const dirPath = cliArgs[1];
389
389
  if (!dirPath || dirPath.startsWith('--')) {
390
- console.error('Usage: prooflayer-agent-security scan-project <directory> [--recursive] [--diff-only] [--cross-file] [--include <pattern>] [--exclude <pattern>] [--verbosity minimal|compact|full]');
390
+ console.error('Usage: agent-security-scanner-mcp scan-project <directory> [--recursive] [--diff-only] [--cross-file] [--include <pattern>] [--exclude <pattern>] [--verbosity minimal|compact|full]');
391
391
  process.exit(1);
392
392
  }
393
393
  const verbosityIdx = cliArgs.indexOf('--verbosity');
@@ -455,7 +455,7 @@ const cliArgs = process.argv.slice(2);
455
455
  // CLI mode: scan-mcp <path> [--verbosity minimal|compact|full]
456
456
  const serverPath = cliArgs[1];
457
457
  if (!serverPath) {
458
- console.error('Usage: prooflayer-agent-security scan-mcp <server-path> [--verbosity minimal|compact|full]');
458
+ console.error('Usage: agent-security-scanner-mcp scan-mcp <server-path> [--verbosity minimal|compact|full]');
459
459
  process.exit(1);
460
460
  }
461
461
  const verbosityIdx = cliArgs.indexOf('--verbosity');
@@ -474,7 +474,7 @@ const cliArgs = process.argv.slice(2);
474
474
  const actionType = cliArgs[1];
475
475
  const actionValue = cliArgs[2];
476
476
  if (!actionType || !actionValue) {
477
- console.error('Usage: prooflayer-agent-security scan-action <type> <value> [--verbosity minimal|compact|full]');
477
+ console.error('Usage: agent-security-scanner-mcp scan-action <type> <value> [--verbosity minimal|compact|full]');
478
478
  console.error('Types: bash, file_write, file_read, http_request, file_delete, cron, process_spawn, git, docker');
479
479
  process.exit(1);
480
480
  }
@@ -492,7 +492,7 @@ const cliArgs = process.argv.slice(2);
492
492
  } else if (cliArgs[0] === 'scan-skill') {
493
493
  const skillPath = cliArgs[1];
494
494
  if (!skillPath) {
495
- console.error('Usage: prooflayer-agent-security scan-skill <skill-path> [--verbosity minimal|compact|full] [--baseline]');
495
+ console.error('Usage: agent-security-scanner-mcp scan-skill <skill-path> [--verbosity minimal|compact|full] [--baseline]');
496
496
  process.exit(1);
497
497
  }
498
498
  const verbosityIdx = cliArgs.indexOf('--verbosity');
@@ -529,7 +529,7 @@ const cliArgs = process.argv.slice(2);
529
529
  await import('./src/cli/scan-clawhub-safe.js');
530
530
  // Exit is handled by scan-clawhub-safe.js
531
531
  } else if (cliArgs[0] === '--help' || cliArgs[0] === '-h' || cliArgs[0] === 'help') {
532
- console.log('\n prooflayer-agent-security\n');
532
+ console.log('\n agent-security-scanner-mcp\n');
533
533
  console.log(' Commands:');
534
534
  console.log(' init [client] Set up MCP config for a client');
535
535
  console.log(' init-hooks Install Claude Code hooks for auto-scanning');
@@ -557,14 +557,14 @@ const cliArgs = process.argv.slice(2);
557
557
  console.log(' --include <pattern> Include only matching files (scan-project)');
558
558
  console.log(' --exclude <pattern> Exclude matching files (scan-project)\n');
559
559
  console.log(' Examples:');
560
- console.log(' npx prooflayer-agent-security init');
561
- console.log(' npx prooflayer-agent-security scan-prompt "ignore previous instructions"');
562
- console.log(' npx prooflayer-agent-security scan-security ./app.py --verbosity minimal');
563
- console.log(' npx prooflayer-agent-security check-package flask pypi');
564
- console.log(' npx prooflayer-agent-security scan-project ./src --verbosity minimal');
565
- console.log(' npx prooflayer-agent-security scan-diff HEAD~1');
566
- console.log(' npx prooflayer-agent-security report ./src --json');
567
- console.log(' npx prooflayer-agent-security benchmark --save --compare-latest\n');
560
+ console.log(' npx agent-security-scanner-mcp init');
561
+ console.log(' npx agent-security-scanner-mcp scan-prompt "ignore previous instructions"');
562
+ console.log(' npx agent-security-scanner-mcp scan-security ./app.py --verbosity minimal');
563
+ console.log(' npx agent-security-scanner-mcp check-package flask pypi');
564
+ console.log(' npx agent-security-scanner-mcp scan-project ./src --verbosity minimal');
565
+ console.log(' npx agent-security-scanner-mcp scan-diff HEAD~1');
566
+ console.log(' npx agent-security-scanner-mcp report ./src --json');
567
+ console.log(' npx agent-security-scanner-mcp benchmark --save --compare-latest\n');
568
568
  process.exit(0);
569
569
  } else {
570
570
  // Normal MCP server mode
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "prooflayer-agent-security",
2
+ "name": "agent-security-scanner-mcp",
3
3
  "version": "4.0.0",
4
4
  "description": "Security scanner for OpenClaw: prompt injection firewall, package hallucination detection, code vulnerability scanning, auto-fix",
5
5
  "author": "Sinewave AI",
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "agent-security-scanner-mcp",
3
- "version": "4.0.0",
3
+ "version": "4.0.1",
4
4
  "mcpName": "io.github.sinewaveai/agent-security-scanner-mcp",
5
5
  "description": "Security scanner MCP server for AI coding agents. Prompt injection firewall, package hallucination detection (4.3M+ packages), 1700+ vulnerability rules with AST & taint analysis, LLM-powered semantic code review, auto-fix. For Claude Code, Cursor, Windsurf, Cline, OpenClaw.",
6
6
  "main": "index.js",
7
7
  "type": "module",
8
8
  "bin": {
9
- "agent-security-scanner-mcp": "index.js"
9
+ "agent-security-scanner-mcp": "index.js",
10
+ "cr-agent": "code-review-agent/dist/bin/cr-agent.js"
10
11
  },
11
12
  "scripts": {
12
13
  "start": "node index.js",
@@ -1,14 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * postinstall.js - Attempt to install Python dependencies for tree-sitter AST engine.
4
- * If installation fails, the scanner gracefully falls back to regex-only mode.
3
+ * postinstall.js - Setup script for agent-security-scanner-mcp
4
+ * 1. Install Python dependencies for tree-sitter AST engine (optional)
5
+ * 2. Install and build code-review-agent dependencies (optional)
5
6
  */
6
- import { execFileSync } from "child_process";
7
+ import { execFileSync, execSync } from "child_process";
7
8
  import { join, dirname } from "path";
8
9
  import { fileURLToPath } from "url";
10
+ import { existsSync } from "fs";
9
11
 
10
12
  const __dirname = dirname(fileURLToPath(import.meta.url));
11
- const requirementsPath = join(__dirname, "..", "requirements.txt");
13
+ const rootDir = join(__dirname, "..");
14
+ const requirementsPath = join(rootDir, "requirements.txt");
15
+ const codeReviewAgentDir = join(rootDir, "code-review-agent");
12
16
 
13
17
  // Check if Python 3 is available
14
18
  function findPython() {
@@ -33,6 +37,7 @@ function isTreeSitterInstalled(pythonCmd) {
33
37
  }
34
38
  }
35
39
 
40
+ // Setup Python dependencies
36
41
  const pythonCmd = findPython();
37
42
 
38
43
  if (!pythonCmd) {
@@ -58,3 +63,37 @@ if (!pythonCmd) {
58
63
  );
59
64
  }
60
65
  }
66
+
67
+ // Setup code-review-agent (LLM-powered semantic analysis)
68
+ if (existsSync(codeReviewAgentDir)) {
69
+ const distExists = existsSync(join(codeReviewAgentDir, "dist", "bin", "cr-agent.js"));
70
+
71
+ if (distExists) {
72
+ console.log("[postinstall] code-review-agent already built — cr-agent CLI available.");
73
+ } else {
74
+ console.log("[postinstall] Setting up code-review-agent (LLM-powered code review)...");
75
+ try {
76
+ // Install dependencies
77
+ execSync("npm install --omit=dev", {
78
+ cwd: codeReviewAgentDir,
79
+ timeout: 180000,
80
+ stdio: ["pipe", "pipe", "pipe"]
81
+ });
82
+
83
+ // Build TypeScript
84
+ execSync("npm run build", {
85
+ cwd: codeReviewAgentDir,
86
+ timeout: 60000,
87
+ stdio: ["pipe", "pipe", "pipe"]
88
+ });
89
+
90
+ console.log("[postinstall] code-review-agent installed — run: npx cr-agent --help");
91
+ } catch (err) {
92
+ console.log(
93
+ "[postinstall] Could not set up code-review-agent (optional LLM-powered review).\n" +
94
+ " The main scanner still works. To set up manually:\n" +
95
+ " cd node_modules/agent-security-scanner-mcp/code-review-agent && npm install && npm run build"
96
+ );
97
+ }
98
+ }
99
+ }
package/server.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
- "name": "io.github.sinewaveai/prooflayer-agent-security",
3
+ "name": "io.github.sinewaveai/agent-security-scanner-mcp",
4
4
  "description": "MCP security scanner with prompt injection firewall, package hallucination detection, LLM-powered code review, and auto-fix.",
5
5
  "version": "4.0.0",
6
6
  "transport": "stdio",
@@ -5,14 +5,14 @@
5
5
  import { existsSync, readFileSync, writeFileSync, copyFileSync, mkdirSync } from 'fs';
6
6
  import { join } from 'path';
7
7
 
8
- const SCANNER_HOOK_MARKER = 'prooflayer-agent-security';
8
+ const SCANNER_HOOK_MARKER = 'agent-security-scanner-mcp';
9
9
 
10
10
  function buildHooksConfig(withPromptGuard) {
11
11
  const hooks = {
12
12
  'post-tool-use': [
13
13
  {
14
14
  matcher: 'Write|Edit|MultiEdit',
15
- command: `npx prooflayer-agent-security scan-security "$TOOL_INPUT_FILE_PATH" --verbosity minimal`,
15
+ command: `npx agent-security-scanner-mcp scan-security "$TOOL_INPUT_FILE_PATH" --verbosity minimal`,
16
16
  },
17
17
  ],
18
18
  };
@@ -21,7 +21,7 @@ function buildHooksConfig(withPromptGuard) {
21
21
  hooks['pre-tool-use'] = [
22
22
  {
23
23
  matcher: 'Bash',
24
- command: `npx prooflayer-agent-security scan-prompt "$TOOL_INPUT_COMMAND" --verbosity minimal`,
24
+ command: `npx agent-security-scanner-mcp scan-prompt "$TOOL_INPUT_COMMAND" --verbosity minimal`,
25
25
  },
26
26
  ];
27
27
  }
package/src/cli/init.js CHANGED
@@ -7,7 +7,7 @@ import { createInterface } from "readline";
7
7
 
8
8
  const MCP_SERVER_ENTRY = {
9
9
  command: "npx",
10
- args: ["-y", "prooflayer-agent-security"]
10
+ args: ["-y", "agent-security-scanner-mcp"]
11
11
  };
12
12
 
13
13
  function vscodeBase() {