Web Scan

io.github.ankitkumarjha515由 GitHub 账号 ankitkumarjha515 发布v1.0.0更新于 Oct 26, 2026

Audit any live URL: 85 SEO, AI-search, security, leaked-key and speed checks, with fixes to verify.

发布方自己的服务:scan.mx Email Diagnostics

已验证Streamable HTTP可网页运行网页搜索与抓取开发者工具安全与监控

概览

AI 生成的概览

远程 MCP 服务器,可审计公开网址的 SEO、AI 搜索、安全、密钥泄露与速度问题,并在修复后复检。

可以做什么
  • 扫描公开网址,返回 0-100 评分、等级以及每项未通过或警告检查的编号、详情与修复建议
  • 部署修复后重新扫描,按检查编号报告是否已通过,并给出新旧评分与是否全部修复
  • 通过分享链接中的 slug 读取已保存的报告,无需重新扫描
适用场景
适合在编码代理上线站点或预览部署后做审计并验证修复是否真正生效,也适合在他人分享 Web Scan 报告链接时查看结果。每次扫描只覆盖一个页面,且面向公开站点。
运行要求
远程 Streamable HTTP 端点;MCP 服务器本身无需 API 密钥或注册。被扫描的网址必须可公开访问,不支持 localhost 和私有网络。按 IP 有公平使用限流;在网站登录可获得更高额度与可分享的已保存报告。
安装前请注意
扫描只是被动读取公开站点已提供的内容,但结果可能暴露站点 JavaScript 中的真实密钥,应把报告内容视为敏感信息。报告两周后过期,可分享的报告链接仅在已登录请求时生成。按 IP 限流。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Web Scan,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.ankitkumarjha515%2Fweb-scan/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "web-scan": {
      "type": "http",
      "url": "https://preflight-api.agentmarket.lol/api/mcp"
    }
  }
}

README

Web Scan

Your coding agent shipped it. Web Scan checks it.

One call audits any live URL in about 5 seconds: 85 checks across SEO, AI search (GEO), security headers, leaked API keys, Core Web Vitals and accessibility. Every finding comes with the exact fix, ranked by how many points it is worth. Then your agent fixes it and verifies the fix on the live site, without you re-running anything.

Free. No sign-up. No API key. Works as an MCP server, a GitHub Action, a CLI and on the web.

scan_url  →  fix  →  deploy  →  verify_fixes  →  allFixed: true

Why agents use it

  • Built for the agent loop. scan_url finds what is wrong, verify_fixes proves each fix landed in production, per check id. No screenshots to read, no dashboards to click.
  • Fixes, not findings. Each failing check returns its id, what was found on the page, and a concrete fix. Findings are ranked by real score gain (the report is re-scored with that one fix applied), so the agent works in the order that matters.
  • Catches what AI-built apps leak. Reads the JavaScript the site serves to every visitor and finds live secret keys (OpenAI, Anthropic, Stripe, AWS, GitHub, Slack, SendGrid, database URLs, private keys) and Supabase service_role keys. Every match gets a second look that drops placeholders and docs examples, so a red result is a real leak.
  • Sees the page the way AI search does. Shows what ChatGPT, Claude and Perplexity crawlers actually receive (no JavaScript), which AI bots robots.txt lets in, and whether the page answers the questions buyers ask.
  • Honest scoring. One number from three parts (search and sharing, security, speed), capped when a critical check fails, next to a benchmark of 25 well-known sites. Missing security headers are hardening notes, not holes. Unsure findings say "needs checking".
  • Safe to point at anything public. Passive only: it reads what the site already serves and never probes hidden paths. Text from scanned pages is returned as data, never as instructions.

MCP server

Remote, stateless, Streamable HTTP. No key needed.

https://preflight-api.agentmarket.lol/api/mcp

Claude Code

bash
claude mcp add --transport http web-scan https://preflight-api.agentmarket.lol/api/mcp

Cursor (~/.cursor/mcp.json), Windsurf, VS Code (.vscode/mcp.json, key servers)

json
{  "mcpServers": {    "web-scan": { "url": "https://preflight-api.agentmarket.lol/api/mcp" }  }}

Codex (~/.codex/config.toml)

toml
[mcp_servers.web-scan]url = "https://preflight-api.agentmarket.lol/api/mcp"

