vigile-scan 0.1.2 → 0.2.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 +180 -0
- package/dist/index.js +1140 -10
- package/dist/index.js.map +1 -1
- package/package.json +8 -4
package/README.md
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# vigile-scan
|
|
2
|
+
|
|
3
|
+
> The security scanner for AI agent tools. Detect tool poisoning, credential theft, and supply chain attacks in MCP servers and agent skills — before they reach your machine.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/vigile-scan)
|
|
6
|
+
[](https://opensource.org/licenses/Apache-2.0)
|
|
7
|
+
|
|
8
|
+
## Quick Start
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
npx vigile-scan
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
That's it. No install, no config. Vigile discovers your MCP server configurations and agent skill files, scans them against 46 detection patterns, and gives you a trust score for each one.
|
|
15
|
+
|
|
16
|
+
## What It Detects
|
|
17
|
+
|
|
18
|
+
### MCP Server Threats (19 patterns)
|
|
19
|
+
|
|
20
|
+
| ID | Category | What It Catches |
|
|
21
|
+
|----|----------|-----------------|
|
|
22
|
+
| TP-001–005 | Tool Poisoning | Hidden instructions in tool descriptions, cross-tool manipulation, schema deception |
|
|
23
|
+
| PE-001–004 | Permission & Escalation | Excessive filesystem/network access, privilege escalation, security bypass flags |
|
|
24
|
+
| OB-001–002 | Obfuscation | Base64-encoded payloads, character encoding tricks |
|
|
25
|
+
| DA-001–004 | Data & Access | Environment variable exposure, credential patterns, data exfiltration URLs |
|
|
26
|
+
| — | Supply Chain | Typosquatting detection, known malicious packages, auto-install without confirmation |
|
|
27
|
+
|
|
28
|
+
### Agent Skill Threats (27 patterns)
|
|
29
|
+
|
|
30
|
+
| ID | Category | What It Catches |
|
|
31
|
+
|----|----------|-----------------|
|
|
32
|
+
| SK-001–005 | Instruction Injection | Hidden instructions, prompt override, role manipulation, context poisoning |
|
|
33
|
+
| SK-006–010 | Data Exfiltration | Credential harvesting, file theft, clipboard spying, keylogging instructions |
|
|
34
|
+
| SK-011–014 | Malware Delivery | Encoded payloads piped to shell, fake prerequisites, persistence mechanisms |
|
|
35
|
+
| SK-015–018 | Privilege Abuse | Force flags, sudo escalation, security tool disabling, anti-forensics |
|
|
36
|
+
| SK-019–022 | Social Engineering | Fake error messages, urgency/fear tactics, impersonation, deceptive naming |
|
|
37
|
+
| SK-023–027 | Cross-Skill Attacks | Skill file tampering, scope creep, resource abuse, shadow dependencies |
|
|
38
|
+
|
|
39
|
+
## Platforms
|
|
40
|
+
|
|
41
|
+
Vigile auto-discovers configurations from:
|
|
42
|
+
|
|
43
|
+
- **Claude Desktop** — `claude_desktop_config.json`
|
|
44
|
+
- **Claude Code** — `CLAUDE.md`, `.claude/` skill files
|
|
45
|
+
- **Cursor** — `.cursor/rules/*.mdc`, `.cursorrules`
|
|
46
|
+
- **GitHub Copilot** — `.github/copilot/**/*.md`
|
|
47
|
+
- **Windsurf** — `windsurf.json`
|
|
48
|
+
- **VS Code** — MCP config in settings
|
|
49
|
+
|
|
50
|
+
## Usage
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
vigile-scan [options]
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Scan Options
|
|
57
|
+
|
|
58
|
+
| Flag | Description |
|
|
59
|
+
|------|-------------|
|
|
60
|
+
| (no flags) | Scan all MCP servers on this machine |
|
|
61
|
+
| `-s, --skills` | Scan agent skills only (SKILL.md, .mdc rules, CLAUDE.md) |
|
|
62
|
+
| `-a, --all` | Scan both MCP servers and agent skills |
|
|
63
|
+
| `-j, --json` | Output results as JSON (for CI/CD pipelines) |
|
|
64
|
+
| `-v, --verbose` | Show detailed findings and score breakdown |
|
|
65
|
+
| `-c, --config <path>` | Path to a custom MCP config file |
|
|
66
|
+
| `-o, --output <path>` | Write results to a file |
|
|
67
|
+
| `--client <name>` | Only scan a specific client (claude-desktop, cursor, claude-code, windsurf, vscode) |
|
|
68
|
+
| `--no-upload` | Skip uploading scan results to Vigile API |
|
|
69
|
+
|
|
70
|
+
### Sentinel Runtime Monitoring (Pro)
|
|
71
|
+
|
|
72
|
+
| Flag | Description |
|
|
73
|
+
|------|-------------|
|
|
74
|
+
| `--sentinel` | Enable runtime phone-home detection |
|
|
75
|
+
| `--sentinel-server <name>` | Monitor a specific MCP server by name |
|
|
76
|
+
| `--sentinel-duration <sec>` | Monitoring duration in seconds (default: 120) |
|
|
77
|
+
|
|
78
|
+
### Authentication
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# Authenticate with your API key (get one at https://vigile.dev/account)
|
|
82
|
+
vigile-scan auth login <vgl_your_api_key>
|
|
83
|
+
|
|
84
|
+
# Check auth status
|
|
85
|
+
vigile-scan auth status
|
|
86
|
+
|
|
87
|
+
# Log out
|
|
88
|
+
vigile-scan auth logout
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
You can also set `VIGILE_TOKEN` as an environment variable for CI/CD.
|
|
92
|
+
|
|
93
|
+
## Examples
|
|
94
|
+
|
|
95
|
+
### Scan everything
|
|
96
|
+
```bash
|
|
97
|
+
npx vigile-scan --all
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### JSON output for CI/CD
|
|
101
|
+
```bash
|
|
102
|
+
npx vigile-scan --json --all > vigile-report.json
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Scan a specific client
|
|
106
|
+
```bash
|
|
107
|
+
npx vigile-scan --client cursor
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Verbose output with score breakdown
|
|
111
|
+
```bash
|
|
112
|
+
npx vigile-scan --all --verbose
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### GitHub Actions
|
|
116
|
+
|
|
117
|
+
```yaml
|
|
118
|
+
- name: Vigile Security Scan
|
|
119
|
+
run: npx vigile-scan --all --json -o vigile-report.json
|
|
120
|
+
env:
|
|
121
|
+
VIGILE_TOKEN: ${{ secrets.VIGILE_TOKEN }}
|
|
122
|
+
|
|
123
|
+
- name: Fail on critical findings
|
|
124
|
+
run: |
|
|
125
|
+
critical=$(jq '.bySeverity.critical' vigile-report.json)
|
|
126
|
+
if [ "$critical" -gt 0 ]; then exit 1; fi
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Trust Scores
|
|
130
|
+
|
|
131
|
+
Every scanned item gets a trust score from 0–100:
|
|
132
|
+
|
|
133
|
+
| Score | Level | Meaning |
|
|
134
|
+
|-------|-------|---------|
|
|
135
|
+
| 80–100 | Trusted | No significant issues found |
|
|
136
|
+
| 60–79 | Caution | Minor issues — review recommended |
|
|
137
|
+
| 40–59 | Risky | Significant issues — investigate before using |
|
|
138
|
+
| 0–39 | Dangerous | Critical issues — do not install |
|
|
139
|
+
|
|
140
|
+
The score is a weighted composite of five factors: code analysis, dependency health, permission safety, behavioral stability, and transparency.
|
|
141
|
+
|
|
142
|
+
## Exit Codes
|
|
143
|
+
|
|
144
|
+
| Code | Meaning |
|
|
145
|
+
|------|---------|
|
|
146
|
+
| 0 | Scan complete, no critical or high findings |
|
|
147
|
+
| 1 | Critical or high severity findings detected |
|
|
148
|
+
|
|
149
|
+
This makes `vigile-scan` work natively in CI/CD pipelines — a non-zero exit fails the build.
|
|
150
|
+
|
|
151
|
+
## Sentinel: Runtime Monitoring
|
|
152
|
+
|
|
153
|
+
Static scanning catches what's in the code. Sentinel catches what the code actually does on the wire.
|
|
154
|
+
|
|
155
|
+
When you run `--sentinel`, Vigile intercepts outbound network traffic from your MCP servers and flags:
|
|
156
|
+
|
|
157
|
+
- **C2 beaconing** — periodic callbacks to unknown servers
|
|
158
|
+
- **Credential theft** — API keys, tokens, or secrets sent over the network
|
|
159
|
+
- **DNS tunneling** — data exfiltration hidden in DNS queries
|
|
160
|
+
- **Unexpected destinations** — connections to IPs/domains outside the expected set
|
|
161
|
+
|
|
162
|
+
Sentinel is available on Pro ($9.99/mo) and Pro+ ($29.99/mo) plans. Free users can run static scans with no limits.
|
|
163
|
+
|
|
164
|
+
## Pricing
|
|
165
|
+
|
|
166
|
+
| Tier | Price | Highlights |
|
|
167
|
+
|------|-------|------------|
|
|
168
|
+
| Free | $0/forever | Unlimited CLI scans, 50 API scans/month, registry browsing |
|
|
169
|
+
| Pro | $9.99/mo | Sentinel monitoring (5 min, 3 servers), 1,000 API scans |
|
|
170
|
+
| Pro+ | $29.99/mo | Sentinel (30 min, 10 servers), DNS tunneling & C2 detection, alerts |
|
|
171
|
+
|
|
172
|
+
## Links
|
|
173
|
+
|
|
174
|
+
- **Web Scanner & Registry** — [vigile.dev](https://vigile.dev)
|
|
175
|
+
- **GitHub** — [github.com/Vigile-ai/vigile-cli](https://github.com/Vigile-ai/vigile-cli)
|
|
176
|
+
- **Report Issues** — [github.com/Vigile-ai/vigile-cli/issues](https://github.com/Vigile-ai/vigile-cli/issues)
|
|
177
|
+
|
|
178
|
+
## License
|
|
179
|
+
|
|
180
|
+
Apache-2.0
|