Site Check
Server Details
Public website health scan, AI-crawler and structured-data readiness, and a local presence score.
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
scan_website and check_ai_search_readiness overlap on AI search readiness (crawler rules, llms.txt, structured data), but the descriptions distinguish broad homepage health from an AI-specific deep dive. explain_check and score_local_presence are clearly separate purposes, so confusion is limited.
All four tools use snake_case with a consistent verb_noun pattern: check_ai_search_readiness, explain_check, scan_website, score_local_presence. No mixed conventions or vague verbs.
Four tools is well-scoped for a website auditing server: one full scan, one focused AI readiness check, one explainer, and one local-presence scorer. Each tool earns its place without redundancy.
The surface covers scanning, AI readiness, local presence scoring, and explaining individual checks. Minor gaps remain, such as no tool to list all available check ids upfront and no non-homepage scanning, but agents can work around these via scan_website output.
Available Tools
4 toolscheck_ai_search_readinessCheck AI search readinessARead-onlyIdempotentInspect
Check whether AI assistants and answer engines can read and quote a public website: which AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended and others) its robots.txt allows or blocks, whether it publishes llms.txt, which structured data types it declares, how its title and description read, and the search and AI checks with fixes. Shares the 24 hour cache with scan_website.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The website to check, such as example.com. Only public http and https sites. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: the scope is limited to public http/https sites and results come from a 24-hour cache shared with scan_website, which tells the agent why repeated calls may return identical data.
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 core scope is front-loaded in the opening clause, followed by an enumerated list of checked dimensions and a short cache note. It is dense but every clause carries information; the middle enumeration is slightly long but 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?
With no output schema, the description does the work of describing the return contents (crawler allow/block status, llms.txt presence, structured data types, title/description quality, and checks with fixes). Combined with annotations covering safety and cache behavior, an agent has enough to invoke it correctly, though it does not state error behavior for non-public or unreachable URLs.
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 single url parameter has 100% schema description coverage including the public-sites constraint, so the schema already carries the semantics. The description adds nothing per-parameter but nothing is missing either; a 4 reflects a fully documented lone parameter.
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 ('check') and a precise resource ('whether AI assistants and answer engines can read and quote a public website'), then enumerates the concrete dimensions inspected (robots.txt crawler allowances, llms.txt, structured data, title/description). This is far more than a restatement of the name and lets an agent distinguish it from sibling scan_website.
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?
It implies the tool is for auditing AI-crawler readability of a public URL and notes the shared 24-hour cache with scan_website, which hints at a relationship, but it never states explicitly when to pick this tool over scan_website, explain_check, or score_local_presence. Usage is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_checkExplain a checkARead-onlyIdempotentInspect
Explain one Site Check check by its id (as returned by scan_website): what it measures, the pass and fail thresholds, why it matters, how to fix it, and the typical effort. Static reference, no network access.
| Name | Required | Description | Default |
|---|---|---|---|
| check_id | Yes | The check id, for example dmarc, ai-bots, llms or tap-to-call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the bar is lower; the description adds the useful behavioral fact that this is a static reference with no network access, reinforcing openWorldHint=false. It also enumerates what the explanation contains, which tells the agent the response is substantive rather than a stub.
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?
One sentence, front-loaded with the verb and resource, then the id provenance, then the contents, then the no-network constraint. No filler.
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?
There is no output schema, so the description takes on the burden and discharges it by listing the returned content (metric, pass/fail thresholds, rationale, fix, effort). Combined with a fully documented single enum parameter, nothing needed to call it correctly is missing.
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 full enum, so the schema does the heavy lifting. The description still adds meaning by stating the id is 'as returned by scan_website', telling the agent where to obtain a valid value rather than inventing one.
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?
States a specific verb (explain) and resource (one Site Check check by id), and names scan_website as the source of valid ids, which separates it from the sibling scanning tool. An agent can tell immediately this is a lookup of static documentation, not a scan.
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 establishes when to use it — after scan_website returns a check id you want explained — and notes it is a static reference with no network access, so it need not be called alongside a live scan. It does not spell out explicit exclusions, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_websiteScan a websiteARead-onlyIdempotentInspect
Run a measured health check of a public website homepage: speed (server response, page weight, scripts, image formats), security (HTTPS, certificate expiry, security headers), domain registration expiry, email authentication (MX, SPF, DMARC), search basics (title, description, headings, indexability, sitemap), AI search readiness (structured data, AI crawler rules, llms.txt) and contact paths (tap to call, forms, analytics). Every result is measured, not judged by a model, and each warn or fail comes with a fix and an effort level. Returns a 0 to 100 website score, the top fixes, and how the page appears in a search result. Results are cached for 24 hours. Use detail "full" to include passing checks.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The website to scan, such as example.com or https://www.example.com/. Only public http and https sites on ports 80 and 443. | |
| detail | No | "summary" (default) lists only warn and fail checks; "full" lists every check. | summary |
| sections | No | Limit the report to these sections. Default: all seven. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=true, covering the safety profile. The description adds valuable context beyond annotations: results are measured not model-judged, every warn/fail includes a fix and effort level, 24-hour caching, and the output shape (0-100 score, top fixes, search appearance).
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?
It is front-loaded with the core action and scope, then packs the check categories efficiently. It is dense and long but every sentence adds informational value; only minor trimming would be possible.
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 read-only, idempotent scan with a fully documented schema and annotations covering safety, the description is complete: it explains scope, returns, caching, and fix/effort reporting. No output schema exists, yet the description appropriately summarizes the return value.
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 description coverage is 100%, so the schema already documents url, detail, and sections with enums and defaults. The description reinforces the 'detail full' behavior, which is redundant with the schema. Baseline 3 applies since the schema carries the parameter burden.
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 a specific verb (run) and resource (measured health check of a public website homepage), then enumerates the exact categories checked. It is clearly distinguished from siblings like check_ai_search_readiness (which covers only one category) and score_local_presence (a different resource entirely).
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?
It implies when to use it (broad homepage health audit) and mentions 'Use detail "full" to include passing checks,' giving operational guidance. It doesn't explicitly state when NOT to use it or name alternatives like check_ai_search_readiness for a focused AI-readiness check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
score_local_presenceScore local presenceARead-onlyIdempotentInspect
Score a local business on three pillars, website (45 percent), Google reviews (30 percent) and Google Business Profile (25 percent), and return an overall 0 to 100 score, a letter grade, each pillar with its verdict, and the top fixes. The website pillar comes from a live scan when a website is given. Review and profile facts (rating, review count, phone, address, hours) are supplied by the caller from the user or from a public listing; this tool does not look them up. A pillar with no facts is marked unknown and left out of the overall score rather than scored as zero.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| hours | No | Published hours by day, for example {"Monday": "8 AM to 5 PM"}. | |
| phone | No | Phone number shown on the listing. | |
| state | No | ||
| trade | No | The trade in snake case, for example plumbing, hvac, roofing, electrical, dental, restaurant. | |
| rating | No | Google star rating, 1.0 to 5.0. | |
| address | No | Street address shown on the listing. | |
| website | No | The business website, if it has one. It is scanned live. | |
| open_24_7 | No | True when the listing says open 24 hours. | |
| source_urls | No | Where the listing facts came from, such as the Google Maps URL. | |
| details_read | No | True only when the full listing was read, including its hours and website link. Missing hours or a missing website are only scored when this is true. | |
| listing_seen | No | True when the Google Business Profile was actually looked at. Defaults to true when a rating, review count or Google Maps URL is given. | |
| review_count | No | Number of Google reviews. | |
| business_name | Yes | ||
| emergency_service | No | True when the listing says it takes emergency or after-hours work. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/openWorld annotations, the description discloses real behavior: a live network scan is triggered by the website parameter (openWorld), the tool performs no external lookups for reviews/profile data, and missing facts produce an 'unknown' pillar that is excluded from the overall score rather than counted as zero. That last rule materially changes how an agent should interpret results and is not derivable from the schema or annotations.
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, front-loaded with the scoring model and output before moving to sourcing rules. The first sentence is dense with parenthetical weights but every clause earns its place; there is no filler or repetition.
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?
With 15 parameters, nested hour objects and no output schema, the description compensates well: it describes the return shape (overall score, letter grade, pillar verdicts, top fixes) and defines the scoring weights and the unknown-pillar rule. An agent has what it needs to call this correctly.
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 already around 80%, so the baseline is 3, and the description adds genuine meaning on top: it explains the sourcing contract for rating/review_count/phone/address/hours and clarifies that the website value feeds a live scan. The 'unknown vs zero' note also indirectly informs the intent behind details_read and listing_seen, though it doesn't spell those flags out.
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 a concrete verb and resource ('Score a local business') and enumerates the exact scoring model: website 45%, reviews 30%, Google Business Profile 25%, with a 0-100 overall and letter grade. It also names the return artifacts (per-pillar verdicts, top fixes), making it clearly distinguishable from the sibling scan_website, which only inspects a site.
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?
It sets the key usage boundary: the website pillar is scanned live when a URL is given, while review and profile facts are caller-supplied and 'this tool does not look them up.' That tells an agent what must be gathered before calling. It stops short of explicitly naming when to prefer a sibling tool.
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.
4 tool updates
- First observed
check_ai_search_readiness - First observed
explain_check - First observed
scan_website - First observed
score_local_presence
Publisher details
- Operator
- Modern Mustard Seed · Publisher source
- Operator website
- https://modernmustardseed.com · Publisher source
- Vendor relationship
- First-party
- Trust center
- Not available
- Restrictions
- Not applicable
Related MCP Connectors
Scan any public website and see how ready it is for AI agents and AI search, explained plainly.
Scan any public site for AI-agent visibility; get scored findings, a machine-readable fix pack, and
Scan websites for AI visibility and marketing health with interactive dashboard.
Public-site SEO/AEO readiness scans with evidence scores, issues, and clear measurement scope.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAudits public websites for AI crawler access, public technical signals, and deployment readiness. Includes a focused path to the full readiness report when deeper remediation guidance is needed.MIT
- AlicenseAqualityDmaintenanceEnables users to scan any website for AI search visibility, producing AEO, GEO, agent readiness, and mention-readiness scores along with AI identity and business profile insights. Paid tools extend this to competitive comparisons, detailed audits, and generated fixes.41MIT
- FlicenseNot gradedqualityDmaintenanceEnables scanning any website for AI agent compatibility and marketing health, returning interactive dashboard reports with scores and revenue impact estimates.-

ASO Score MCPofficial
AlicenseAqualityAmaintenanceScans websites to evaluate agent-readiness and produce an ASO Score Report across 34 signals, helping improve discoverability, trust, and interoperability for AI agents.5315 npm2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.