Skip to main content
Glama

hosting-doctor-mcp

An MCP server that diagnoses web hosting and server problems by combining live diagnostic checks (HTTP, SSL, DNS, security headers) with a RAG-searchable knowledge base of troubleshooting notes, stored in Weaviate.

Point Claude, Cursor, or any other MCP client at a URL and a symptom ("visitors see a blank white page", "certificate warning in the browser", "site went down after I changed nameservers") and it gets back live evidence plus the most relevant troubleshooting notes — then reasons over both to explain what's actually wrong, instead of guessing from the symptom text alone.

Why this exists

Most "AI + hosting" tools fall into one of two buckets: an official API wrapper (DigitalOcean, WordPress, and Weaviate all already ship their own MCP servers for CRUD-style operations against their own platforms), or a generic Lighthouse/PageSpeed wrapper (several of these already exist too). Neither actually diagnoses anything — they just expose an API.

hosting-doctor-mcp is a synthesis tool instead: it runs the live checks and retrieves the relevant troubleshooting context in one call, then leaves the actual reasoning to the calling agent, which has the full conversation and can explain the result in plain language. That retrieval-not-generation split is deliberate — the tool's job is to gather evidence, not to write the final answer.

Related MCP server: nslookup.io MCP Server

Tools

Tool

What it does

check_http_status

Live HTTP request: status code, latency, full redirect chain

check_ssl

Live TLS handshake: issuer, validity window, days until expiry, SANs

check_dns

Live DNS lookups: A / AAAA / CNAME / MX / TXT / NS

check_security_headers

Checks response headers against CSP / HSTS / X-Content-Type-Options / X-Frame-Options / Referrer-Policy / Permissions-Policy

search_troubleshooting_kb

Hybrid vector + keyword search over a curated knowledge base of hosting issues

diagnose

Orchestrator: runs all four live checks and a KB search in parallel, returns one structured report

