Skip to main content
Glama
Baneado98

web-doctor

by Baneado98

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.

Related MCP server: Webby MCP Server

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

Available Tools

2 tools
check_manyA

Run the live web health & security check on several domains/URLs at once and return one A–F grade per site. Useful to audit a fleet of sites or compare deployments.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetsYesList of domains or URLs to check.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full responsibility for behavioral disclosure. It mentions it is a 'live' check returning 'A–F grade', but does not address potential side effects, rate limits, or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences, no filler. It front-loads the action and purpose effectively.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description partially covers return format ('A–F grade per site') and usage context. However, it lacks details on error handling, speed, or edge cases, leaving gaps for a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a description for the sole parameter. The tool description adds no new semantic detail beyond restating 'several domains/URLs'. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Run', the resource 'live web health & security check', and the scope 'several domains/URLs at once'. It distinguishes from the sibling tool 'check_website_health' by implying aggregation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context by stating it is 'useful to audit a fleet of sites or compare deployments', which implicitly guides when to use it over a single-site check. However, it lacks explicit exclusions or alternative comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_website_healthA

Run a LIVE web health & security check on a domain or URL and return an A–F grade with concrete fixes. Performs a real TLS handshake to read the SSL/TLS certificate (validity, trusted issuer, hostname match, days-to-expiry, self-signed detection), determines the negotiated TLS protocol version, checks whether plain HTTP redirects to HTTPS, evaluates the standard security response headers (Strict-Transport-Security/HSTS, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy), and measures basic availability and latency. Use this before launching a site, when auditing a deployment, or to verify a domain you are about to trust. The check is read-only β€” it never logs in or modifies the target.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesA domain (e.g. 'example.com') or full URL (e.g. 'https://example.com'). http(s):// is optional.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It thoroughly discloses all behaviors: read-only, never logs in or modifies target, performs TLS handshake, checks certificate validity, protocol version, redirects, security headers, and latency. This exceeds typical transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately long but well-structured, with each sentence adding specific value. It could be slightly more concise, but it is not verbose and clearly communicates the tool's functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a security check tool with many sub-checks and only one parameter, the description fully covers what the tool does, what it returns (grade, fixes), and its read-only nature. No output schema is needed as the return is explained adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes the target parameter as a domain or full URL with 100% coverage. The description adds minimal extra meaning beyond stating that http(s):// is optional. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it performs a live web health and security check on a domain or URL, returning an A–F grade with concrete fixes. It lists specific checks (TLS, redirects, headers) and distinguishes from the sibling tool 'check_many' by focusing on a single target.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage scenarios: 'before launching a site, when auditing a deployment, or to verify a domain you are about to trust.' It does not explicitly mention when not to use or directly reference the sibling, but the context implies it's for single-target checks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv0.1.1
    • First observedcheck_many
    • First observedcheck_website_health

TDQS

A3.9/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: check_website_health performs a detailed check on a single domain, while check_many runs a batch check on multiple domains. There is no overlap.

Naming Consistency4/5

Both tool names start with 'check_' but 'check_many' uses a quantifier instead of a noun, deviating from the typical verb_noun pattern seen in check_website_health. Still, the pattern is consistent overall.

Tool Count3/5

With only two tools, the server covers single-domain and batch checks, but the scope feels minimal. A few more specialized tools (e.g., SSL-only check) would make the set more robust, but the current count is functional.

Completeness4/5

The single check tool is comprehensive, covering TLS, headers, redirects, and latency. The batch tool adds value. Missing are tools for specific subchecks, but the core workflow of auditing and comparing sites is well-covered.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables ethical security testing and attack surface management through SSL certificate validation, CVE queries, subdomain enumeration, security header analysis, and comprehensive reconnaissance capabilities. Designed for authorized penetration testing workflows with responsible disclosure practices.
    -
  • A
    license
    B
    quality
    Not graded
    maintenance
    Provides comprehensive website validation across performance, accessibility, SEO, and security dimensions using multiple testing services including WebPageTest, Google PageSpeed Insights, Axe DevTools, Mozilla Observatory, and SSL Labs. Enables automated website health assessments through browser automation and API integrations.
    12
    3 npm
    1
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    Passive website security and trust auditor that checks for security, SEO, AI surface, email, and other exposures, producing a score and remediation plan.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables auditing of websites for performance, SEO, accessibility, security, and mobile readiness, with tools to validate URLs, run page audits, save results, and retrieve reports.
    1
    -