sitehealth-mcp
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., "@sitehealth-mcpaudit the health of example.com"
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.
SiteHealth MCP
Full website health audit in one MCP tool call. Zero API keys required.
One call. Six checks. Scored report.
One-click install: Install on MCPize |
npx sitehealth-mcp
Features
SSL Certificate — validity, expiry, issuer, protocol, SANs
DNS Health — A/AAAA/MX/NS/CNAME/TXT/SOA, IPv6, resolution time
Email Auth — DMARC, SPF, DKIM validation with fix recommendations
Page Performance — TTFB, load time, page weight, compression, caching
Uptime — HTTP ping with response time
Broken Links — extract and check page links for 4xx/5xx responses
Health Score — weighted 0-100 score with letter grade (A-F)
Related MCP server: mcp-check-links
Quick Start
{
"mcpServers": {
"sitehealth": {
"command": "npx",
"args": ["-y", "sitehealth-mcp"]
}
}
}Then ask your AI agent:
"Audit the health of example.com"
Tools
Tool | Description |
| Full audit — all 6 checks, scored report |
| SSL cert validity and expiry |
| DNS records and resolution |
| DMARC/SPF/DKIM validation |
| TTFB, load time, page weight |
| HTTP ping + response time |
| Broken link detection |
Free vs Pro
Tool | Free | Pro ($19/mo) |
| Yes | Yes |
| Yes | Yes |
| - | Yes |
| - | Yes |
| - | Yes |
| - | Yes |
| - | Yes |
Free tier gives you SSL and DNS checks. Pro unlocks the full 6-check audit with A-F scoring, email authentication, performance, uptime, and broken link detection.
Upgrade to Pro on MCPize — $19/mo or $190/yr.
Example Output
{
"url": "https://example.com",
"overallScore": 82,
"overallGrade": "B",
"criticalIssues": [
"No DMARC record — required by Gmail/Yahoo/Microsoft for deliverability"
],
"warnings": [
"SSL certificate expires in 28 days — renew soon",
"2 broken links found out of 47 checked"
],
"recommendations": [
"Add a DMARC record: v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com",
"Enable gzip/brotli compression to reduce transfer size"
]
}How It Works
All checks use Node.js builtins (tls, dns/promises, fetch) — no external API keys, no costs, no rate limits.
audit_site("example.com")
├── SSL check (tls socket) → cert validity, expiry
├── DNS check (dns/promises) → record resolution
├── Email auth (DNS TXT lookups) → DMARC, SPF, DKIM
├── Performance (timed fetch) → TTFB, page weight
├── Uptime (HEAD request) → reachability
└── Broken links (page crawl) → link validation
↓
Weighted score (0-100) + grade (A-F) + recommendationsScoring Weights
Check | Weight |
SSL | 20% |
Performance | 20% |
Uptime | 20% |
Email Auth | 15% |
Links | 15% |
DNS | 10% |
Install
MCPize (Recommended)
One-click install with managed hosting: Install on MCPize
npm
npx sitehealth-mcpLicense
MIT — Built by Freedom Engineers
Related
SelfHeal MCP — Self-healing proxy for MCP servers
LeadEnrich MCP — Waterfall lead enrichment
Available Tools
7 toolsaudit_siteFull Site Health AuditARead-only
Run a comprehensive website health audit — SSL, DNS, DMARC/SPF/DKIM, page performance, uptime, and broken links. Returns a 0-100 health score with letter grade, critical issues, warnings, and actionable recommendations. All checks run in parallel for speed.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Website URL or domain to audit (e.g. 'https://example.com' or 'example.com') | |
| checkLinks | No | Include broken link check (adds ~10-20s). Default: true | |
| maxLinks | No | Max links to check for broken links. Default: 50 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds behavioral context like parallel checks, return value structure (score, grade, issues, recommendations), and performance implications. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The main purpose is front-loaded, followed by return value and performance note. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given sibling tools exist, the description effectively differentiates. Return values are described in detail. No output schema, so description handles that well. Missing error scenarios or limitations, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already clear. The description adds value by noting that checkLinks adds ~10-20s and default is true, and maxLinks has a default of 50, which helps in selecting parameter values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Run a comprehensive website health audit' with specific components (SSL, DNS, etc.), clearly distinguishing from sibling tools that check individual aspects. The verb and resource are explicit and unique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies using this for a full audit instead of individual checks, but does not explicitly state when to use or not use alternatives. The mention of parallel execution for speed aids decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_dnsDNS Health CheckARead-only
Resolve all DNS records (A, AAAA, MX, NS, CNAME, TXT, SOA) and check for IPv6 support, MX records, nameserver redundancy, and resolution time.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Website URL or domain to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds value by detailing the specific checks performed (IPv6, MX records, nameserver redundancy, resolution time) and the record types resolved, which goes beyond the annotation. However, it does not mention potential timeouts or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the full scope of the tool. It front-loads the main action ('Resolve all DNS records') and lists the checks, with no redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and no output schema, the description covers what the tool does but does not describe the return format or any limitations (e.g., whether it returns raw records or a summary). It is adequate but could include a note about the output to be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter 'url' with a description ('Website URL or domain to check'), covering 100% of parameters. The tool description explains the overall operation but does not add specific meaning or constraints to the parameter itself, such as accepted formats or handling of relative URLs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it resolves all common DNS record types (A, AAAA, MX, NS, CNAME, TXT, SOA) and checks for IPv6 support, MX records, nameserver redundancy, and resolution time. The verb 'resolve' and the list of record types make the purpose specific and distinct from sibling tools like check_ssl or check_uptime.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that the tool is for comprehensive DNS health checks, but it does not explicitly state when to use it versus alternatives or when not to use it. For example, it does not clarify if it should be used when only a specific record type is needed. The sibling tool names provide some context, but no direct guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_email_authEmail Authentication CheckARead-only
Validate DMARC, SPF, and DKIM records for a domain. Checks for common misconfigurations, missing records, and provides fix recommendations. DMARC is now mandatory for Gmail/Yahoo/Microsoft.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Website URL or domain to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, and the description aligns by describing validation and recommendations without mention of destructive actions. It adds context beyond annotations (e.g., mandatory DMARC requirement).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no fluff. The purpose is front-loaded, and every sentence provides essential information (what it does, what it checks, a relevant note).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and no output schema, the description is complete. It covers the full scope of the tool's functionality and adds practical context about mandatory DMARC, making it self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes the parameter 'url' as 'Website URL or domain to check'. The description adds meaning by specifying it checks email authentication records, which clarifies the domain extraction logic. Baseline 3 due to high schema coverage, but description adds value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it validates DMARC, SPF, and DKIM records for a domain, checks for misconfigurations, and provides fix recommendations. This distinguishes it from sibling tools like audit_site or check_dns which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for checking email authentication but does not explicitly state when to use versus alternatives like check_dns. No exclusion criteria or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_linksBroken Link CheckARead-only
Extract links from a page and check each for broken responses (4xx/5xx). Returns broken links with status codes and the page they were found on.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Website URL to check for broken links | |
| maxLinks | No | Maximum links to check. Default: 50 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description adds context by detailing the process (extraction and checking) and the return of broken links with status codes and source page. However, it does not disclose potential behavioral traits like timeout handling or redirect following beyond what is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the tool's purpose, and contains no extraneous information. Every word contributes to clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 parameters and no output schema, the description explains the input (URL), the process, and the output (broken links with status codes and page location). It lacks details on edge cases like redirects or link depth, but it is sufficient for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to add parameter details. It does not provide extra meaning beyond the schema, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly specifies the verb 'extract and check', the resource 'links from a page', and the condition 'broken responses (4xx/5xx)'. It also states the output format, distinguishing it from sibling tools that cover different aspects of site auditing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for broken link checking but provides no explicit guidance on when to use this tool over siblings like audit_site or check_performance. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_performancePage Performance CheckARead-only
Measure TTFB, total load time, page weight, redirect chain, compression, and cache headers. Returns performance grade with specific optimization recommendations.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Website URL to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint: true) indicate no destructive side effects. The description adds context by listing specific metrics measured and the type of output (grade with recommendations). This aligns with annotations and provides useful behavioral details beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the key actions (measure, returns) without waste. Every sentence adds unique value; concise and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter and no output schema, the description adequately explains the tool's purpose and output (performance grade with recommendations). It could benefit from mentioning grading scale or units, but is sufficiently complete for the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'url' is described in the input schema as 'Website URL to check'. The description does not add any extra meaning or format requirements beyond the schema. With 100% schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool measures TTFB, load time, page weight, redirect chain, compression, and cache headers, and returns a performance grade with recommendations. It distinguishes itself from sibling tools like check_dns and check_ssl by focusing on page performance metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for evaluating page performance but does not explicitly state when to use this tool over siblings (e.g., vs. audit_site). No exclusions or alternatives are provided, relying on natural distinction from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_sslSSL Certificate CheckARead-only
Check SSL/TLS certificate validity, expiry date, issuer, protocol version, and SANs. Returns a grade (A-F) based on days until expiry and cert validity.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Website URL or domain to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so the description appropriately adds behavioral context by specifying the output (grade A-F) and the metrics considered (expiry, validity). It does not contradict annotations and provides reasonable transparency for a read-only tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the purpose ('Check SSL/TLS certificate validity') and includes key details without unnecessary words. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, read-only), the description provides adequate context for selection and invocation. It covers the grade output and certificate aspects, though a brief note on failure modes could enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a description for the 'url' parameter. The tool description does not add further semantic meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks SSL/TLS certificate validity, expiry date, issuer, protocol version, and SANs, using a specific verb and resource. It distinguishes from sibling tools (e.g., check_dns) by focusing on certificate data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention when not to use it or any prerequisites. The context of sibling tools is present but not leveraged for differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_uptimeUptime CheckARead-only
HTTP ping to check if a site is reachable and measure response time.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Website URL to ping |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's mention of 'HTTP ping' and 'measure response time' adds minor context. However, it does not disclose details like timeout behavior or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with 14 words. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 param, no output schema), the description is adequate but incomplete. It omits the return format (e.g., boolean, response time) which would be needed for invocation confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3 applies. The description adds no additional meaning beyond the schema's 'Website URL to ping'—it does not specify format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'ping' and resource 'site reachability' along with measuring response time, clearly distinguishing it from sibling tools that handle DNS, SSL, or performance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus siblings like check_performance or check_links. The agent is left to infer usage without explicit context.
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.
7 tool updates
v0.1.1- First observed
audit_site - First observed
check_dns - First observed
check_email_auth - First observed
check_links - First observed
check_performance - First observed
check_ssl - First observed
check_uptime
TDQS
Scored across 7 tools
Each tool targets a distinct aspect of site health: comprehensive audit, DNS, email auth, links, performance, SSL, and uptime. No overlap in purpose.
All tools follow a consistent verb_noun pattern (audit_site, check_dns, etc.), making them predictable and easy to understand.
Seven tools is well-scoped for a site health server, covering all major areas without excess or deficiency.
The tools cover all core site health checks (SSL, DNS, email auth, links, performance, uptime) plus a comprehensive audit. Minor omissions like security headers but overall very complete.
Maintenance
Related MCP Connectors
Free website analyzer: score any public URL 0-100 across 8 quality dimensions. No auth.
Rule-based site audits: accessibility, SEO, security headers, performance. Metered per call.
AI website audit: security, SEO, performance, UX and accessibility checks with actionable fixes.
DNS lookups, health reports, SSL certs, security scans, GEO scoring, uptime checks
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables web audits for performance, security, SEO, and DNS, returning structured improvement prompts for AI assistants.5 npmMIT
- AlicenseAqualityDmaintenanceAnalyzes websites for broken links, missing meta tags, and redirect chains, returning a health score and actionable suggestions.130 npm1MIT
- AlicenseAqualityBmaintenanceEnables live website health checks including TLS, HTTPS, and security headers, returning an A-F grade with specific fixes.2MIT
- AlicenseAqualityDmaintenanceAnalyzes websites for broken links, missing meta tags, and redirect chains. Returns a structured report with a health score and fix suggestions.127 npmMIT