Install
$ agentstack add mcp-nesqcck-mcp-registry-audit ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
mcp-registry-audit
A read-only reconnaissance CLI that scans public MCP (Model Context Protocol) registries for two supply-chain attack shapes — rug-pulls (a server that turns malicious in a later version) and lookalikes (brand impersonation) — and produces a ranked, evidence-traced candidate list for manual review.
Read-only by design
The scanner only reads public metadata. It never installs, executes, imports, unpacks, or process-spawns any target, and it never contacts any URL, domain, or endpoint found inside a package — those are treated as inert strings to be scored, never reached. All network access is plain HTTP GET against registry and package-backend APIs. Confirmation of any candidate is a separate, manual, sandboxed step performed by a human — never by this tool.
What it does
Two pipelines over a shared, cached, read-only fetch core:
- Lookalike — matches server names against a canonical brand set (normalized name-distance + homoglyph + substring) and scores publisher mismatch, off-canonical install, fresh repo, thin/fake contributor graph, and official-sounding-but-low-trust naming.
- Rug-pull / drift — resolves a server to its npm/PyPI/GitHub source, diffs consecutive published versions, and scores newly-introduced outbound calls, hardcoded sinks, install hooks, env-harvest-near-network, maintainer changes, and obfuscation.
Every candidate score traces to a named signal with its evidence, so a human can confirm or dismiss each by reading the source.
Install
From source (editable):
git clone https://github.com/Nesqcck/mcp-registry-audit
cd mcp-registry-audit
python -m venv .venv
source .venv/bin/activate # Unix; on Windows: .venv\Scripts\activate
pip install -e ".[dev]"
Usage
hunt pull --registry all # build/refresh the local read-only index
hunt lookalikes --enrich # Pipeline B: brand-impersonation candidates
hunt diff --top 200 # Pipeline A: rug-pull / version-drift candidates
hunt rank --out candidates.csv # merge both, ranked -> out/ (JSON + CSV + XLSX)
The local index/cache is written under cache/ and outputs under out/; both are git-ignored. Optionally set GITHUB_TOKEN in the environment for higher GitHub rate limits during --enrich.
Tech stack
Python 3.12+ — httpx (GET-only fetching), pydantic (data model), typer (CLI), rapidfuzz (name-distance scoring). Two independent pipeline modules over one read-only fetch-and-cache core.
Writeup
Background, method, and snapshot findings: https://nesqcck.github.io
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Nesqcck
- Source: Nesqcck/mcp-registry-audit
- License: MIT
- Homepage: https://nesqcck.github.io
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.