Web Validator by DigestSEO
Audit public webpages and supplied markup for HTML, CSS, SEO, JSON-LD, and link issues.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"mcp-web-validator": {
"command": "npx",
"args": [
"mcp-web-validator"
]
}
}
}실행 가능한 패키지
1.3.42stdio원격 엔드포인트
https://web-validator-mcp.digestseo.com/mcpstreamable-http할 수 있는 일
도구 목록
도구 (8)
🟢validate_html(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.
입력 스키마
{
"type": "object",
"properties": {
"html": {
"type": "string",
"minLength": 1,
"maxLength": 200000,
"description": "Raw HTML markup supplied by the user; this is not a webpage URL."
}
},
"required": [
"html"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"messages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"error",
"warning",
"info"
]
},
"message": {
"type": "string"
},
"line": {
"type": "number"
},
"column": {
"type": "number"
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"total_messages": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"truncated": {
"type": "boolean"
},
"overview": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"html",
"css",
"seo",
"schema",
"links",
"report",
"site"
]
},
"status": {
"type": "string",
"enum": [
"passed",
"needs_attention",
"partial",
"failed",
"not_applicable"
]
},
"title": {
"type": "string"
},
"headline": {
"type": "string"
},
"detail": {
"type": "string"
},
"total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"shown": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"truncated": {
"type": "boolean"
},
"counts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"label": {
"type": "string"
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"tone": {
"type": "string",
"enum": [
"error",
"warning",
"info",
"success"
]
}
},
"required": [
"key",
"label",
"value",
"tone"
],
"additionalProperties": false
}
},
"next_action": {
"type": "string"
}
},
"required": [
"kind",
"status",
"title",
"headline",
"detail",
"total",
"shown",
"truncated",
"counts"
],
"additionalProperties": false
},
"error": {
"type": "string"
}
},
"required": [
"messages",
"total_messages",
"truncated",
"overview"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢validate_css(css)
Use this when raw CSS source is supplied. Parses it inside the Worker and returns syntax messages without contacting an external service.
입력 스키마
{
"type": "object",
"properties": {
"css": {
"type": "string",
"minLength": 1,
"maxLength": 200000,
"description": "Raw CSS source supplied by the user."
}
},
"required": [
"css"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"line": {
"type": "number"
},
"message": {
"type": "string"
},
"context": {
"type": "string"
}
},
"required": [
"line",
"message"
],
"additionalProperties": false
}
},
"overview": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"html",
"css",
"seo",
"schema",
"links",
"report",
"site"
]
},
"status": {
"type": "string",
"enum": [
"passed",
"needs_attention",
"partial",
"failed",
"not_applicable"
]
},
"title": {
"type": "string"
},
"headline": {
"type": "string"
},
"detail": {
"type": "string"
},
"total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"shown": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"truncated": {
"type": "boolean"
},
"counts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"label": {
"type": "string"
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"tone": {
"type": "string",
"enum": [
"error",
"warning",
"info",
"success"
]
}
},
"required": [
"key",
"label",
"value",
"tone"
],
"additionalProperties": false
}
},
"next_action": {
"type": "string"
}
},
"required": [
"kind",
"status",
"title",
"headline",
"detail",
"total",
"shown",
"truncated",
"counts"
],
"additionalProperties": false
},
"error": {
"type": "string"
}
},
"required": [
"errors",
"overview"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢audit_seo_metadata(html)
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.
입력 스키마
{
"type": "object",
"properties": {
"html": {
"type": "string",
"minLength": 1,
"maxLength": 200000,
"description": "Raw HTML markup supplied by the user; this is not a webpage URL."
}
},
"required": [
"html"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"issues": {
"type": "array",
"items": {
"type": "object",
"properties": {
"severity": {
"type": "string",
"enum": [
"error",
"warning",
"info"
]
},
"category": {
"type": "string",
"enum": [
"SEO",
"Schema",
"Accessibility"
]
},
"message": {
"type": "string"
}
},
"required": [
"severity",
"category",
"message"
],
"additionalProperties": false
}
},
"total_issues": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"truncated": {
"type": "boolean"
},
"overview": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"html",
"css",
"seo",
"schema",
"links",
"report",
"site"
]
},
"status": {
"type": "string",
"enum": [
"passed",
"needs_attention",
"partial",
"failed",
"not_applicable"
]
},
"title": {
"type": "string"
},
"headline": {
"type": "string"
},
"detail": {
"type": "string"
},
"total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"shown": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"truncated": {
"type": "boolean"
},
"counts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"label": {
"type": "string"
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"tone": {
"type": "string",
"enum": [
"error",
"warning",
"info",
"success"
]
}
},
"required": [
"key",
"label",
"value",
"tone"
],
"additionalProperties": false
}
},
"next_action": {
"type": "string"
}
},
"required": [
"kind",
"status",
"title",
"headline",
"detail",
"total",
"shown",
"truncated",
"counts"
],
"additionalProperties": false
},
"error": {
"type": "string"
}
},
"required": [
"issues",
"total_issues",
"truncated",
"overview"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢validate_schema_markup(html)
Use this for a focused JSON-LD syntax check of supplied HTML. It parses JSON only and does not validate Schema.org vocabulary semantics.
입력 스키마
{
"type": "object",
"properties": {
"html": {
"type": "string",
"minLength": 1,
"maxLength": 200000,
"description": "Raw HTML markup supplied by the user; this is not a webpage URL."
}
},
"required": [
"html"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"issues": {
"type": "array",
"items": {
"type": "object",
"properties": {
"severity": {
"type": "string",
"enum": [
"error",
"warning",
"info"
]
},
"category": {
"type": "string",
"enum": [
"SEO",
"Schema",
"Accessibility"
]
},
"message": {
"type": "string"
}
},
"required": [
"severity",
"category",
"message"
],
"additionalProperties": false
}
},
"total_issues": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"truncated": {
"type": "boolean"
},
"overview": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"html",
"css",
"seo",
"schema",
"links",
"report",
"site"
]
},
"status": {
"type": "string",
"enum": [
"passed",
"needs_attention",
"partial",
"failed",
"not_applicable"
]
},
"title": {
"type": "string"
},
"headline": {
"type": "string"
},
"detail": {
"type": "string"
},
"total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"shown": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"truncated": {
"type": "boolean"
},
"counts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"label": {
"type": "string"
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"tone": {
"type": "string",
"enum": [
"error",
"warning",
"info",
"success"
]
}
},
"required": [
"key",
"label",
"value",
"tone"
],
"additionalProperties": false
}
},
"next_action": {
"type": "string"
}
},
"required": [
"kind",
"status",
"title",
"headline",
"detail",
"total",
"shown",
"truncated",
"counts"
],
"additionalProperties": false
},
"error": {
"type": "string"
},
"blocks_checked": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"issues",
"total_issues",
"truncated",
"overview",
"blocks_checked"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢check_broken_links(html, base_url, max_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.
입력 스키마
{
"type": "object",
"properties": {
"html": {
"type": "string",
"minLength": 1,
"maxLength": 200000,
"description": "Raw HTML markup supplied by the user; this is not a webpage URL."
},
"base_url": {
"description": "Only resolves relative links; it does not fetch this webpage.",
"type": "string",
"format": "uri"
},
"max_links": {
"default": 15,
"description": "Maximum links to check, from 1 to 20.",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"required": [
"html"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"status": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"enum": [
"blocked",
"failed"
]
}
]
},
"ok": {
"type": "boolean"
},
"message": {
"type": "string"
}
},
"required": [
"url",
"status",
"ok"
],
"additionalProperties": false
}
},
"links_checked": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"healthy_links": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"redirects": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"unreachable_links": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"overview": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"html",
"css",
"seo",
"schema",
"links",
"report",
"site"
]
},
"status": {
"type": "string",
"enum": [
"passed",
"needs_attention",
"partial",
"failed",
"not_applicable"
]
},
"title": {
"type": "string"
},
"headline": {
"type": "string"
},
"detail": {
"type": "string"
},
"total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"shown": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"truncated": {
"type": "boolean"
},
"counts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"label": {
"type": "string"
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"tone": {
"type": "string",
"enum": [
"error",
"warning",
"info",
"success"
]
}
},
"required": [
"key",
"label",
"value",
"tone"
],
"additionalProperties": false
}
},
"next_action": {
"type": "string"
}
},
"required": [
"kind",
"status",
"title",
"headline",
"detail",
"total",
"shown",
"truncated",
"counts"
],
"additionalProperties": false
},
"error": {
"type": "string"
}
},
"required": [
"links",
"links_checked",
"healthy_links",
"redirects",
"unreachable_links",
"overview"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢generate_validation_report(html, css, check_links, base_url, max_links)
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.
입력 스키마
{
"type": "object",
"properties": {
"html": {
"type": "string",
"minLength": 1,
"maxLength": 200000,
"description": "Raw HTML markup supplied by the user; this is not a webpage URL."
},
"css": {
"description": "Optional raw CSS source. Linked stylesheets are not fetched.",
"type": "string",
"maxLength": 200000
},
"check_links": {
"default": false,
"description": "Whether to contact eligible public links found in the supplied HTML.",
"type": "boolean"
},
"base_url": {
"description": "Only resolves relative links when check_links is true; it does not fetch this webpage.",
"type": "string",
"format": "uri"
},
"max_links": {
"default": 15,
"description": "Maximum links to check, from 1 to 20.",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"required": [
"html"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"html_errors": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"css_errors": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"seo_issues": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"schema_issues": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"links_checked": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"broken_links": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"html_warnings": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"html_info": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"html_messages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"error",
"warning",
"info"
]
},
"message": {
"type": "string"
},
"line": {
"type": "number"
},
"column": {
"type": "number"
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"css_messages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"line": {
"type": "number"
},
"message": {
"type": "string"
},
"context": {
"type": "string"
}
},
"required": [
"line",
"message"
],
"additionalProperties": false
}
},
"seo_findings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"severity": {
"type": "string",
"enum": [
"error",
"warning",
"info"
]
},
"category": {
"type": "string",
"enum": [
"SEO",
"Schema",
"Accessibility"
]
},
"message": {
"type": "string"
}
},
"required": [
"severity",
"category",
"message"
],
"additionalProperties": false
}
},
"schema_findings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"severity": {
"type": "string",
"enum": [
"error",
"warning",
"info"
]
},
"category": {
"type": "string",
"enum": [
"SEO",
"Schema",
"Accessibility"
]
},
"message": {
"type": "string"
}
},
"required": [
"severity",
"category",
"message"
],
"additionalProperties": false
}
},
"links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"status": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"enum": [
"blocked",
"failed"
]
}
]
},
"ok": {
"type": "boolean"
},
"message": {
"type": "string"
}
},
"required": [
"url",
"status",
"ok"
],
"additionalProperties": false
}
},
"seo_truncated": {
"type": "boolean"
},
"schema_truncated": {
"type": "boolean"
},
"html_total_messages": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"html_truncated": {
"type": "boolean"
},
"schema_blocks_checked": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"healthy_links": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"redirects": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"unreachable_links": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"links_requested": {
"type": "boolean"
},
"css_checked": {
"type": "boolean"
},
"failed_checks": {
"type": "array",
"items": {
"type": "string",
"enum": [
"fetch",
"html",
"css",
"links"
]
}
},
"overview": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"html",
"css",
"seo",
"schema",
"links",
"report",
"site"
]
},
"status": {
"type": "string",
"enum": [
"passed",
"needs_attention",
"partial",
"failed",
"not_applicable"
]
},
"title": {
"type": "string"
},
"headline": {
"type": "string"
},
"detail": {
"type": "string"
},
"total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"shown": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"truncated": {
"type": "boolean"
},
"counts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"label": {
"type": "string"
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"tone": {
"type": "string",
"enum": [
"error",
"warning",
"info",
"success"
]
}
},
"required": [
"key",
"label",
"value",
"tone"
],
"additionalProperties": false
}
},
"next_action": {
"type": "string"
}
},
"required": [
"kind",
"status",
"title",
"headline",
"detail",
"total",
"shown",
"truncated",
"counts"
],
"additionalProperties": false
},
"error": {
"type": "string"
}
},
"required": [
"html_errors",
"css_errors",
"seo_issues",
"schema_issues",
"links_checked",
"broken_links",
"html_warnings",
"html_info",
"html_messages",
"css_messages",
"seo_findings",
"schema_findings",
"links",
"seo_truncated",
"schema_truncated",
"html_total_messages",
"html_truncated",
"schema_blocks_checked",
"healthy_links",
"redirects",
"unreachable_links",
"links_requested",
"css_checked",
"failed_checks",
"overview"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢audit_public_webpage(url, check_links, max_links)
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.
입력 스키마
{
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"format": "uri",
"description": "One authorized public HTTP(S) webpage URL; private pages, credentials, and custom ports are rejected."
},
"check_links": {
"default": false,
"description": "Whether to contact eligible public links found on the fetched page.",
"type": "boolean"
},
"max_links": {
"default": 15,
"description": "Maximum links to check, from 1 to 20.",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"required": [
"url"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"html_errors": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"css_errors": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"seo_issues": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"schema_issues": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"links_checked": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"broken_links": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"html_warnings": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"html_info": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"html_messages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"error",
"warning",
"info"
]
},
"message": {
"type": "string"
},
"line": {
"type": "number"
},
"column": {
"type": "number"
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"css_messages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"line": {
"type": "number"
},
"message": {
"type": "string"
},
"context": {
"type": "string"
}
},
"required": [
"line",
"message"
],
"additionalProperties": false
}
},
"seo_findings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"severity": {
"type": "string",
"enum": [
"error",
"warning",
"info"
]
},
"category": {
"type": "string",
"enum": [
"SEO",
"Schema",
"Accessibility"
]
},
"message": {
"type": "string"
}
},
"required": [
"severity",
"category",
"message"
],
"additionalProperties": false
}
},
"schema_findings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"severity": {
"type": "string",
"enum": [
"error",
"warning",
"info"
]
},
"category": {
"type": "string",
"enum": [
"SEO",
"Schema",
"Accessibility"
]
},
"message": {
"type": "string"
}
},
"required": [
"severity",
"category",
"message"
],
"additionalProperties": false
}
},
"links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"status": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"enum": [
"blocked",
"failed"
]
}
]
},
"ok": {
"type": "boolean"
},
"message": {
"type": "string"
}
},
"required": [
"url",
"status",
"ok"
],
"additionalProperties": false
}
},
"seo_truncated": {
"type": "boolean"
},
"schema_truncated": {
"type": "boolean"
},
"html_total_messages": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"html_truncated": {
"type": "boolean"
},
"schema_blocks_checked": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"healthy_links": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"redirects": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"unreachable_links": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"links_requested": {
"type": "boolean"
},
"css_checked": {
"type": "boolean"
},
"failed_checks": {
"type": "array",
"items": {
"type": "string",
"enum": [
"fetch",
"html",
"css",
"links"
]
}
},
"overview": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"html",
"css",
"seo",
"schema",
"links",
"report",
"site"
]
},
"status": {
"type": "string",
"enum": [
"passed",
"needs_attention",
"partial",
"failed",
"not_applicable"
]
},
"title": {
"type": "string"
},
"headline": {
"type": "string"
},
"detail": {
"type": "string"
},
"total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"shown": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"truncated": {
"type": "boolean"
},
"counts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"label": {
"type": "string"
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"tone": {
"type": "string",
"enum": [
"error",
"warning",
"info",
"success"
]
}
},
"required": [
"key",
"label",
"value",
"tone"
],
"additionalProperties": false
}
},
"next_action": {
"type": "string"
}
},
"required": [
"kind",
"status",
"title",
"headline",
"detail",
"total",
"shown",
"truncated",
"counts"
],
"additionalProperties": false
},
"error": {
"type": "string"
},
"requested_url": {
"type": "string"
},
"fetched_url": {
"type": "string"
},
"redirects_followed": {
"type": "integer",
"minimum": 0,
"maximum": 3
},
"http_status": {
"type": "integer",
"minimum": 200,
"maximum": 299
},
"content_type": {
"type": "string",
"const": "text/html"
},
"page_fetched": {
"type": "boolean"
}
},
"required": [
"html_errors",
"css_errors",
"seo_issues",
"schema_issues",
"links_checked",
"broken_links",
"html_warnings",
"html_info",
"html_messages",
"css_messages",
"seo_findings",
"schema_findings",
"links",
"seo_truncated",
"schema_truncated",
"html_total_messages",
"html_truncated",
"schema_blocks_checked",
"healthy_links",
"redirects",
"unreachable_links",
"links_requested",
"css_checked",
"failed_checks",
"overview",
"page_fetched"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢audit_public_site(site_url, max_pages, page_offset)
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.
입력 스키마
{
"type": "object",
"properties": {
"site_url": {
"type": "string",
"maxLength": 2048,
"format": "uri",
"description": "Authorized public website URL. The final public origin becomes the crawl boundary."
},
"max_pages": {
"default": 5,
"description": "Maximum same-origin pages to audit in this call, from 1 to 8.",
"type": "integer",
"minimum": 1,
"maximum": 8
},
"page_offset": {
"default": 0,
"description": "Zero-based sitemap-page offset for continuing a capped audit batch.",
"type": "integer",
"minimum": 0,
"maximum": 250
}
},
"required": [
"site_url"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"site_url": {
"type": "string"
},
"sitemap_url": {
"type": "string"
},
"discovery": {
"type": "string",
"enum": [
"sitemap",
"root_only",
"partial"
]
},
"discovery_error": {
"type": "string",
"enum": [
"robots_unavailable",
"sitemap_unavailable",
"sitemap_invalid"
]
},
"pages_discovered": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pages_selected": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pages_audited": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pages_partial": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pages_failed": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pages_skipped_robots": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"truncated": {
"type": "boolean"
},
"next_page_offset": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"audit_health_score": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"score_coverage_percent": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"pages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"fetched_url": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"passed",
"needs_attention",
"partial",
"failed",
"skipped"
]
},
"http_status": {
"type": "integer",
"minimum": 200,
"maximum": 299
},
"redirects_followed": {
"type": "integer",
"minimum": 0,
"maximum": 3
},
"page_fetched": {
"type": "boolean"
},
"html_validation_status": {
"type": "string",
"enum": [
"completed",
"timeout",
"unavailable",
"not_run"
]
},
"html_errors": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"html_warnings": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"seo_errors": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"seo_warnings": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"schema_errors": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"schema_warnings": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"notes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"health_score": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"failure_code": {
"type": "string"
},
"top_findings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"severity": {
"type": "string",
"enum": [
"error",
"warning",
"info"
]
},
"category": {
"type": "string",
"enum": [
"HTML",
"SEO",
"Schema",
"Accessibility"
]
},
"message": {
"type": "string"
}
},
"required": [
"severity",
"category",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"url",
"status",
"page_fetched",
"html_validation_status",
"html_errors",
"html_warnings",
"seo_errors",
"seo_warnings",
"schema_errors",
"schema_warnings",
"notes",
"top_findings"
],
"additionalProperties": false
}
},
"issue_groups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"severity": {
"type": "string",
"enum": [
"error",
"warning",
"info"
]
},
"category": {
"type": "string",
"enum": [
"HTML",
"SEO",
"Schema",
"Accessibility"
]
},
"message": {
"type": "string"
},
"affected_pages": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"example_urls": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"severity",
"category",
"message",
"affected_pages",
"example_urls"
],
"additionalProperties": false
}
},
"issue_groups_truncated": {
"type": "boolean"
},
"overview": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"html",
"css",
"seo",
"schema",
"links",
"report",
"site"
]
},
"status": {
"type": "string",
"enum": [
"passed",
"needs_attention",
"partial",
"failed",
"not_applicable"
]
},
"title": {
"type": "string"
},
"headline": {
"type": "string"
},
"detail": {
"type": "string"
},
"total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"shown": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"truncated": {
"type": "boolean"
},
"counts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"label": {
"type": "string"
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"tone": {
"type": "string",
"enum": [
"error",
"warning",
"info",
"success"
]
}
},
"required": [
"key",
"label",
"value",
"tone"
],
"additionalProperties": false
}
},
"next_action": {
"type": "string"
}
},
"required": [
"kind",
"status",
"title",
"headline",
"detail",
"total",
"shown",
"truncated",
"counts"
],
"additionalProperties": false
},
"error": {
"type": "string"
}
},
"required": [
"site_url",
"discovery",
"pages_discovered",
"pages_selected",
"pages_audited",
"pages_partial",
"pages_failed",
"pages_skipped_robots",
"truncated",
"score_coverage_percent",
"pages",
"issue_groups",
"issue_groups_truncated",
"overview"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}커뮤니티
증거