AI Website Check
You can run a read-only AI Website Check on a website and get a report of where customers get stuck.
Check a site by URL with
check_website(urlrequired, e.g.example.comorhttps://example.com).Choose report language:
en,de, orpl(defaulten).Enable or disable AI customer reading with
use_ai(defaulttrue; needsANTHROPIC_API_KEYand costs a few cents).Get findings across nine customer-journey stations: Google listing, mobile view, services, prices, hours, calling, address, trust, inquiry.
Rule findings come from HTML; AI findings only count if backed by a server-verified verbatim quote.
Runs read-only: never submits forms, bookings, or inquiries, and follows
robots.txt.Takes about 5–60 seconds and is usable from MCP clients like Claude Desktop or Claude Code.
AI Website Check
An AI that walks through a small-business website like a customer, and has to prove every claim with a quote.
Live demo: https://galini-studio.de/ki-check/ (German) · https://galini-studio.de/pl/sprawdz-strone/ (Polish)

A customer who wants something done (book a car service, get a roof fixed) goes through a website in a typical order. Can I find you on Google? Can I read the page on my phone? What do you do, and what does it cost? When can I reach someone, and can I tap the number? Where are you? Can I trust you? Can I send an inquiry?
AI Website Check (on the site: "KI-Check", KI is German for AI) goes through these nine stations and shows where a customer gets stuck. It runs in under a minute and gives a report as a page and as a PDF. It was built for small businesses in Germany as a free tool on the website of a small web studio. Reports come in English, German or Polish, from the command line or as a tool for AI assistants (MCP).
The rule that matters: no quote, no claim
Language models are good at reading a messy small-business site and noticing what a person would notice. They are also good at sounding sure about things that are not there. So the check splits the work:
Collect, without AI (
src/sammeln.ts). It reads the start page and up to six sub-pages (contact, prices, booking, hours, services, legal notice) the way many AI assistants see them: the HTML, without JavaScript. It extracts hard facts: tappabletel:links (and whether the number is already on the start page), WhatsApp, forms (with field counts), booking services, opening hours, prices, address, schema.org data,robots.txt, sitemap, broken links and leftover template text. Since October 2026 also: the WhatsApp/Facebook preview (og:image), identical page titles, the phone setup in detail (fixed width, blocked zoom, page weight, script count), review platforms, star ratings and credentials like a master craftsman's certificate, images withoutaltand stock photos, contradictions between schema.org and the page, the newest dated post, whether the email domain has a mailbox (MX), and the site builder (Wix, Jimdo and others render forms with JavaScript, so a missing form there is yellow, not red). Postcodes, phone numbers and prices also work for Poland, Austria and Switzerland.Read like a customer, with AI (
src/kunde.ts). Claude gets the collected text and answers seven customer questions with structured output, plus one question it picks for the trade (emergency service for a plumber, reservations for a restaurant). Each answer must quote the site verbatim. The server checks every quote against the material (zitatBelegt). An answer without a verified quote does not count.Decide (
src/bewerten.ts). Rules first, then the verified AI answers. Where the HTML is certain (a form, a booking link, a tappable number), the rule has the last word. "I did not find it", never "it is missing": the check only reads the HTML and can overlook things.
The result (src/bericht.ts) holds only what the report shows: no raw signals, no prompt material.
Related MCP server: SitePulsar MCP Server
Does it work?
Tested on 13 sites before launch, every result checked by hand (docs/EVALUATION.md):
The rules alone were right in 62 of 65 cases. The three misses were fixed or left to the AI.
Two rounds with the AI on all sites: no invented quote got through. The one quote that was not verbatim was rejected by the server.
About 7,700 tokens in and 1,200 out per site, a few cents per check.
Careful by design
Reads, never submits. No forms, no bookings, no inquiries.
Follows
robots.txt(RFC 9309, with*and$). Pages blocked for the check or for all bots are not read; if the start page is blocked, there is no report. If the file blocks AI assistants that read on a user's behalf (ChatGPT-User, Claude-User, Perplexity), the report is made without AI. Only explicit rules count: norobots.txtmeans the check reads like a browser.Only public servers (no private or local addresses, checked after every redirect), at most 4 redirects, 8 seconds and 3 MB per page, a fixed time budget for the whole check.
Reads more only when needed. The sitemap is fetched only if the start page does not link to contact or prices; the only other lookup is a DNS query for the MX record of the email domain found on the site.
Honest about gaps. If a page does not load, the report says so instead of claiming something is missing. Connection problems that could be on our side are never reported as the site's fault.
Try it
Needs Node.js 22 or newer.
npm install
npx tsx src/cli.ts example.com # report in English
npx tsx src/cli.ts example.com --lang de # German (or pl for Polish)
npx tsx src/cli.ts example.com --no-ai --json report.json
npm test # tests, no network neededWithout ANTHROPIC_API_KEY the check runs with the fixed rules only (free). With a key it adds the AI part (a few cents per check). Please set KI_CHECK_KENNUNG to a user agent with your contact (see .env.example), so site owners know who is reading. Only check sites you own or have a good reason to check.
An example run (rules only) on the author's own site: English, German.
Use it from Claude (MCP)
The check also runs as an MCP server with one tool, check_website (url, language, use_ai). Then you can ask Claude Desktop, Claude Code or any other MCP client: "Check example.com like a customer would." The tool returns the report as text and as structured data. It is marked read-only.
After npm install, add it to Claude Code (use your own path):
claude mcp add ai-website-check -- node /path/to/ai-website-check/node_modules/tsx/dist/cli.mjs /path/to/ai-website-check/src/mcp.tsOr to Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"ai-website-check": {
"command": "node",
"args": [
"C:/path/to/ai-website-check/node_modules/tsx/dist/cli.mjs",
"C:/path/to/ai-website-check/src/mcp.ts"
],
"env": { "ANTHROPIC_API_KEY": "optional, for the AI part" }
}
}
}Without a key the tool still works with the fixed rules. With a key, the customer reading by Claude comes on top, with the same quote check as everywhere else.