Tools

ToolWhat it does
scan_urlFresh audit of a public URL: score 0-100, grade, every failing or warning check with id, detail and fix, and fullReportUrl for the complete interactive report. 5-15 s.
verify_fixesRe-scan after a deploy and report per check id whether it now passes, the new and previous score, what is still failing, and allFixed.
get_reportRead a shared report (web-scan.agentmarket.lol/r/<slug>) without re-scanning.

Try it in your agent:

Scan https://my-app.com with Web Scan, fix everything in this repo in order of points, and verify the fixes once I deploy.

GitHub Action

Fail the build when a deploy makes the site worse.

yaml
- uses: ankitkumarjha515/web-scan@v1  with:    url: https://my-app.com    min-score: 85        # fail below this score    fail-on: score       # score | failures | any | never

Writes a summary table to the job page, with a link to the full interactive report. Pair it with a preview deployment to catch problems before they reach production.

CLI

No dependencies, Node 18+.

bash
node bin/web-scan.mjs https://my-app.com --min-score 90node bin/web-scan.mjs https://my-app.com --fail-on failures --json

Exit code 0 passes, 1 fails the gate, 2 means the scan could not run. Every run ends with a link to the full report on the website: charts, the AI search view, link previews and a live speed test.

What it checks

AreaExamples
Search basicstitle, description, canonical, headings, language, structured data validity, hreflang
AI search (GEO)text without JavaScript, GPTBot / ClaudeBot / PerplexityBot access, llms.txt, answer-ready sections, citability
Crawlabilitystatus, noindex, robots.txt (including rules that block this exact page), sitemap, soft 404s, redirects
Sharingog:image that actually loads, titles and descriptions for X, LinkedIn, Slack and WhatsApp previews
SecurityHTTPS, HSTS, CSP strength, cookies, CORS, mixed content, framing
Leaked secretsprovider keys and database URLs in served JavaScript, Supabase service_role, source maps, debug builds
Speedserver response, page weight, render-blocking files, fonts, caching, plus Core Web Vitals on demand
Images and accessibilityalt text, sizes, lazy loading, formats, zoom, labels, landmarks

Every report also says what kind of site it is (shop, local business, software, publisher, agency), the basics that kind of site needs, and what the scan covered and what it could not see.

Whole-site audits, competitor comparison, hourly monitoring and a README badge are on the website.

Limits

  • Public URLs only: no localhost or private networks. Use a preview deployment.
  • Fair-use rate limits per IP; sign in on the website for higher limits.
  • One page per scan_url call; use the website for whole-site crawls.

License

MIT for this repository (Action, CLI, registry metadata). The scanner itself runs as a hosted service.

来源:README.md,提交 8de8a99

工具

3

scan_url

Scan a URL

Run a fresh Web Scan audit of a public URL and return its score (0-100), grade, and every failing or warning check with its id, title and fix: the result is complete in itself. reportUrl is a shareable link only when the request carries a signed-in Web Scan token (reports are saved for signed-in users only); otherwise it is null and nothing is stored. fullReportUrl is always present: the full report on the website, to share with the user. Use this first, to find out what to fix on a live page. Takes about 5-15 seconds. Cannot scan localhost or private networks; use a deployed or preview URL.

输入参数url必填

verify_fixes

Verify fixes

Re-scan a URL after you deployed fixes and report, per check id, whether it now passes (fixed: true), plus the new score, the previous score, what is still failing with its fix, and allFixed. Use this after a change reaches production (or a public preview) instead of asking the user to re-scan. Pass the check ids from the scan or fix prompt; with none, every failing or warning check is returned. If a fix you made still shows fixed: false, the deploy may not be live yet or a CDN may be serving a cached page: wait about a minute and call again before concluding the fix failed.

输入参数url必填checks

get_report

Get a stored report

Read a stored Web Scan report by its slug (the part after /r/ in a web-scan.agentmarket.lol/r/<slug> link) without re-scanning: score, grade, scan time and the failing or warning checks with fixes. Use this when the user shares a report link. Reports expire after two weeks; to check the current state of a site, use scan_url or verify_fixes instead.

输入参数slug必填

版本历史

1
  1. v1.0.0最新Oct 21, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Scan 集成