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 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
+ [![npm version](https://img.shields.io/npm/v/vigile-scan.svg)](https://www.npmjs.com/package/vigile-scan)
6
+ [![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](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