The knowledge base (kb/*.md) currently covers 17 issues: 502/504 gateway errors, mixed content warnings, WordPress white screen of death, DNS propagation delays, SSL chain issues, CORS errors, high TTFB, redirect loops, CDN cache staleness, PHP memory limit errors, 429 rate limiting, Let's Encrypt renewal failures, generic 500 errors, email deliverability (SPF/DKIM/DMARC), disk space exhaustion, connection-refused/port issues, and database connection pool exhaustion. Each note is frontmatter (title, tags, symptoms) plus a short cause-and-fix body — see kb/ to read or extend them.

Architecture

MCP client (Claude Desktop / Cursor / Claude Code)
        │  stdio (JSON-RPC)
        ▼
hosting-doctor-mcp server (Node + TypeScript, @modelcontextprotocol/sdk)
    ├── check_http_status / check_ssl / check_dns / check_security_headers
    │     → Node built-ins only (fetch, tls, dns/promises) — zero external deps
    │
    └── search_troubleshooting_kb / diagnose
          → Weaviate Cloud (hybrid search, text2vec-weaviate hosted embeddings)

The four live-check tools have no external dependencies and work immediately. The KB search depends on a Weaviate Cloud sandbox — see setup below.

Setup

1. Install and build

git clone https://github.com/huzaifashuja/hosting-doctor-mcp.git
cd hosting-doctor-mcp
npm install
npm run build

The KB search and diagnose tools need a Weaviate Cloud sandbox (free tier is enough):

  1. Create a free sandbox cluster at console.weaviate.cloud.

  2. Copy .env.example to .env and fill in WEAVIATE_URL and WEAVIATE_API_KEY from the sandbox's dashboard.

  3. Ingest the knowledge base:

    npm run ingest

Without this step, the four live-check tools still work fine — search_troubleshooting_kb and diagnose will just report the KB as unavailable.

3. Connect it to an MCP client

Claude Desktop — add to claude_desktop_config.json:

{
  "mcpServers": {
    "hosting-doctor": {
      "command": "node",
      "args": ["/absolute/path/to/hosting-doctor-mcp/dist/src/index.js"],
      "env": {
        "WEAVIATE_URL": "https://your-cluster-id.weaviate.network",
        "WEAVIATE_API_KEY": "your-weaviate-api-key"
      }
    }
  }
}

Cursor — add the same shape to .cursor/mcp.json in your project (or the global Cursor MCP config).

Claude Codeclaude mcp add hosting-doctor -- node /absolute/path/to/hosting-doctor-mcp/dist/src/index.js

4. Try it

Ask your MCP client something like:

My site example.com is showing a certificate warning, can you check what's wrong?

or

Diagnose why mysite.com is showing a blank white screen.

Development

npm run dev       # run the server directly with tsx (no build step)
npm run inspect   # build, then open the MCP Inspector for manual tool testing
npm run ingest    # re-ingest kb/*.md into Weaviate (safe to re-run)

Project structure

src/
  index.ts                 # MCP server entrypoint, tool registration
  tools/
    checkHttpStatus.ts
    checkSsl.ts
    checkDns.ts
    checkSecurityHeaders.ts
    searchKb.ts
    diagnose.ts
  lib/
    weaviateClient.ts       # Weaviate connection + collection schema
  types.ts
kb/
  *.md                      # curated troubleshooting notes
scripts/
  ingest.ts                 # chunks + upserts kb/*.md into Weaviate

License

MIT

Available Tools

6 tools
check_dnsCheck DNS RecordsA

Looks up live DNS records (A, AAAA, CNAME, MX, TXT, NS) for a domain. Use this to diagnose propagation delays, missing records, or misconfigured mail/DNS setups.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesThe domain to look up, e.g. example.com
recordTypeNoIf omitted, all supported record types are looked up

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description bears the full burden. It does disclose that the lookup is 'live' (no cache) and which record types are queried, which is useful. However, it does not describe behavior such as error handling, response format, or whether it follows CNAME chains, leaving some ambiguity for an agent.

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?

Two sentences with no filler. The primary action is front-loaded, and the use-case context is tucked into the second sentence. Every word earns its place.

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?

The tool is simple with two well-documented parameters, but there is no output schema and the description does not mention what the return data looks like (e.g., TTLs, resolved IPs, or a formatted record list). An agent might need to discover the output shape at runtime, so the definition is adequate but not fully complete.

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 description coverage is 100%: both 'domain' and 'recordType' have descriptions, and recordType has an enum. The description adds no extra parameter-level meaning beyond the schema, so it meets but does not exceed the baseline.

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 uses a specific verb ('Looks up'), names the resource ('DNS records'), and enumerates the record types (A, AAAA, CNAME, MX, TXT, NS). This clearly distinguishes check_dns from sibling tools like check_http_status, check_ssl, and check_security_headers, which target different aspects of a domain.

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 second sentence explicitly states when to use this tool: 'diagnose propagation delays, missing records, or misconfigured mail/DNS setups.' This provides clear context but does not mention when not to use it or name alternative tools, so it stops short of a 5.

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

check_http_statusCheck HTTP StatusA

Makes a live HTTP request to a URL and reports the status code, latency, and full redirect chain. Use this to check whether a site is up, slow, or stuck in a redirect loop.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL or hostname to check, e.g. https://example.com

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It states the tool makes a live network request and reports latency, status, and redirect chain. It does not mention timeouts, error handling, whether requests are followed, or that a live request can be slow—leaving some behavioral uncertainty.

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?

Two sentences with no filler. The core behavior and outputs are front-loaded, followed by concrete use cases. Every sentence earns its place.

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

Completeness4/5

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

For a single-parameter tool with no output schema, the description gives enough key information: what it checks, what it reports, and common use cases. It could be more complete by mentioning possible failure modes or timeouts, but the essentials are covered.

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 fully documents the url parameter with type and an example. The tool description references making a request to a URL but does not add significant semantic detail beyond the schema. Baseline 3 applies because schema coverage is 100%.

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 identifies the tool's action: making a live HTTP request to a URL. It also specifies the concrete outputs—status code, latency, and full redirect chain—which differentiates it from sibling tools like check_ssl, check_dns, or check_security_headers.

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 explicitly states when to use the tool: to check if a site is up, slow, or stuck in a redirect loop. However, it does not explicitly say when not to use it or mention alternatives, so it falls slightly short of the highest bar.

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

check_security_headersCheck Security HeadersA

Fetches a URL and checks its response headers against a standard security checklist (CSP, HSTS, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy), noting the risk for each missing header.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to check, e.g. https://example.com

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does disclose the key behavior: it fetches the URL, examines response headers only, and notes risk for missing headers. It could add caveats about timeouts or error handling, but the core side effect (outbound fetch) and output behavior are stated.

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?

One tightly written sentence with no filler. It front-loads the action, enumerates the checklist items, and states the risk output.

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

Completeness4/5

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

For a single-parameter tool with no annotations or output schema, the description covers the input, the action, the checklist, and the general output nature. It does not specify exact return formatting, but the missing-header risk behavior is enough for an agent to select and call it.

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%: the only parameter, url, is already described with an example. The tool description simply says 'fetches a URL' and adds no additional parameter-level guidance beyond what the schema provides, so 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 uses a specific verb and resource: it fetches a URL and checks response headers against a named security checklist. It is clearly distinct from siblings like check_http_status, check_ssl, and check_dns.

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?

It clearly implies when to use it: when security-related response headers need to be verified for a URL. It does not explicitly name sibling alternatives or exclusion conditions, but the specific checklist makes the intended context obvious.

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

check_sslCheck SSL/TLS CertificateA

Opens a live TLS connection to a hostname and reports certificate issuer, validity window, days until expiry, and subject alternative names. Use this to diagnose SSL warnings or expiry issues.

ParametersJSON Schema
NameRequiredDescriptionDefault
portNoPort to connect on (default 443)
hostnameYesThe hostname to check, e.g. example.com

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that the tool performs a live TLS connection and reports issuer, validity window, days until expiry, and SANs, which are meaningful behavioral traits. It does not mention failure modes or whether the certificate chain is validated, so it is not fully exhaustive.

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 two sentences with no filler. It front-loads the core operation and output, then immediately provides the intended use case. Every sentence earns its place.

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

Completeness4/5

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

There is no output schema, but the description lists the key returned fields, which provides the necessary return-value context. Combined with the schema-covered parameters, an agent can call the tool correctly. Missing edge-case behavior such as connection failures or validation semantics keeps it from a 5.

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 description coverage is 100%, so the schema already documents both hostname and port including the default port. The description adds little parameter-level meaning beyond what the schema provides, which matches the baseline of 3.

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 states a specific verb ('Opens a live TLS connection') and a precise resource ('a hostname'), and enumerates the exact certificate information returned. This clearly differentiates it from sibling tools like check_http_status, check_dns, and check_security_headers.

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 explicitly says 'Use this to diagnose SSL warnings or expiry issues,' giving a clear context for when to invoke the tool. It does not explicitly list when not to use it or name alternatives, so it falls just short of a 5.

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

diagnoseDiagnose Hosting IssueA

The main entry point: given a URL and a description of the symptom, runs every live check (HTTP status, SSL, DNS, security headers) in parallel alongside a knowledge-base search, and returns one structured report. Use this first for an open-ended 'why is my site doing X' question; use the individual check_* / search_troubleshooting_kb tools when you already know exactly what to check.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the site having problems, e.g. https://example.com
symptomYesA description of the problem being observed, e.g. 'visitors see a blank white page'

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden; it discloses that all live checks run in parallel, that a knowledge-base search is included, and that the output is a single structured report. It does not mention potential side effects or error behavior, but for a read-only diagnostic this is sufficient.

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?

Two sentences, with the main function front-loaded and the usage alternative in the second sentence. No filler.

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

Completeness4/5

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

For a tool with two simple parameters and no annotations, the description gives a good picture of scope, execution, and output. It stops short of detailing report contents or expected runtime, but an agent can call it correctly with the provided information.

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% and the description only echoes the two parameters without adding syntax or constraints beyond what the schema already provides. 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?

States a specific verb 'diagnose', identifies the resource (hosting issue via URL + symptom), and lists the exact checks run. Explicitly positions itself as the main entry point, distinguishing it from the check_* / search_troubleshooting_kb siblings.

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

Usage Guidelines5/5

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

Explicitly instructs to use this tool first for open-ended 'why is my site doing X' questions, and names the alternative tools for when the exact check is already known. This is a clear when/when-not directive.

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

search_troubleshooting_kbSearch Troubleshooting Knowledge BaseA

Searches a curated knowledge base of hosting/web-server troubleshooting notes (502/504 errors, mixed content, DNS propagation, SSL chain issues, CORS, rate limiting, and more) using hybrid vector + keyword search. Returns the most relevant notes for a described symptom.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return (default 5)
queryYesA description of the symptom or error, e.g. '502 bad gateway'

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It discloses that the search uses hybrid vector + keyword retrieval and that the results are the most relevant notes, which is useful. It does not detail output format, pagination, rate limits, or failure behavior, but none of those are critical for a simple, clearly read-only search tool.

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?

Two sentences with no wasted words. The main action and resource are front-loaded, the example topics are packed into a parenthetical that adds signal without bloat, and the return behavior is stated clearly.

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

Completeness4/5

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

For a two-parameter search tool with a fully documented schema and no output schema, the description is nearly sufficient. It covers what the tool searches, how the search works, and what it returns. The only gap is the absence of guidance on when to prefer it over the sibling 'diagnose' 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 description coverage is 100%, with both 'query' and 'limit' already described in the schema. The description reinforces the purpose of the query by mentioning 'described symptom' but does not add meaningful parameter details beyond what the schema provides, so the baseline 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 uses a specific verb ('Searches') and clearly identifies the resource: a curated knowledge base of hosting/web-server troubleshooting notes. It names concrete topics and states the return value, and it is implicitly distinguishable from sibling diagnostic tools because it retrieves documented notes rather than performing live checks.

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

Usage Guidelines3/5

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

The description implies usage when the agent has a symptom description and needs relevant knowledge-base notes, and the examples give a sense of applicability. However, it does not explicitly explain when to choose this tool over siblings like 'diagnose' or the specialized check tools, nor does it state any exclusions.

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. Dates show when Glama detected each change.

  1. 6 tool updatesv0.1.0
    • First observedcheck_dns
    • First observedcheck_http_status
    • First observedcheck_security_headers
    • First observedcheck_ssl
    • First observeddiagnose
    • First observedsearch_troubleshooting_kb

TDQS

A4.1/5.0
Disambiguation5/5

Each check_* tool targets a distinct infrastructure layer (HTTP, SSL, DNS, headers), and search_troubleshooting_kb covers knowledge lookup. The diagnose tool intentionally aggregates the others but is clearly positioned as the main entry point, reducing ambiguity.

Naming Consistency4/5

The majority of tools follow a clean check_<target> pattern, with search_troubleshooting_kb following a similar verb_noun structure. The one-off diagnose name is a minor deviation, but it is meaningful as the umbrella entry point and does not feel chaotic.

Tool Count5/5

Six tools is well-scoped for a hosting diagnosis server. Each live check is necessary, the knowledge base search adds a distinct capability, and diagnose ties them together without adding redundant tools.

Completeness4/5

The set covers the main hosting diagnostic areas: HTTP status/redirects, SSL validity, DNS records, security headers, and troubleshooting guidance. Minor gaps like port reachability, WHOIS lookups, or content inspection exist, but the core workflows are fully covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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
    A
    quality
    B
    maintenance
    Provides comprehensive tools for real-time DNS queries across 53 record types, global propagation checks, and SSL certificate analysis. It also enables domain security scans for SPF/DKIM/DMARC configurations and HTTP uptime monitoring.
    8
    88
    22
    Apache 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Enables live website health checks including TLS, HTTPS, and security headers, returning an A-F grade with specific fixes.
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables live TLS/SSL certificate health checks for any hostname, providing expiry, hostname match, trust verdict, and a health score. Supports both free and paid deep tiers with protocol/cipher analysis.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/huzaifashuja/hosting-doctor-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server