rver** that lets an AI agent point at a **live deployed URL** and confirm whether sensitive files are actually being served to the public — exposed .git, .env secrets, JavaScript source maps, backup/SQL dumps, directory listing, and dotfiles — by **fetching the bytes and validating the content**.
claude mcp add web-exposure-mcp -- npx -y web-exposure-mcp
A pasteable skeleton generated from the repository name. Check the project README for the exact package and arguments.
Star count
1 ★ · Perufitlife/web-exposure-mcp · read from the GitHub search API · (checked 2026-10-16 20:00:20)
Source
collected from the punkpeye/awesome-mcp-servers list · type: MCP server
Harvest history
first seen 2026-10-09 · last seen 2026-10-16 · seen 32× · listed by 7 sources
Score
score 703 · 1 ★ · 7 sources · mcp
FAQ (answers come from our records)
How do I install it?
We did not find an install command for this repository (our install coverage is only about 4%). Check its README or releases page.
Who is it for?
We filed it under these tags: MCP 服务. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository Perufitlife/web-exposure-mcp;first catalogued 2026-10-09;last seen 2026-10-16。There is no official certification or quality rating here — we record sources and dates only.
> An **MCP server** that lets an AI agent point at a **live deployed URL** and confirm whether sensitive files are actually being served to the public — exposed .git, .env secrets, JavaScript source maps, backup/SQL dumps, directory listing, and dotfiles — by **fetching the bytes and validating the content**. Other tools give you a checklist of *maybes*; this reports only what is genuinely reachable, with evidence. > ⚡ **Run it in one line, no install, no API key:** > > 🤝 **Want it done for you?** Fixed-scope external-exposure audit — $99 / 24h: I verify every finding live and send a written report with the exact fixes and which credentials to rotate. Why this exists Publicly-served .git and .env files are routinely called *one of the most common high-impact findings in external attack-surface management* — Acunetix, Invicti and Legba all ship dedicated detections, and live HackerOne reports for exposed .git/.env are filed continuously. June 2026 saw record leaked-credential dumps, a large share sourced from **live, misconfigured servers** rather than breached databases. The MCP ecosystem already covers SSL, CORS, security-headers, SEO audits, and **code/commit** secret scanning (GitHub MCP, GitGuardian) — but **no MCP server probes a *deployed URL* for publicly-served secret files.** This fills that gap: your agent can audit the live edge of any deployment, the way an attacker actually sees it. The hard part isn't requesting /.env — it's avoiding false positives. Most modern sites answer 200 OK with index.html for *every* unknown path (SPA catch-all). web-exposure-mcp therefore **reads the bytes and fingerprints the content** (e.g. .git/config must parse as a git config, .env must contain KEY=VALUE secret lines, an archive must start with the real magic bytes) — so it flags facts, not guesses. Tools (MCP) | Tool | What it does | |---|---| | scan_web_exposure | Probe a live URL and return only the secret files genuinely served, with evidence. Args: url (required), only (optional check filter), timeout_ms. | | list_exposure_checks | List every check id, severity and the paths it probes — feed ids into only. | What it confirms | Check id | Severity | Confirmed by | |---|---|---| | git_exposed | critical | /.git/config parses as a git config, or /.git/HEAD is a valid ref/sha | | env_exposed | critical | dotenv served with ≥2 KEY=VALUE secret lines (not HTML) | | source_map | high | .js.map parses as a source map with a sources[] array | | backup_artifact | high | SQL-dump fingerprints, or ZIP/gzip **magic bytes** in the body | | directory_listing | medium | the autoindex signature (Index of /…) is returned | | dotfile_served | high | .htpasswd hashes, .npmrc/.netrc tokens, .aws/credentials, .ssh/id_rsa, .DS_Store, docker auth | Every check fires **at most once** and only when the served bytes prove it.