Website Audit 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., "@Website Audit MCPaudit https://example.com and tell me what's hurting its SEO"
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.
website-audit-mcp
An MCP server (stdio) that fetches a web page over HTTP and scores it in five categories: performance, SEO, design, functionality and technology. It uses plain HTTP requests and cheerio. It needs no browser, no database and no API key.
What it checks
Category | Checks (weight in overall score) |
performance (25) | response time, HTML size, compression header, number of external scripts, redirects, HTTP status |
seo (25) | title, meta description, |
design (20) | viewport meta tag, favicon link, deprecated presentational elements, charset, inline styles, table count |
functionality (15) | links present, empty or |
technology (15) | HTTPS, TLS validity and expiry, security headers, server version disclosure, CMS and library detection |
Scores are 0-100. The overall score is the weighted average. Only the HTML document is analyzed; linked assets are not downloaded and JavaScript is not executed, so pages rendered client-side are scored on their initial HTML.
Related MCP server: webcheck-mcp
Input limits
Only
http:andhttps:URLs. URLs with embedded credentials are refused.Hosts that resolve to loopback, private, link-local or otherwise reserved addresses are refused. Every redirect target is checked again, and the connection uses the validated address.
10 s timeout, 2 MB body cap (the body is truncated and reported as
truncated), at most 5 redirects.compare_websitestakes 2 to 10 URLs.
Install
git clone <this repository>
cd website-audit-mcp
npm install
npm run buildRequires Node.js 18 or newer.
Configure
Claude Code:
claude mcp add website-audit -- node /absolute/path/to/website-audit-mcp/dist/index.jsClaude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"website-audit": {
"command": "node",
"args": ["/absolute/path/to/website-audit-mcp/dist/index.js"]
}
}
}Setting WEBSITE_AUDIT_ALLOW_PRIVATE=1 disables the private-host check. It exists for the test suite and should not be set otherwise.
Tools
audit_website
Input:
{ "url": "string (http or https URL)" }Output (JSON text): url, finalUrl, status, scores (performance, seo, design, functionality, technology, overall), findings[] (category, severity of info|warning|error, message), detected (cms, frameworks, server), metrics (responseTimeMs, htmlBytes, truncated, redirects).
compare_websites
Input:
{ "urls": ["string", "string"] }Output (JSON text): ranked[] (rank, url, overall, scores) sorted by overall score, highest first, and errors[] (url, error) for URLs that were refused or failed.
Invalid input returns a tool result with isError: true and a message.
Example
audit_website with {"url": "https://example.com"} (findings shortened):
{
"url": "https://example.com",
"finalUrl": "https://example.com/",
"status": 200,
"scores": { "performance": 100, "seo": 60, "design": 100, "functionality": 75, "technology": 84, "overall": 84 },
"findings": [
{ "category": "performance", "severity": "info", "message": "Response time 67 ms" },
{ "category": "seo", "severity": "error", "message": "Missing meta description" },
{ "category": "seo", "severity": "error", "message": "No <h1>" },
{ "category": "functionality", "severity": "warning", "message": "No links on the page" },
{ "category": "technology", "severity": "info", "message": "TLS valid (TLSv1.3), 55 days until expiry" },
{ "category": "technology", "severity": "warning", "message": "No Strict-Transport-Security header" }
],
"detected": { "cms": null, "frameworks": [], "server": "cloudflare" },
"metrics": { "responseTimeMs": 67, "htmlBytes": 577, "truncated": false, "redirects": 0 }
}Development
npm test # builds, then runs unit tests and the stdio end-to-end test
npx tsc --noEmit # type checkThe tests use a local HTTP server as a fixture. The end-to-end test starts the built server over stdio and talks to it with the SDK client.
Limitations
The scoring rules are fixed heuristics, not measurements from a browser. They do not replace Lighthouse.
Only the single URL given is fetched. No other pages of the site are crawled.
License
MIT, see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Free website analyzer: score any public URL 0-100 across 8 quality dimensions. No auth.
Checks a public website in six areas and returns scores from 0 to 100. Free, no key needed.
HTTP, DNS, SSL, WHOIS, ping, security-header, SEO and AI-readiness checks for any website.
The website checker for AI agents. One call: verdict, score out of 100, fix list.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceMCP server for website SEO + GEO analysis. Scan any URL to get scores across 5 categories (SEO, GEO, Performance, Security, Accessibility) with actionable fix recommendations. Enables AI coding assistants to audit websites and implement fixes autonomously.-
- AlicenseNot gradedqualityDmaintenanceWebsite health checker MCP server - SEO audit, accessibility scan, broken link detection, performance analysis, and page comparison.48 npm3MIT
- AlicenseAqualityCmaintenancePerforms comprehensive website health audits including SSL, DNS, email authentication, performance, uptime, and broken link checks, all without requiring API keys. Returns a scored report with weighted metrics and actionable recommendations.743 npmMIT
- AlicenseAqualityDmaintenanceAnalyzes websites for broken links, missing meta tags, and redirect chains, returning a health score and actionable suggestions.127 npm1MIT