hound-mcp 0.2.0 → 0.2.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/README.md +60 -169
- package/dist/index.js +103 -86
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -2,22 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
**The dependency bloodhound for AI coding agents.**
|
|
4
4
|
|
|
5
|
-
Hound is a free, open-source MCP server that gives AI coding agents a nose for supply chain security. It scans packages for vulnerabilities, checks licenses, inspects dependency trees, and detects typosquatting — with **zero API keys, zero config, and zero cost**.
|
|
6
|
-
|
|
7
5
|
[](https://www.npmjs.com/package/hound-mcp)
|
|
6
|
+
[](https://www.npmjs.com/package/hound-mcp)
|
|
8
7
|
[](https://github.com/tiluckdave/hound-mcp/actions/workflows/ci.yml)
|
|
9
8
|
[](LICENSE)
|
|
10
9
|
|
|
11
|
-
|
|
10
|
+

|
|
12
11
|
|
|
13
12
|
## Why Hound?
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
AI coding agents recommend and install packages without knowing if they're safe — and most security tools require accounts, API keys, or paid plans to tell you. Hound fixes that: it scans for vulnerabilities, checks licenses, audits dependency trees, and detects typosquatting across 7 ecosystems — zero config, zero API keys, zero cost.
|
|
16
15
|
|
|
17
|
-
|
|
18
|
-
- **[OSV](https://osv.dev)** (Google Open Source Vulnerabilities) — CVEs, GHSAs, fix versions
|
|
16
|
+
Hound is the only security tool built specifically for AI coding agents — works across npm, PyPI, Go, Cargo, Maven, NuGet, and RubyGems, and plugs into Claude Code, Cursor, VS Code, and any MCP client out of the box.
|
|
19
17
|
|
|
20
|
-
|
|
18
|
+
It uses two fully free, unauthenticated public APIs: **[deps.dev](https://deps.dev)** (Google Open Source Insights) and **[OSV](https://osv.dev)** (Google Open Source Vulnerabilities).
|
|
21
19
|
|
|
22
20
|
---
|
|
23
21
|
|
|
@@ -44,12 +42,6 @@ Add to your MCP config file:
|
|
|
44
42
|
}
|
|
45
43
|
```
|
|
46
44
|
|
|
47
|
-
**Config file locations:**
|
|
48
|
-
|
|
49
|
-
- Claude Desktop (macOS): `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
50
|
-
- Cursor: `~/.cursor/mcp.json`
|
|
51
|
-
- Windsurf: `~/.codeium/windsurf/mcp_config.json`
|
|
52
|
-
|
|
53
45
|
### VS Code (Copilot)
|
|
54
46
|
|
|
55
47
|
```json
|
|
@@ -66,194 +58,93 @@ Add to your MCP config file:
|
|
|
66
58
|
}
|
|
67
59
|
```
|
|
68
60
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
## Tools
|
|
72
|
-
|
|
73
|
-
Hound registers 12 tools in your MCP client.
|
|
74
|
-
|
|
75
|
-
### `hound_audit` ⭐
|
|
76
|
-
|
|
77
|
-
Scan a whole project by passing your lockfile content. Parses `package-lock.json`, `yarn.lock`, `pnpm-lock.yaml`, `requirements.txt`, `Cargo.lock`, or `go.sum` and batch-queries OSV for vulnerabilities across all dependencies.
|
|
78
|
-
|
|
79
|
-
```text
|
|
80
|
-
hound_audit(lockfile_name: "package-lock.json", lockfile_content: "<contents>")
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
### `hound_vulns`
|
|
84
|
-
|
|
85
|
-
List all known vulnerabilities for a package version, grouped by severity with fix versions.
|
|
86
|
-
|
|
87
|
-
```text
|
|
88
|
-
hound_vulns(name: "express", version: "4.18.2", ecosystem: "npm")
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
### `hound_inspect`
|
|
92
|
-
|
|
93
|
-
Comprehensive package profile — licenses, vulnerabilities, OpenSSF Scorecard, GitHub stars, and dependency count in one call.
|
|
94
|
-
|
|
95
|
-
```text
|
|
96
|
-
hound_inspect(name: "lodash", version: "4.17.21", ecosystem: "npm")
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### `hound_score`
|
|
100
|
-
|
|
101
|
-
Compute a 0–100 Hound Score combining vulnerability severity (40 pts), OpenSSF Scorecard (25 pts), release recency (20 pts), and license risk (15 pts). Returns a letter grade A–F with a full breakdown.
|
|
102
|
-
|
|
103
|
-
```text
|
|
104
|
-
hound_score(name: "express", version: "4.18.2", ecosystem: "npm")
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
### `hound_upgrade`
|
|
108
|
-
|
|
109
|
-
Find the minimum version upgrade that resolves all known vulnerabilities. Checks every published version and returns the nearest safe one.
|
|
110
|
-
|
|
111
|
-
```text
|
|
112
|
-
hound_upgrade(name: "lodash", version: "4.17.20", ecosystem: "npm")
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### `hound_compare`
|
|
61
|
+
#### Config file locations
|
|
116
62
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
### `hound_preinstall`
|
|
124
|
-
|
|
125
|
-
Safety check before installing a package. Checks vulnerabilities, typosquatting risk, abandonment, and license. Returns a GO / CAUTION / NO-GO verdict.
|
|
126
|
-
|
|
127
|
-
```text
|
|
128
|
-
hound_preinstall(name: "some-package", version: "1.0.0", ecosystem: "npm")
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### `hound_tree`
|
|
132
|
-
|
|
133
|
-
Full resolved dependency tree including all transitive dependencies, with depth and relation type.
|
|
134
|
-
|
|
135
|
-
```text
|
|
136
|
-
hound_tree(name: "next", version: "14.2.0", ecosystem: "npm", maxDepth: 3)
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
### `hound_advisories`
|
|
140
|
-
|
|
141
|
-
Full advisory details by ID — works with GHSA, CVE, and OSV IDs.
|
|
142
|
-
|
|
143
|
-
```text
|
|
144
|
-
hound_advisories(id: "GHSA-rv95-896h-c2vc")
|
|
145
|
-
hound_advisories(id: "CVE-2024-29041")
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
### `hound_typosquat`
|
|
149
|
-
|
|
150
|
-
Generates likely typo variants of a package name and checks which ones exist in the registry — surfaces potential typosquatting attacks.
|
|
151
|
-
|
|
152
|
-
```text
|
|
153
|
-
hound_typosquat(name: "lodash", ecosystem: "npm")
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
### `hound_license_check`
|
|
157
|
-
|
|
158
|
-
Scan a lockfile for license compliance. Resolves licenses for all dependencies and flags packages that violate the chosen policy.
|
|
159
|
-
|
|
160
|
-
```text
|
|
161
|
-
hound_license_check(lockfile_name: "package-lock.json", lockfile_content: "<contents>", policy: "permissive")
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
Policies: `permissive` (MIT/Apache/BSD only), `copyleft` (allows GPL but not AGPL), `none` (report only).
|
|
165
|
-
|
|
166
|
-
### `hound_popular`
|
|
167
|
-
|
|
168
|
-
Scan a list of popular (or user-specified) packages for known vulnerabilities. Great for a quick ecosystem health check.
|
|
169
|
-
|
|
170
|
-
```text
|
|
171
|
-
hound_popular(ecosystem: "npm")
|
|
172
|
-
hound_popular(ecosystem: "pypi", packages: ["requests", "flask", "django"])
|
|
173
|
-
```
|
|
63
|
+
| Client | Config path |
|
|
64
|
+
| ------ | ----------- |
|
|
65
|
+
| Claude Desktop (macOS) | `~/Library/Application Support/Claude/claude_desktop_config.json` |
|
|
66
|
+
| Cursor | `~/.cursor/mcp.json` |
|
|
67
|
+
| Windsurf | `~/.codeium/windsurf/mcp_config.json` |
|
|
174
68
|
|
|
175
69
|
---
|
|
176
70
|
|
|
177
|
-
##
|
|
178
|
-
|
|
179
|
-
| Ecosystem | Value |
|
|
180
|
-
| ------------ | ---------- |
|
|
181
|
-
| npm | `npm` |
|
|
182
|
-
| PyPI | `pypi` |
|
|
183
|
-
| Go | `go` |
|
|
184
|
-
| Maven | `maven` |
|
|
185
|
-
| Cargo (Rust) | `cargo` |
|
|
186
|
-
| NuGet (.NET) | `nuget` |
|
|
187
|
-
| RubyGems | `rubygems` |
|
|
71
|
+
## Tools
|
|
188
72
|
|
|
189
|
-
|
|
73
|
+
12 tools → [Full reference with example outputs](docs/tools.md)
|
|
74
|
+
|
|
75
|
+
| Tool | What it does |
|
|
76
|
+
| ---- | ------------ |
|
|
77
|
+
| `hound_audit` ⭐ | Scan an entire lockfile for vulnerabilities across all dependencies |
|
|
78
|
+
| `hound_score` | 0–100 Hound Score (vulns + scorecard + recency + license) with letter grade |
|
|
79
|
+
| `hound_compare` | Side-by-side comparison of two packages with a recommendation |
|
|
80
|
+
| `hound_preinstall` | GO / CAUTION / NO-GO verdict before installing a package |
|
|
81
|
+
| `hound_upgrade` | Find the minimum safe version upgrade that resolves all known vulns |
|
|
82
|
+
| `hound_license_check` | Scan a lockfile for license compliance against a policy |
|
|
83
|
+
| `hound_vulns` | All known vulnerabilities for a package version, grouped by severity |
|
|
84
|
+
| `hound_inspect` | Full package profile — license, vulns, scorecard, stars, dep count |
|
|
85
|
+
| `hound_tree` | Full resolved dependency tree with transitive deps |
|
|
86
|
+
| `hound_typosquat` | Detect typosquatting variants of a package name |
|
|
87
|
+
| `hound_advisories` | Full advisory details by GHSA, CVE, or OSV ID |
|
|
88
|
+
| `hound_popular` | Scan popular packages for known vulnerabilities |
|
|
89
|
+
|
|
90
|
+
**Supported ecosystems:** `npm` · `pypi` · `go` · `maven` · `cargo` · `nuget` · `rubygems`
|
|
190
91
|
|
|
191
92
|
## Built-in Prompts
|
|
192
93
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
### `security_audit`
|
|
94
|
+
3 prompts you can invoke directly from your AI client. → [Full prompt reference](docs/prompts.md)
|
|
196
95
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
/
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
### `package_evaluation`
|
|
204
|
-
|
|
205
|
-
Go/no-go recommendation before adding a new dependency.
|
|
206
|
-
|
|
207
|
-
```text
|
|
208
|
-
/package_evaluation package="axios" version="1.6.0" ecosystem="npm"
|
|
209
|
-
```
|
|
96
|
+
| Prompt | What it does |
|
|
97
|
+
| ------ | ------------ |
|
|
98
|
+
| `security_audit` | Full project security audit — vulns, licenses, typosquats |
|
|
99
|
+
| `package_evaluation` | Go/no-go recommendation before adding a new dependency |
|
|
100
|
+
| `pre_release_check` | Pre-ship dependency scan that flags release blockers |
|
|
210
101
|
|
|
211
|
-
|
|
102
|
+
## Use Cases
|
|
212
103
|
|
|
213
|
-
|
|
104
|
+
→ [See full examples with real lockfiles and expected output](examples/)
|
|
214
105
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
106
|
+
- **Before merging a PR** — scan the lockfile diff to catch newly introduced vulnerabilities before they land in main
|
|
107
|
+
- **Auditing an inherited codebase** — run `hound_audit` on an existing lockfile to get a full report in seconds
|
|
108
|
+
- **Checking a package before adding it** — use `hound_preinstall` to get a GO / CAUTION / NO-GO verdict
|
|
109
|
+
- **License compliance** — run `hound_license_check` to ensure no GPL or AGPL packages sneak into a commercial project
|
|
110
|
+
- **CI security gate** — ask your AI agent to run a security audit as part of every release check
|
|
218
111
|
|
|
219
112
|
---
|
|
220
113
|
|
|
221
114
|
## Local Development
|
|
222
115
|
|
|
223
116
|
```bash
|
|
224
|
-
# Clone
|
|
225
117
|
git clone https://github.com/tiluckdave/hound-mcp.git
|
|
226
118
|
cd hound-mcp
|
|
227
|
-
|
|
228
|
-
# Install
|
|
229
119
|
pnpm install
|
|
230
|
-
|
|
231
|
-
# Build
|
|
232
120
|
pnpm build
|
|
121
|
+
pnpm test # run tests
|
|
122
|
+
pnpm check # typecheck + lint + test
|
|
123
|
+
```
|
|
233
124
|
|
|
234
|
-
|
|
235
|
-
pnpm test
|
|
125
|
+
## Roadmap
|
|
236
126
|
|
|
237
|
-
|
|
238
|
-
|
|
127
|
+
- [ ] **Docker support** — run Hound as a container for CI/CD pipelines
|
|
128
|
+
- [ ] **`bun.lockb` parser** — Bun lockfile support
|
|
129
|
+
- [ ] **`gradle.lockfile` parser** — Gradle (Java/Android) ecosystem support
|
|
130
|
+
- [ ] **`hound_diff` tool** — compare two lockfile snapshots to surface newly introduced risks
|
|
131
|
+
- [ ] **GitHub Action** — run `hound_audit` as a PR check without an AI agent
|
|
239
132
|
|
|
240
|
-
|
|
241
|
-
pnpm format
|
|
133
|
+
## Contributing
|
|
242
134
|
|
|
243
|
-
|
|
244
|
-
pnpm check
|
|
135
|
+
Contributions are welcome. Read [CONTRIBUTING.md](CONTRIBUTING.md) to get started.
|
|
245
136
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
137
|
+
The one rule: **Hound must stay zero-config and free forever.** Don't add features that require API keys or accounts.
|
|
138
|
+
|
|
139
|
+
Good first issues are [labeled and ready](https://github.com/tiluckdave/hound-mcp/issues?q=is%3Aopen+label%3A%22good+first+issue%22).
|
|
249
140
|
|
|
250
141
|
---
|
|
251
142
|
|
|
252
|
-
##
|
|
143
|
+
## Community
|
|
253
144
|
|
|
254
|
-
|
|
145
|
+
💬 Questions or ideas? [Open a Discussion](https://github.com/tiluckdave/hound-mcp/discussions)
|
|
255
146
|
|
|
256
|
-
|
|
147
|
+
<a href="https://glama.ai/mcp/servers/tiluckdave/hound-mcp"><img width="320" src="https://glama.ai/mcp/servers/tiluckdave/hound-mcp/badge" alt="Glama MCP server" /></a>
|
|
257
148
|
|
|
258
149
|
## License
|
|
259
150
|
|