# Web Validator by DigestSEO (remote · web-validator-mcp.digestseo.com)

Audit public webpages and supplied markup for HTML, CSS, SEO, JSON-LD, and link issues.

- Trust score: 73/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-21

## Components

- remote · `web-validator-mcp.digestseo.com`: 73/100 (this document), [markdown](https://verifymcp.io/servers/akzar1el-mcp-web-validator/web-validator-mcp.md), [page](https://verifymcp.io/servers/akzar1el-mcp-web-validator/web-validator-mcp)
- npm · `mcp-web-validator`: 83/100, [markdown](https://verifymcp.io/servers/akzar1el-mcp-web-validator/mcp-web-validator.md), [page](https://verifymcp.io/servers/akzar1el-mcp-web-validator/mcp-web-validator)

## Channel facts

- Endpoint: `https://web-validator-mcp.digestseo.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.3.7`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-21.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS enforcement could not be verified: the plaintext port answered with HTTP 406, which proves neither a plaintext path nor enforcement.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 51/100
  - 0% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 975 tokens (~108/item across 9 items; 8 tools + 1 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 73/100
  - Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 8 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 10 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.
  - Supports UI / widget rendering.

## Install

### How do I install the Web Validator by DigestSEO MCP server?

Web Validator by DigestSEO is a hosted endpoint at https://web-validator-mcp.digestseo.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http akzar1el-mcp-web-validator 'https://web-validator-mcp.digestseo.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "akzar1el-mcp-web-validator": {
      "url": "https://web-validator-mcp.digestseo.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "akzar1el-mcp-web-validator": {
      "type": "http",
      "url": "https://web-validator-mcp.digestseo.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.akzar1el-mcp-web-validator]
url = "https://web-validator-mcp.digestseo.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "akzar1el-mcp-web-validator": {
      "type": "remote",
      "url": "https://web-validator-mcp.digestseo.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add akzar1el-mcp-web-validator --url 'https://web-validator-mcp.digestseo.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  akzar1el-mcp-web-validator:
    url: "https://web-validator-mcp.digestseo.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "akzar1el-mcp-web-validator": {
      "Transport": "http",
      "Url": "https://web-validator-mcp.digestseo.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add akzar1el-mcp-web-validator -t streamable-http -u 'https://web-validator-mcp.digestseo.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "akzar1el-mcp-web-validator": {
      "type": "http",
      "url": "https://web-validator-mcp.digestseo.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-21 (score 73, +1)

No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-19 (score 72, +1)

No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-17 (score 71, +1)

No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-15 (score 70, +1)

No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-13 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-10 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-08 (score 67, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-06 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (8)

### `validate_html` (~66 tokens)

Validate HTML

Use this when raw HTML markup is supplied. Sends that markup to the Nu HTML Checker hosted at validator.nu and returns validation messages. For a live URL, use audit_public_webpage.

Input parameters:

- `html` (string, required): Raw HTML markup supplied by the user; this is not a webpage URL.

Output parameters:

- `error` (string)
- `messages` (array)
- `overview` (object)
- `total_messages` (integer)
- `truncated` (boolean)

### `validate_css` (~46 tokens)

Validate CSS

Use this when raw CSS source is supplied. Parses it inside the Worker and returns syntax messages without contacting an external service.

Input parameters:

- `css` (string, required): Raw CSS source supplied by the user.

Output parameters:

- `error` (string)
- `errors` (array)
- `overview` (object)

### `audit_seo_metadata` (~63 tokens)

Audit SEO metadata

Use this for a focused SEO/accessibility-signal check of supplied HTML. It does not fetch a live webpage; use audit_public_webpage for a URL.

Input parameters:

- `html` (string, required): Raw HTML markup supplied by the user; this is not a webpage URL.

Output parameters:

- `error` (string)
- `issues` (array)
- `overview` (object)
- `total_issues` (integer)
- `truncated` (boolean)

### `validate_schema_markup` (~57 tokens)

Validate JSON-LD syntax

Use this for a focused JSON-LD syntax check of supplied HTML. It parses JSON only and does not validate Schema.org vocabulary semantics.

Input parameters:

- `html` (string, required): Raw HTML markup supplied by the user; this is not a webpage URL.

Output parameters:

- `blocks_checked` (integer)
- `error` (string)
- `issues` (array)
- `overview` (object)
- `total_issues` (integer)
- `truncated` (boolean)

### `check_broken_links` (~105 tokens)

Check public links

Use this for a focused check of up to 20 public HTTP(S) links found in supplied HTML. It does not fetch base_url, follow redirects, or retain response bodies.

Input parameters:

- `base_url` (string): Only resolves relative links; it does not fetch this webpage.
- `html` (string, required): Raw HTML markup supplied by the user; this is not a webpage URL.
- `max_links` (integer): Maximum links to check, from 1 to 20.

Output parameters:

- `error` (string)
- `healthy_links` (integer)
- `links` (array)
- `links_checked` (integer)
- `overview` (object)
- `redirects` (integer)
- `unreachable_links` (integer)

### `generate_validation_report` (~161 tokens)

Generate validation report

Use this when HTML markup is already supplied. Combines Nu HTML validation with local CSS, SEO, accessibility-signal, and JSON-LD syntax checks. It does not fetch a webpage from base_url; use audit_public_webpage for a live URL.

Input parameters:

- `base_url` (string): Only resolves relative links when check_links is true; it does not fetch this webpage.
- `check_links` (boolean): Whether to contact eligible public links found in the supplied HTML.
- `css` (string): Optional raw CSS source. Linked stylesheets are not fetched.
- `html` (string, required): Raw HTML markup supplied by the user; this is not a webpage URL.
- `max_links` (integer): Maximum links to check, from 1 to 20.

Output parameters:

- `broken_links` (integer)
- `css_checked` (boolean)
- `css_errors` (integer)
- `css_messages` (array)
- `error` (string)
- `failed_checks` (array)
- `healthy_links` (integer)
- `html_errors` (integer)
- `html_info` (integer)
- `html_messages` (array)
- `html_total_messages` (integer)
- `html_truncated` (boolean)
- `html_warnings` (integer)
- `links` (array)
- `links_checked` (integer)
- `links_requested` (boolean)
- `overview` (object)
- `redirects` (integer)
- `schema_blocks_checked` (integer)
- `schema_findings` (array)
- `schema_issues` (integer)
- `schema_truncated` (boolean)
- `seo_findings` (array)
- `seo_issues` (integer)
- `seo_truncated` (boolean)
- `unreachable_links` (integer)

### `audit_public_webpage` (~147 tokens)

Audit public webpage

Use this when the user provides one live public webpage URL. Fetches one bounded static HTML response, then runs HTML validation, SEO/accessibility-signal, and JSON-LD syntax checks. It checks links only when requested and does not crawl, execute JavaScript, authenticate, or fetch linked stylesheets. Use only URLs the user owns or is authorized to inspect.

Input parameters:

- `check_links` (boolean): Whether to contact eligible public links found on the fetched page.
- `max_links` (integer): Maximum links to check, from 1 to 20.
- `url` (string, required): One authorized public HTTP(S) webpage URL; private pages, credentials, and custom ports are rejected.

Output parameters:

- `broken_links` (integer)
- `content_type` (string)
- `css_checked` (boolean)
- `css_errors` (integer)
- `css_messages` (array)
- `error` (string)
- `failed_checks` (array)
- `fetched_url` (string)
- `healthy_links` (integer)
- `html_errors` (integer)
- `html_info` (integer)
- `html_messages` (array)
- `html_total_messages` (integer)
- `html_truncated` (boolean)
- `html_warnings` (integer)
- `http_status` (integer)
- `links` (array)
- `links_checked` (integer)
- `links_requested` (boolean)
- `overview` (object)
- `page_fetched` (boolean)
- `redirects` (integer)
- `redirects_followed` (integer)
- `requested_url` (string)
- `schema_blocks_checked` (integer)
- `schema_findings` (array)
- `schema_issues` (integer)
- `schema_truncated` (boolean)
- `seo_findings` (array)
- `seo_issues` (integer)
- `seo_truncated` (boolean)
- `unreachable_links` (integer)

### `audit_public_site` (~159 tokens)

Audit public site

Use this for a bounded, sitemap-first audit of a public website the user owns or is authorized to inspect. It fetches at most 8 same-origin HTML pages per call, respects robots.txt, and returns compact page summaries plus deduplicated findings. It does not recursively follow HTML links, authenticate, execute JavaScript, fetch assets, or run site-wide link checks. Use page_offset to continue when more sitemap pages remain.

Input parameters:

- `max_pages` (integer): Maximum same-origin pages to audit in this call, from 1 to 8.
- `page_offset` (integer): Zero-based sitemap-page offset for continuing a capped audit batch.
- `site_url` (string, required): Authorized public website URL. The final public origin becomes the crawl boundary.

Output parameters:

- `audit_health_score` (integer)
- `discovery` (string)
- `discovery_error` (string)
- `error` (string)
- `issue_groups` (array)
- `issue_groups_truncated` (boolean)
- `next_page_offset` (integer)
- `overview` (object)
- `pages` (array)
- `pages_audited` (integer)
- `pages_discovered` (integer)
- `pages_failed` (integer)
- `pages_partial` (integer)
- `pages_selected` (integer)
- `pages_skipped_robots` (integer)
- `score_coverage_percent` (integer)
- `site_url` (string)
- `sitemap_url` (string)
- `truncated` (boolean)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/akzar1el-mcp-web-validator/web-validator-mcp#diagnostics

## Score history

- 2026-09-21: 73
- 2026-09-20: 72
- 2026-09-19: 72
- 2026-09-18: 71
- 2026-09-17: 71
- 2026-09-16: 70
- 2026-09-15: 70
- 2026-09-14: 69
- 2026-09-13: 69
- 2026-09-12: 68
- 2026-09-11: 68
- 2026-09-10: 68
- 2026-09-09: 67
- 2026-09-08: 67
- 2026-09-07: 66
- 2026-09-06: 66
- 2026-09-05: 65
- 2026-09-04: 65
- 2026-09-03: 64
- 2026-09-02: 64
- 2026-09-01: 63
- 2026-08-31: 63
- 2026-08-30: 62

## Common questions

### What is the Web Validator by DigestSEO MCP server?

Web Validator by DigestSEO is an MCP server listed in the public MCP registry as io.github.AKzar1el/mcp-web-validator. Audit public webpages and supplied markup for HTML, CSS, SEO, JSON-LD, and link issues. This page covers its hosted endpoint (https://web-validator-mcp.digestseo.com/mcp).

### Is the Web Validator by DigestSEO MCP server safe to use?

Web Validator by DigestSEO scores 73 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Web Validator by DigestSEO MCP server expose?

Web Validator by DigestSEO exposes 8 tools: validate_html, validate_css, audit_seo_metadata, validate_schema_markup, check_broken_links, and 3 more. Their descriptions and schemas cost roughly 804 tokens of context every time the server is loaded.

### Does the Web Validator by DigestSEO MCP server require authentication?

No. We connected to Web Validator by DigestSEO without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Web Validator by DigestSEO MCP server still maintained?

Web Validator by DigestSEO is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://web-validator-mcp.digestseo.com/mcp
- Repository: https://github.com/AKzar1el/mcp-web-validator
- Website: https://digestseo.com/validator-mcp/
- Changelog RSS feed: https://verifymcp.io/servers/akzar1el-mcp-web-validator/web-validator-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/akzar1el-mcp-web-validator/web-validator-mcp.json
- HTML version of this page: https://verifymcp.io/servers/akzar1el-mcp-web-validator/web-validator-mcp
