What is mcp-web-validator?
mcp-web-validator is an MCP server from DigestSEO. The local npm server validates HTML and CSS with W3C checkers, audits SEO and accessibility signals, checks JSON-LD syntax and links, and takes responsive screenshots. A hosted Streamable HTTP endpoint covers public HTML pages.
mcp-web-validator is the Web Validator by DigestSEO, an MCP server for HTML and CSS validation, technical SEO and accessibility checks, JSON-LD syntax validation, broken link checks and responsive screenshots. It is part of the DigestSEO suite of open source SEO tools.
The repository holds two separate surfaces: a local npm server over stdio for local clients, and a hosted app over Streamable HTTP for remote clients. They expose different tool sets, so pick the surface before you connect.
What changes in your agent's output
- Markup goes through the W3C Nu HTML Checker and CSS goes through the Jigsaw CSS Validator, so the agent reports real validator messages instead of guessing.
- Titles, descriptions, canonical tags, robots noindex directives, headings, viewport metadata, image alt attributes and Open Graph metadata are audited in one call.
- JSON-LD blocks are parsed and syntax errors are reported.
- Links found in supplied HTML are checked with bounded requests.
- The local server saves desktop, tablet, mobile or custom viewport screenshots as PNG files.
Local server or hosted app
- Local npm server, stdio: reads files you select in the workspace, contacts validation and link targets, and writes screenshot files. It needs Node.js 22.12.0 or newer.
- Hosted app, Streamable HTTP: fetches one authorized public HTML page, runs a bounded sitemap first audit of up to eight same origin pages, or processes markup you supply. It cannot read local files, authenticate, crawl links recursively, run page JavaScript or take screenshots.
Who it is for
Best for
- Front end work that needs a validity pass before launch, next to a review step such as frontend visual QA or frontend design review.
- Landing pages whose markup, metadata and structured data should be clean before a conversion audit.
- Checking workspace files with the local server, or a public URL with the hosted endpoint.
Not for
- Private or sensitive content. The README says to validate only what you own or are authorized to inspect, and never to submit passwords, keys or private source code, because markup is sent to external validators.
- Pages behind a login, or output that only exists after JavaScript runs, when using the hosted app.
- Judging visual design. It reports validation and audit signals, not layout taste.
Use it with UiChemy
UiChemy builds WordPress pages through Composer, Figma to WordPress and AI to WordPress. Once a page is live on a public URL, this server can audit its HTML, metadata and JSON-LD. UiChemy does not run it for you. Click Get Started on uichemy.com.
Connect mcp-web-validator: W3C HTML and CSS Validation MCP Server to your AI client
npx -y mcp-web-validatorCheck Node.js
The local server needs Node.js 22.12.0 or newer and a client that supports stdio. No API keys or environment variables are required.
Add it to Claude Desktop
Put the config above into claude_desktop_config.json. On macOS the file is in ~/Library/Application Support/Claude/, and on Windows it is under %APPDATA%\Claude\. Restart Claude Desktop after saving.
Or add it to another client
In Cursor, create a command stdio server with
npx -y mcp-web-validator. For Codex CLI runcodex mcp add mcp-web-validator -- npx -y mcp-web-validator, and for Gemini CLI rungemini mcp add mcp-web-validator npx -y mcp-web-validator.Optional: use the hosted endpoint
Codex CLI can add it with
codex mcp add mcp-web-validator-hosted --url https://web-validator-mcp.digestseo.com/mcp. Check either setup withcodex mcp list.Know the screenshot setup
The first screenshot.capture call installs a pinned headless browser into Puppeteer's cache and reuses it later. Set PUPPETEER_CACHE_DIR if you want a custom location.
Client configuration
{
"mcpServers": {
"mcp-web-validator": {
"command": "npx",
"args": ["-y", "mcp-web-validator"]
}
}
}Endpoints and ports
https://web-validator-mcp.digestseo.com/mcpStreamable HTTP, public pages and supplied markup onlyhttps://digestseo.com/validator-mcp/Vendor overviewhttps://github.com/AKzar1el/mcp-web-validator#readmeThe README is the docsWhat you can do with it
- W3C markup validationHTML and XHTML are checked by the Nu HTML Checker, from a local file or from the markup a public URL returns.
- CSS validationThe local server sends CSS files to the Jigsaw CSS Validator, while the hosted app parses supplied CSS for syntax errors.
- On-page SEO signalsOne audit covers titles, descriptions, canonical tags, headings, viewport metadata, image alt text and Open Graph tags.
- JSON-LD syntax checksStructured data blocks are parsed and JSON errors are reported before a page ships.
- Broken link checksLinks in supplied HTML are tested with bounded requests, and the hosted tool caps a call at 20 links.
- Combined Markdown reportA single report tool merges the markup, SEO, JSON-LD and link results into one document.
- Responsive screenshotsLocal runs capture desktop, tablet, mobile or custom viewports and save PNG files to the folder you pick.
- Sitemap first site auditThe hosted app reads robots.txt and the sitemap, then audits up to eight same origin pages per call.
Tools it exposes
html.local
Local server. Validates a local HTML or XHTML file through the external W3C Nu HTML Checker.
html.url
Local server. Fetches a public URL and validates the returned markup with the Nu checker.
css.local
Local server. Validates a local CSS file through the W3C Jigsaw CSS Validator.
seo.metadata
Local server. Audits titles, descriptions, canonicals, noindex, headings, viewport, alt text and Open Graph tags in supplied HTML.
links.broken
Local server. Checks links extracted from supplied HTML with bounded HTTP requests.
schema.markup
Local server. Parses JSON-LD blocks and reports JSON syntax errors.
report.validation
Local server. Combines HTML or XHTML, optional CSS, SEO, JSON-LD and bounded link checks into a Markdown report.
screenshot.capture
Local server. Captures desktop, tablet, mobile or custom viewport screenshots and writes PNG files.
audit_public_webpage
Hosted app. Fetches one authorized public HTML page and runs the combined HTML, SEO and JSON-LD audit.
audit_public_site
Hosted app. Runs a bounded sitemap first audit of up to eight authorized same origin public pages.
validate_html
Hosted app. Validates raw HTML markup supplied in the conversation.
validate_css
Hosted app. Parses supplied CSS for syntax errors.
audit_seo_metadata
Hosted app. Audits supplied HTML for on-page SEO, robots noindex and accessibility signals.
validate_schema_markup
Hosted app. Checks JSON-LD blocks in supplied HTML for JSON syntax errors.
check_broken_links
Hosted app. Checks up to 20 authorized public links extracted from supplied HTML.
generate_validation_report
Hosted app. Combines the checks for supplied markup, with base_url resolving relative links.
Frequently asked questions
What is mcp-web-validator?
It is an MCP server called Web Validator by DigestSEO. It validates HTML and CSS, audits technical SEO and accessibility signals, checks JSON-LD syntax and broken links, and can capture responsive screenshots. It belongs to the DigestSEO suite of open source SEO tools.
How do I install mcp-web-validator?
Run it with npx -y mcp-web-validator, which needs Node.js 22.12.0 or newer. Add that command as a stdio server in your client, or paste the JSON config from the README into the client's MCP settings. No API keys or environment variables are needed.
Which tools does mcp-web-validator expose?
The local npm package exposes eight tools: html.local, html.url, css.local, seo.metadata, links.broken, schema.markup, report.validation and screenshot.capture. The hosted app exposes eight differently named tools, such as audit_public_webpage and audit_public_site, listed on this page.
Does it send my markup to a third party?
Yes. HTML is submitted to the external W3C Nu HTML Checker and CSS files go to the W3C Jigsaw validator. The README says to validate only what you own or may inspect, and to avoid passwords, tokens, payment data or private source code.
What is the difference between the local and hosted versions?
The local npm server uses stdio, reads files you select and writes screenshots. The hosted app uses Streamable HTTP and works on public pages or supplied markup only. It cannot read local files, log in, crawl links, run page JavaScript or take screenshots.
Which AI clients can use it?
The README gives setup for Claude Desktop, Cursor, OpenAI Codex, Gemini CLI, GitHub Copilot CLI and Kiro on the local server. It names ChatGPT and other remote clients for the hosted endpoint. Any MCP client with stdio or Streamable HTTP support should connect.
Does the screenshot tool need a browser download?
The validation, SEO, schema, link and report tools download no browser. The first screenshot.capture call installs a pinned headless browser into Puppeteer's cache, then reuses it for later screenshots. Set PUPPETEER_CACHE_DIR if you want that cache somewhere else.
What should I pair it with?
Use it for markup and metadata correctness, then add a visual check with a frontend visual QA skill. For pages meant to convert visitors, a conversion audit skill covers what a validator cannot judge. The repository is MIT licensed.


