Robin: AI-Powered Dark Web OSINT
Dark web OSINT over Tor: search onion engines, scrape pages, report with your own model.
MCP server that scans your repo's dependencies for security vulnerabilities based on published CVEs.
Pick the AI app you use, then copy the settings.
Passed 2/3 checks · Runs on your computer
First: which AI do you use?
Pick your app and the steps appear below.
Works with Claude, with some setup first
You need a GhostFree key (create it on the maker’s site) · Install Node.js on your computer first (one time) · Only the Claude desktop app (Windows or Mac), not the web or phone
One time only; it works for every server that needs Node.js
Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.
SettingsDeveloperEdit Config
Checking the commands · copy buttons appear once they pass
Paste the key only into the app’s field, never into a chat or to anyone
Use GhostFree and tell me what you can do for me, then show me one thing✓ If Claude says it is using GhostFree or shows a GhostFree tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
ChatGPT cannot connect GhostFree yet
GhostFree runs on your computer, but ChatGPT can only connect servers that run on the web
A · Use an app that can connect GhostFree
B · Others in Cybersecurity that work with ChatGPT
Picked from the most used in the same category, only ones that connect by address with no key
Works with Claude Code, with some setup first
You need a GhostFree key (create it on the maker’s site) · Install Node.js on your computer first (one time)
One time only; it works for every server that needs Node.js
Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.
Mac: press Command+Space and type Terminal · Windows: open PowerShell
Checking the commands · copy buttons appear once they pass
Replace “your-value” with your key before pressing Enter
Paste the key only into the app’s field, never into a chat or to anyone
You should see GhostFree listed as connected
Use GhostFree and tell me what you can do for me, then show me one thing✓ If Claude Code says it is using GhostFree or shows a GhostFree tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with Cursor, with some setup first
You need a GhostFree key (create it on the maker’s site) · Install Node.js on your computer first (one time) · No one-click button: paste the settings and fill in the values yourself
One time only; it works for every server that needs Node.js
Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.
~/.cursor/mcp.json
Paste these settings, fill in the empty values and save
Checking the commands · copy buttons appear once they pass
In the GhostFree settings, GHOSTFREE_DIR, GHOSTFREE_MIN_SEVERITY, NVD_API_KEY is empty; add your key and save
Paste the key only into the app’s field, never into a chat or to anyone
Use GhostFree and tell me what you can do for me, then show me one thing✓ If Cursor says it is using GhostFree or shows a GhostFree tool in the answer, you are connected
Menu names checked against Cursor’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with VS Code, with some setup first
You need a GhostFree key (create it on the maker’s site) · Install Node.js on your computer first (one time) · No one-click button: paste the settings and fill in the values yourself
One time only; it works for every server that needs Node.js
Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.
MCP: Open User Configuration
Paste these settings, fill in the empty values and save
Checking the commands · copy buttons appear once they pass
In the GhostFree settings, GHOSTFREE_DIR, GHOSTFREE_MIN_SEVERITY, NVD_API_KEY is empty; add your key and save
Paste the key only into the app’s field, never into a chat or to anyone
Use GhostFree and tell me what you can do for me, then show me one thing✓ If VS Code says it is using GhostFree or shows a GhostFree tool in the answer, you are connected
Menu names checked against VS Code’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Other apps that use MCP, such as Windsurf, Zed or Gemini CLI, each add servers differently. See how in the app list.
JSON settings are under “For developers” below
Claude Code
Checking the commands · copy buttons appear once they pass
Claude Desktop (claude_desktop_config.json)
Checking the commands · copy buttons appear once they pass
Cursor (~/.cursor/mcp.json)
Checking the commands · copy buttons appear once they pass
VS Code (mcp.json)
Checking the commands · copy buttons appear once they pass
GHOSTFREE_DIR envGHOSTFREE_MIN_SEVERITY envNVD_API_KEY secret envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
npm: ghostfreeBased on how this server connects and on each app’s own docs, checked Nov 10, 2026.
Run on your computer in
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 13, 2026
The registry name was verified with the GitHub account shane-js, which owns the repo
Code last changed 7 months ago, more than 6 months ago
Uses MIT
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Ask, share a tip or report that it does not work. Sorted by what people marked helpful.
No posts yet. Be the first to ask or share.
Posts here are written by users, not the PopNx team.
No reviews yet
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 2 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: NVD_API_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed 7 months ago, and the latest version (0.2.0) reached the registry 7 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Robin: AI-Powered Dark Web OSINT, HOL Guard, SonarQube MCP Server
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Dark web OSINT over Tor: search onion engines, scrape pages, report with your own model.
Analyze code quality and security with SonarQube Server or Cloud directly in AI assistants.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Every software team could use some help ridding their code base of the ghosts haunting their dependencies.
GhostFree is a local MCP server that scans your repository's dependencies for known vulnerabilities based on issued CVEs using OSV.dev, helps you triage and fix findings with NVD and CISA KEV enrichment, and lets you manage accepted risks — all directly from your AI coding assistant.
No installation, signup, or payment required. Add GhostFree to your MCP settings for whatever code tool you use and run /ghostfree.scan.
Search @mcp ghostfree in the Extensions view (Ctrl+Shift+X) and click Install. Then open the Command Palette (Ctrl+Shift+P), run MCP: List Servers, select GhostFree, choose Start Server, and confirm trust when prompted. No JSON config needed.
Create or update .vscode/mcp.json in your project root:
{
"servers": { "ghostfree": { "type": "stdio", "command": "npx", "args": ["-y", "ghostfree", "--repo-path", "${workspaceFolder}"], "env": {} } } }
Create .mcp.json in your project root:
{
"mcpServers": { "ghostfree": { "type": "stdio", "command": "npx", "args": ["-y", "ghostfree", "--repo-path", "."] } } }
Create .cursor/mcp.json:
{
"mcpServers": { "ghostfree": { "command": "npx", "args": ["-y", "ghostfree", "--repo-path", "."] } } }
Add to your claude_desktop_config.json (location varies by OS):
{
"mcpServers": { "ghostfree": { "command": "npx", "args": ["-y", "ghostfree", "--repo-path", "/path/to/your/repo"] } } }
/ghostfree.scan PromptThe recommended way to run a scan is via the built-in prompt. In your AI client, type:
/ghostfree.scan
This drives the following flow:
User: /ghostfree.scan
GhostFree: Discovering dependencies... Found 84 packages across 2 ecosystems (npm, PyPI).
What minimum severity should I surface? (CRITICAL / HIGH / MEDIUM / LOW)
User: HIGH
GhostFree: Scanning against OSV.dev...
[1] CVE-2021-44228 CRITICAL (10.0) — org.apache.logging.log4j:log4j-core@2.14.1 Log4Shell: Remote code execution via JNDI lookup Fix: upgrade to 2.17.1
[2] CVE-2022-25881 HIGH (7.5) — http-cache-semantics@4.1.0 ReDoS in http-cache-semantics Fix: upgrade to 4.1.1
[3] CVE-2021-28918 CRITICAL (9.8) — netmask@1.0.6 IP address parsing bypass (SSRF / allowlist bypass) Fix: upgrade to 1.1.0
Showing 1-3 of 3. Which would you like to investigate? (e.g., 1, 2, or 'all')
User: 3
GhostFree: [Calls enrich_cve CVE-2021-28918]
CVE-2021-28918 — netmask CRITICAL (9.8) CVSS: 9.1 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N CWE: CWE-704 (Incorrect Type Conversion) CISA KEV: Not listed
What it is: netmask@1.0.6 improperly parses octal-notation IP addresses (e.g. 010.0.0.1), treating them as decimal. This enables SSRF protection bypass and IP allowlist/blocklist bypass — an attacker can craft an address that appears private but routes to a public host.
Exploit status: Not in CISA KEV. Public PoC exists (SICK-2021-011), ~280k affected projects.
Codebase exposure: netmask is not directly imported — it appears in package-lock.json as a transitive dependency of pac-resolver@3.0.0 (a transitive dev dependency). No direct require('netmask') or IP parsing logic found. Reachability is very low.
Recommendation: Upgrade — low effort, patch version (1.0.6 → 1.1.0), no API changes. netmask is a transitive dependency; use npm audit fix or add a package.json overrides entry to force netmask@1.1.0.
→ Reply with a number to investigate another CVE, 'back' to return to the list, 'fix' to apply the recommended fix, 'accept' to record an accepted risk, or 'done' to wrap up.
User: Accept CVE-2022-25881 — it's only in our CI test pipeline, not reachable in production. Expiry end of year.
GhostFree: [Calls accept_risk CVE-2022-25881]
Accepted risk recorded: • CVE-2022-25881 — http-cache-semantics (HIGH, CVSS 7.5) Reason: Only used in CI test pipeline, not reachable in production Expires: 2026-12-31 ID: 550e8400-e29b-41d4-a716-446655440000
This acceptance is saved to .ghostfree/accepted.yml. Commit this file to share the decision with your team. The CVE will be suppressed on future scans until expiry.
User: List all accepted risks
GhostFree: [Calls list_accepted_risks]
CVE-2022-25881 — ✅ expires in 272 days (2026-12-31) | Severity at acceptance: HIGH (7.5) ID: 550e8400-e29b-41d4-a716-446655440000 Reason: Only used in CI test pipeline, not reachable in production Accepted: 2026-04-03T10:00:00.000Z
User: Tell me everything about CVE-2021-44228
GhostFree: [Calls enrich_cve CVE-2021-44228]
CVSS Score: 10.0 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H CWE: CWE-917 (Improper Neutralization of Special Elements in an Expression Language Statement)
References: • https://nvd.nist.gov/vuln/detail/CVE-2021-44228 • https://logging.apache.org/log4j/2.x/security.html
⚠️ CONFIRMED actively exploited in the wild (added to KEV: 2021-12-10)
| Tool | Read-only | Description |
|---|---|---|
discover_dependencies | ✅ | Scan repo manifests, return all pinned packages by ecosystem |
check_cves | ✅ | Query OSV.dev for CVEs, filter by severity, apply accepted risks |
enrich_cve | ✅ | Fetch CVSS, CWE, references from NVD + KEV exploitation status |
list_accepted_risks | ✅ | List all accepted risks with expiry status and severity snapshot |
accept_risk | ❌ | Record an accepted risk with reason, expiry date, and severity snapshot |
remove_accepted_risk | ❌ | Remove an accepted risk by UUID |
All read-only tools are safe to auto-approve in your MCP client. Write tools (accept_risk, remove_accepted_risk) will prompt for confirmation.
check_cves Inputs| Parameter | Required | Description |
|---|---|---|
packages | Yes | Array of {name, version, ecosystem} — use discover_dependencies output |
min_severity | No | CRITICAL, HIGH, MEDIUM, or LOW. If not passed in, resolves in order of: GHOSTFREE_MIN_SEVERITY env var, then .ghostfree/config.yml, then prompts to choose |
accept_risk Inputs| Parameter | Required | Description |
|---|---|---|
cve_id | Yes | CVE ID, e.g. CVE-2021-44228 |
reason | Yes | Business justification |
expires_on | Yes | Expiry date in YYYY-MM-DD format |
confirm_extended_expiry | No | Set true if expiry is more than 1 year away |
severity | Yes | Severity label at time of acceptance (CRITICAL, HIGH, MEDIUM, LOW, UNKNOWN) — snapshot, not live |
cvss_score | No | CVSS score at time of acceptance — snapshot, not live |
Create .ghostfree/config.yml in your repo root to set a persistent severity threshold that's shared with your team via source control:
min_severity: HIGH
This takes priority over the environment variable. If neither is set, GhostFree will prompt you to choose at scan time.
| Variable | Description |
|---|---|
NVD_API_KEY | Optional NVD API key for higher rate limits (50 req/30s vs 5 req/30s) |
GHOSTFREE_MIN_SEVERITY | Optional — skip the severity prompt and always use this threshold (CRITICAL, HIGH, MEDIUM, or LOW) |
GHOSTFREE_DIR | Optional — use a custom directory instead of .ghostfree/ (applies to both accepted.yml and config.yml) |
VS Code extension users: create a .env file in your workspace root — the extension reads it automatically and forwards the values to the server. For all other setups (manual MCP JSON config): add these to the "env" block in your client's config file (.vscode/mcp.json, .mcp.json, .cursor/mcp.json, claude_desktop_config.json, etc.), or export them as system environment variables.
When you accept a risk, GhostFree writes it to .ghostfree/accepted.yml in your repo root. Commit this file to share accepted decisions with your team.
accepted_risks:
Rules:
expires_on is required — no open-ended acceptancesconfirm_extended_expiry=true| Ecosystem | Manifest Files |
|---|---|
| Python | requirements.txt, pyproject.toml, Pipfile.lock, setup.cfg |
| Node.js | package.json, package-lock.json |
| Go | go.mod, go.sum |
| Rust | Cargo.toml, Cargo.lock |
| Java | pom.xml, build.gradle, build.gradle.kts |
| .NET | *.csproj, packages.config |
When a manifest specifies a version range rather than an exact version, GhostFree extracts a single version to query vulnerability databases. We use two taxonomies to keep the reasoning clear: VRC (what a specifier *means*) and VRHP (what we *do* about it).
A VRC is an ecosystem-agnostic label for what a version specifier expresses. Multiple VRCs can apply to the same entry (e.g. a caret range *with* a prerelease tag is vrc-caret + vrc-prerelease).
| VRC | Concept | Ecosystem examples |
|---|---|---|
vrc-exact | Exact pinned version | npm 1.4.0, Python ==2.28.0, Cargo 1.0.188, Maven 6.0.11 |
vrc-lockfile-pin | Resolved version from lock file | package-lock.json, Cargo.lock, go.sum, Pipfile.lock |
vrc-prerelease | Prerelease / pre-stable tag | 1.0.0-beta, 9.0.0-preview.1, 1.0.0-SNAPSHOT, 32.1.2-jre |
vrc-caret | Caret (major-compatible) range | npm ^1.2.3, Cargo ^1.0.100, Poetry ^2.28.0 |
vrc-tilde | Tilde (minor/patch-compatible) range | npm ~4.17.0, Cargo ~1.0.0, Poetry ~2.28.0 |
vrc-inclusive-minimum | Inclusive lower bound (>=) | npm >=1.2.0, Python >=2.28.0, Cargo >=0.5 |
vrc-exclusive-minimum | Exclusive lower bound (>) | npm >1.0.0, Python >2.0, Cargo >0.5 |
vrc-compatible-release | Compatible release | Python ~=2.28 |
vrc-compound | Multiple constraints combined | npm >=1.0.0 <2.0.0, Cargo >=0.5, <1.0, Python >=2.28,<3.0 |
vrc-inclusive-range | Bracket interval with inclusive lower | NuGet [1.0,2.0), Maven [1.0,2.0] |
| vrc-exclusive-range | Bracket interval with exclusive lower | NuGet `(4.1.3,