Free AI visibility checks for any website: AI crawler access, llms.txt, schema, business info.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when the user wants to know whether AI crawlers and AI tools can access a specific website. It reads the site's robots.txt and reports, for 13 AI crawlers (including GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, PerplexityBot and Google-Extended), whether each is allowed or blocked and which rule decides it. It also reports whether the homepage loads for an automated visitor or shows a bot check (such as Cloudflare, SiteGround or AWS WAF), whether the site publishes /llms.txt, and which schema.org types the homepage declares. Input: one public website address. It fetches only robots.txt, the homepage and /llms.txt, identifying itself as PreferlyBot, and changes nothing on the site. A result for the same domain may come from a check run in the last 10 minutes. It does not report what AI tools say about the business, search rankings, or pages other than the homepage.
The public website to check, like example.com or https://www.example.com. One site per call.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http preferly https://www.preferly.ai/mcp
Use this when the user wants to know whether AI crawlers and AI tools can access a specific website. It reads the site's robots.txt and reports, for 13 AI crawlers (including GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, PerplexityBot and Google-Extended), whether each is allowed or blocked and which rule decides it. It also reports whether the homepage loads for an automated visitor or shows a bot check (such as Cloudflare, SiteGround or AWS WAF), whether the site publishes /llms.txt, and which schema.org types the homepage declares. Input: one public website address. It fetches only robots.txt, the homepage and /llms.txt, identifying itself as PreferlyBot, and changes nothing on the site. A result for the same domain may come from a check run in the last 10 minutes. It does not report what AI tools say about the business, search rankings, or pages other than the homepage.
| Argument | Type | Description |
|---|---|---|
| website* | string | The public website to check, like example.com or https://www.example.com. One site per call. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"website"
],
"properties": {
"website": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The public website to check, like example.com or https://www.example.com. One site per call."
}
},
"additionalProperties": false
}Use this when the user asks whether AI tools can read a business's details from its website. It reports whether the business name, phone number, email, address, opening hours and prices are readable as text in the page, only appear after scripts run, or weren't found, on the homepage and up to 2 contact, booking or pricing pages that robots.txt allows. Input: one public website. Reads robots.txt, the homepage, /llms.txt and up to 2 more pages as PreferlyBot; changes nothing.
| Argument | Type | Description |
|---|---|---|
| website* | string | The public website to check, like example.com or https://www.example.com. One site per call. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"website"
],
"properties": {
"website": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The public website to check, like example.com or https://www.example.com. One site per call."
}
},
"additionalProperties": false
}Use this when the user asks whether a website's structured data (schema.org JSON-LD) describes the business correctly. It reads the homepage's JSON-LD and reports the business type it found (Organization, LocalBusiness or a subtype), which business fields are present, missing or look off (name, url, phone, address, hours and more), and where the structured data and the page disagree. Input: one public website. Reads robots.txt, the homepage and /llms.txt as PreferlyBot; changes nothing.
| Argument | Type | Description |
|---|---|---|
| website* | string | The public website to check, like example.com or https://www.example.com. One site per call. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"website"
],
"properties": {
"website": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The public website to check, like example.com or https://www.example.com. One site per call."
}
},
"additionalProperties": false
}Use this when the user asks whether a website has an llms.txt file or whether it's set up correctly. It fetches /llms.txt and reports whether it was found, its size and title, and every place it doesn't follow the llmstxt.org format (missing H1, no summary line, links that aren't Markdown or https), with line numbers. It also lists the homepage's main pages, which can seed a new llms.txt. Input: one public website. Reads robots.txt, the homepage and /llms.txt as PreferlyBot; changes nothing.
| Argument | Type | Description |
|---|---|---|
| website* | string | The public website to check, like example.com or https://www.example.com. One site per call. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"website"
],
"properties": {
"website": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The public website to check, like example.com or https://www.example.com. One site per call."
}
},
"additionalProperties": false
}Use this when the user wants robots.txt lines that control which AI crawlers may read their website. By default it lets AI search and assistant crawlers in (so the site can appear in AI answers) and keeps AI training crawlers out; either can be switched. Optional paths are kept private from every allowed crawler. It returns the lines to paste into robots.txt and which crawlers each group covers. It fetches nothing and needs no website.
| Argument | Type | Description |
|---|---|---|
| allow_search | boolean | Let AI search and assistant crawlers in (default true). |
| allow_training | boolean | Let AI training crawlers in (default false). |
| disallow_paths | array | Paths every allowed crawler should skip, like ["/admin", "/cart"]. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"allow_search": {
"type": "boolean",
"default": true,
"description": "Let AI search and assistant crawlers in (default true)."
},
"allow_training": {
"type": "boolean",
"default": false,
"description": "Let AI training crawlers in (default false)."
},
"disallow_paths": {
"type": "array",
"items": {
"type": "string",
"pattern": "^\\/\\S*$",
"maxLength": 200
},
"maxItems": 20,
"description": "Paths every allowed crawler should skip, like [\"/admin\", \"/cart\"]."
}
},
"additionalProperties": false
}Use this when the user asks what AI assistants say about a specific business, or whether AI tools mention or recommend it. Given the business's public website, it reads the site (robots.txt, the homepage and up to 2 contact, booking or pricing pages), writes 3 typical customer questions, and asks 3 AI models each question, answering from what they already know (no web search). It reports, for each model, whether it named the business and where it ranked when it gave a list, up to 2 statements where an AI model contradicts the website, and a one-line crawler summary. Input: one public website and, optionally, the business name. A result for the same website may come from a check run in the last 24 hours. Changes nothing on the site.
| Argument | Type | Description |
|---|---|---|
| city | string | The city the business serves, if the website doesn't say. |
| website* | string | The public website to check, like example.com or https://www.example.com. One site per call. |
| business_name | string | The business's name, if the website doesn't make it obvious. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"website"
],
"properties": {
"city": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "The city the business serves, if the website doesn't say."
},
"website": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The public website to check, like example.com or https://www.example.com. One site per call."
},
"business_name": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "The business's name, if the website doesn't make it obvious."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 14, 2026.