Files
File | What it does |
| Collect: fetch, safety checks, robots.txt, extract signals and quotes |
| The AI as a customer: prompt, structured output, quote check |
| Traffic light per question, report sentences in German, Polish and English |
| Checks the search term and place the AI picked (used online for “Does an AI recommend you?”) |
| What the report contains |
| One check from start to finish, and the report as text |
| Command line |
| MCP server with the tool |
| Tests for the patterns, the rules (with invented example pages), the quote check, robots.txt, security and the MCP server |
| How it was tested |
The code and its comments are in German, the reports can be in English, German or Polish. The comments keep notes from testing ("Testlauf 09.10.2026: …"), so you can see why a rule is the way it is.
About
Made by Dorota Mikolajczyk, Galini Studio, Lohne, Germany. I build websites and automations for small businesses, in German and Polish. KI-Check is my free door-opener: a business owner sees where customers get stuck, and I can help fix it. Built with Claude Code.
License
PolyForm Noncommercial 1.0.0: read it, run it, learn from it, but not for commercial use. Ask me if you want to use it commercially.
Required Notice: Copyright 2026 Dorota Mikolajczyk, Galini Studio (https://galini-studio.de)
Available Tools
1 toolcheck_websiteAI Website CheckARead-onlyIdempotent
Walks through a small-business website the way a customer would (Google listing, phone view, services, price, hours, calling, address, trust, inquiry) and reports where a customer gets stuck. Rule findings come from the HTML. AI findings only count with a verbatim quote from the site that the server has checked. Reads only, never submits forms, follows robots.txt. Takes about 5 to 60 seconds.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Website address, for example example.com or https://example.com | |
| use_ai | No | Let Claude read the site as a customer. Needs ANTHROPIC_API_KEY where this server runs and costs a few cents. Default: true | |
| language | No | Language of the report. Default: en |
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 baseline is covered. The description adds genuinely new context beyond that: it never submits forms, follows robots.txt, AI findings require a server-verified verbatim quote, and the run takes 5-60 seconds. Cost and the ANTHROPIC_API_KEY requirement are surfaced on the use_ai parameter, so the description itself stops short of a 5.
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 tightly packed sentences: purpose first, then the trust/verification model, then runtime. No filler, and the most decision-relevant facts are front-loaded.
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 carries return-value burden; it partially discharges this by naming the checklist dimensions a report covers. The exact report shape and how findings are grouped are left implicit, which is the only notable gap for a single-purpose auditing tool.
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, use_ai (with cost/key note and default) and language (with enum and default). The description adds no additional syntax or format detail about these parameters; baseline 3 applies when the schema does the heavy lifting.
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 and resource ('walks through a small-business website the way a customer would') and enumerates the exact dimensions checked (Google listing, phone view, services, price, hours, calling, address, trust, inquiry). An agent knows precisely what this tool produces and the perspective it takes, with no siblings to confuse it with.
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?
Usage is implied rather than stated: the tool audits a small-business site, and the description gives runtime expectations (5-60 seconds) and read-only constraints. There is no explicit when-to-use/when-not-to-use guidance or prerequisite framing (e.g. when a plain fetch would suffice), and no siblings exist to route against, so guidance remains at the implied level.
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.
1 tool update
v0.1.0- First observed
check_website
TDQS
Scored across 1 tool
With only one tool, there is no possibility of confusing it with another. Its purpose is clearly described and distinct.
The single tool uses a clear verb_noun pattern (check_website) in snake_case. No inconsistency exists because there are no other names to compare.
A single tool for an entire website-checking workflow is borderline thin. While the tool itself is comprehensive, the surface offers no granularity for separate checks or stages.
The tool covers the key customer-journey aspects: Google listing, mobile view, services, pricing, hours, calling, address, trust, and inquiry. It reports where customers get stuck and respects read-only and robots.txt constraints, leaving no obvious gap for the stated purpose.
Maintenance
Related MCP Connectors
Scores whether AI assistants can read, understand and quote a public website. No account.
Reads a site as search engines and AI assistants do, ranks its fixes, and checks them live.
Reads a site as search engines and AI assistants do, ranks its fixes, and checks them live.
Website checker for AI coding agents. Measures your site in a real browser, with evidence.
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceChecks whether a website is readable and citable by AI search engines — llms.txt, Schema.org structured data, AI-bot access in robots.txt, content freshness, answer directness, E-E-A-T signals, plus a LocalBusiness Rich Results validator. Free, no API key, remote Streamable HTTP.1MIT
SitePulsar MCP Serverofficial
AlicenseNot gradedqualityDmaintenanceMeasures and improves how findable, readable, and usable a website is to AI answer engines and autonomous AI agents through hosted AEO audit tools.MIT- AlicenseAqualityAmaintenanceAudits a live site for machine legibility (structured data, llms.txt, titles, headings), matches a trade to one of 14 website templates with demo links, and quotes real prices. Remote Streamable HTTP on MCP spec 2026-07-28, with an eval suite in the repo.366 npmMIT
- AlicenseAqualityBmaintenanceEnables auditing any public website, returning a scored plain-English report that flags issues costing customers, covering speed, phone experience, search visibility, contact options, writing quality, and modernity.1MIT