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 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
  [![npm version](https://img.shields.io/npm/v/hound-mcp)](https://www.npmjs.com/package/hound-mcp)
6
+ [![npm downloads](https://img.shields.io/npm/dw/hound-mcp)](https://www.npmjs.com/package/hound-mcp)
8
7
  [![CI](https://github.com/tiluckdave/hound-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/tiluckdave/hound-mcp/actions/workflows/ci.yml)
9
8
  [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
10
9
 
11
- ---
10
+ ![Hound MCP Demo](demo/demo.gif)
12
11
 
13
12
  ## Why Hound?
14
13
 
15
- Most security tools require accounts, API keys, or paid plans. Hound uses only two fully free, unauthenticated public APIs:
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
- - **[deps.dev](https://deps.dev)** (Google Open Source Insights)package metadata, dependency trees, licenses, OpenSSF Scorecard
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
- No sign-up. No config. Just install and go.
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
- Side-by-side comparison of two packages across vulnerabilities, OpenSSF Scorecard, GitHub stars, release recency, and license. Returns a recommendation.
118
-
119
- ```text
120
- hound_compare(package_a: "express", package_b: "fastify", ecosystem: "npm")
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
- ## Supported Ecosystems
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
- Hound ships with 3 MCP prompts you can invoke directly from your AI client.
194
-
195
- ### `security_audit`
94
+ 3 prompts you can invoke directly from your AI client. → [Full prompt reference](docs/prompts.md)
196
95
 
197
- Full project security audit scans for vulnerabilities, license issues, and typosquat risks.
198
-
199
- ```text
200
- /security_audit ecosystem="npm"
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
- ### `pre_release_check`
102
+ ## Use Cases
212
103
 
213
- Pre-ship dependency scan that flags release blockers.
104
+ [See full examples with real lockfiles and expected output](examples/)
214
105
 
215
- ```text
216
- /pre_release_check version="1.2.0"
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
- # Test
235
- pnpm test
125
+ ## Roadmap
236
126
 
237
- # Lint
238
- pnpm lint
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
- # Format
241
- pnpm format
133
+ ## Contributing
242
134
 
243
- # Run all checks (typecheck + lint + test)
244
- pnpm check
135
+ Contributions are welcome. Read [CONTRIBUTING.md](CONTRIBUTING.md) to get started.
245
136
 
246
- # Run locally as MCP server
247
- node dist/index.js
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
- ## Contributing
143
+ ## Community
253
144
 
254
- Contributions are welcome. Read [CONTRIBUTING.md](CONTRIBUTING.md) first — the one rule is **zero API keys, forever**. Hound must always work without any account or authentication.
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