web-doctor

web-doctor

Enables live website health checks including TLS, HTTPS, and security headers, returning an A-F grade with specific fixes.

Category
Visit Server

README

web-doctor 🩺

Give it a domain, get an A–F health grade for its TLS, HTTPS and security headers β€” checked live.

web-doctor opens a real TLS connection to the target and fetches its HTTP headers, then grades:

  • πŸ” TLS certificate β€” validity & trusted issuer, hostname (SAN) match, days until expiry, self-signed / expired detection
  • 🧩 TLS version β€” flags obsolete TLS 1.0/1.1; notes TLS 1.2 vs the stronger TLS 1.3
  • β†ͺ️ HTTPS upgrade β€” does plain http:// 301-redirect to https://?
  • πŸ›‘οΈ Security headers β€” Strict-Transport-Security (HSTS), Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy β€” present and well-formed
  • ⚑ Availability β€” HTTP status & response latency

…and returns a single A–F grade with a concrete fix for every issue.

It is read-only: it never logs in or changes anything on the target.

Why an MCP / API and not just a script?

An LLM agent can't open a socket or finish a TLS handshake on its own. web-doctor does the live network work server-side and hands back a clean, graded verdict β€” so an agent (or a CI step) can audit a deployment in one call.

Use it as an MCP server (free)

{
  "mcpServers": {
    "web-doctor": { "command": "npx", "args": ["-y", "web-doctor-mcp"] }
  }
}

Tools:

  • check_website_health β€” { "target": "example.com" }
  • check_many β€” { "targets": ["example.com", "github.com"] }

Or connect over HTTP at POST https://web-doctor.vercel.app/mcp.

Free HTTP API

GET https://web-doctor.vercel.app/check?target=example.com
GET https://web-doctor.vercel.app/check?target=https://github.com
GET https://web-doctor.vercel.app/check_many?targets=example.com,github.com,vercel.com

Rate-limited to 30 requests/hour/IP.

Pay-per-call (x402) β€” no sign-up, no API key

The /pro/* routes are gated by x402. Your agent pays $0.02 USDC per call automatically and gets the result. Settles on-chain (Base) to the operator wallet.

GET https://web-doctor.vercel.app/pro/check?target=<domain>        # 402 β†’ pay β†’ result
GET https://web-doctor.vercel.app/pro/check_many?targets=...        # up to 50 targets

Example output

🟒 A  β€”  github.com  (health score 96/100)
A β€” github.com is healthy: valid certificate, HTTPS enforced and the key security headers are in place.

TLS / certificate:
  β€’ Protocol: TLSv1.3  cipher=TLS_AES_128_GCM_SHA256  handshake=84ms
  β€’ Certificate: valid & trusted  issuer=CN=Sectigo ...  expires in 220d

HTTP:
  β€’ Status 200  latency=140ms  server=github.com
  ‒ HTTP→HTTPS redirect: yes

Security headers:
  βœ… Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
  βœ… Content-Security-Policy: default-src 'none'; ...
  βœ… X-Frame-Options: deny
  βœ… X-Content-Type-Options: nosniff
  βœ… Referrer-Policy: ...
  βœ… Permissions-Policy: ...

Develop

npm install
npm run build
npm run test:engine        # live smoke test
npm run dev:http           # local server on :8080 (payments default ON; set X402_ENABLED=false to disable)
npm run dev:mcp            # stdio MCP server

Environment (deploy)

Var Purpose
X402_PAYTO receiving wallet (default set)
X402_NETWORK base (default)
X402_PRICE $0.02 (default)
X402_FACILITATOR_URL mainnet facilitator that settles on the chosen network (required to actually collect on mainnet)
X402_ENABLED false to disable paid routes

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured