agent-safe-webscan
Checks for exposed Apache server-status pages during authorized exposure scans (--authorized), reporting their presence as a finding.
Fingerprints exposed [.env](/mcp/servers/integrations/dotenv) files on a target site so potential secret leakage can be reported without ever emitting the file contents.
Detects outdated jQuery versions loaded by a scanned page as a frontend risk check, including flags for third-party scripts lacking SRI.
Checks for exposed [php](/mcp/servers/integrations/php)info.php files during authorized exposure scans, flagging them as information-disclosure findings.
Detects exposed WordPress debug.log files in authorized exposure scans and performs lightweight technology fingerprinting of the site.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@agent-safe-webscanScan https://example.com passively and give me a prioritized fix list"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AgentSafe WebScan
Agent-safe, passive-first website security scanning for humans, CI, and coding agents.
๐ Project page
AgentSafe WebScan turns a public URL into a compact, evidence-based security report and exposes the same deterministic scanner through a CLI, JSON, SARIF 2.1.0, and MCP. It is intentionally narrower than a pentest suite: no exploit chains, no credential attacks, no port scanning, no subdomain brute force.
The project grew out of a larger internal website-audit tool and was rebuilt as a small open-source core with stricter safety boundaries.
The different part: the scanner is an agent trust boundary
Once a scanner is exposed through MCP, website content can flow into a coding agent. That creates an indirect prompt-injection path that classic website scanners were not designed around.
AgentSafe WebScan therefore adds two agent-native controls:
Quarantined evidence: suspicious hidden instructions are classified and SHA-256 fingerprinted, not returned verbatim to the model. Potential
.env/debug-log contents are also never emitted.MCP-native structured findings: agents receive bounded fields (
severity,confidence,standard,evidence,remediation) plus read-only/idempotent/open-world tool annotations instead of an arbitrary page dump.Honest coverage: the report separates "checked and clean" from "could not check". An agent acting on the result can tell the difference.
It also includes SSRF guards, redirect re-validation and DNS pinning, response-size caps, timeouts, and passive-by-default behavior.
Related MCP server: CodeMore MCP Server
Current checks
Area | Examples |
Headers | HSTS, CSP, clickjacking protection, nosniff, Referrer-Policy, version disclosure |
Cookies | Secure, HttpOnly for session-like cookies, SameSite |
CORS | Arbitrary Origin reflection and credentialed reflection |
Frontend | Mixed content, old jQuery, third-party scripts without SRI |
Agent security | Hidden/comment prompt-injection heuristics, Unicode obfuscation, content withholding |
Exposure ( |
|
Hygiene |
|
AI surface inventory |
|
Findings separate severity from confidence so a heuristic signal is not presented as a confirmed vulnerability.
Quick start
Requires Node.js 22+.
npm install
npm run scan -- https://example.comJSON:
npm run scan -- https://example.com --format jsonSARIF for CI/code-scanning pipelines:
npm run scan -- https://example.com --format sarif > agent-safe-webscan.sarifAuthorized exposure checks โ only for systems you own or have explicit permission to test:
npm run scan -- https://your-site.example --authorizedFail CI when a finding meets a threshold:
npm run scan -- https://your-site.example --fail-on highMCP
The server uses MCP's current v2 TypeScript server package and serveStdio, which is the SDK path for the modern 2026 protocol era while retaining compatible negotiation behavior.
npm run mcpTools:
scan_siteโ scan a URL inpassiveorauthorizedmode.scanner_policyโ inspect scanner boundaries without making a network request.
Example local registration pattern:
codex mcp add agent-safe-webscan -- node /absolute/path/to/agent-safe-webscan/src/mcp.jsAn agent can then ask:
Scan https://example.com in passive mode and turn only the structured findings into a prioritized remediation plan.Example output
AgentSafe WebScan 0.1.0 ยท passive
https://example.com/ ยท HTTP 200 ยท score 72/100 (C)
[MEDIUM] Content Security Policy is missing
Content-Security-Policy header not present
Fix: Deploy a restrictive CSP and iterate with report-only mode first.
[LOW] Referrer-Policy is missing
Referrer-Policy header not presentSafety model
Public HTTP(S) targets only.
Private/reserved IP ranges and local hostnames are rejected; validated DNS answers are pinned for the actual request to reduce rebinding risk.
Every redirect destination is resolved and checked again.
Responses are bounded by byte limits and timeouts.
No login attempts, brute force, port scans, subdomain brute force, or exploit payloads.
Exposure checks are opt-in via
--authorized..env/debug responses are fingerprinted but contents are never included in findings.Hidden agent-directed instructions are hashed rather than returned raw over MCP.
A check that could not be completed is reported as such. An unreachable path is never presented to the agent as a clean result โ see the
coverageobject and theprobe-incompletefinding.
See docs/threat-model.md for the compact threat model.
Architecture
Public URL
โ
โผ
Safe fetch boundary โโ SSRF guard / redirect validation / byte + time caps
โ
โผ
Deterministic analyzer โโ web findings + agent-context findings
โ
โโโโโโโโโโบ CLI / JSON
โโโโโโโโโโบ SARIF 2.1.0
โโโโโโโโโโบ MCP (sanitized structured report only)See docs/architecture.md for details.
Development
npm test
npm run checkThe analyzer does not require an LLM or remote vulnerability database, keeping local results deterministic and reviewable.
Contributing
PRs are welcome. New rules should be bounded, low-noise, have stable IDs, return no secrets, and include regression tests. See CONTRIBUTING.md.
Open-source application notes
The repository includes docs/application.md with an honest maintainer/adoption checklist. Do not claim stars, downloads, or users that the project does not actually have.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Scan any public site for AI-agent visibility; get scored findings, a machine-readable fix pack, and
Prompt-injection scanning and safe webpage fetching for AI agents reading untrusted content.
SSRF-safe web intelligence: 4 outcomes, 43 paid x402 tools, 3 free tools and a URL preview.
Exposes FEDLIN's public security scanners as agent-callable tools over Streamable HTTP.
Related MCP Servers
FlicenseAqualityDmaintenanceEnables deep security auditing of web applications directly from AI IDEs including Cursor and Claude Code. Scans URLs for vulnerabilities, returns security scores with SHIP/BLOCK verdicts, and provides specific fix prompts for remediation.3-- AlicenseNot gradedqualityAmaintenanceEnables AI agents to scan code for security and quality issues and receive machine-readable reports with suggested fixes and verification criteria.722MIT
- AlicenseNot gradedqualityAmaintenanceScans a website to score its compatibility and safety for AI agents, and exposes an audit tool via the Model Context Protocol.281MIT
- AlicenseNot gradedqualityBmaintenanceRead-only observation of a single live URL: parses static HTML to report security posture, forms, links, accessibility signals, and leaks, with described fixes. SSRF-gated and safe, never executes JavaScript.93MIT