Free, no signup: AI crawler check, llms.txt validator, ChatGPT/Perplexity/Gemini citation check.
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.
Check whether ChatGPT, Perplexity and Gemini cite a domain when asked the given questions. Send 1 to 5 realistic buyer questions (each at least 5 characters). Returns, per AI, how many questions cited the domain. Each check calls paid AI APIs, so the limit is 5 checks per 30 minutes per IP.
The domain to look for in AI answers, e.g. example.com.
1 to 5 buyer questions to ask each AI, e.g. "best crm for dentists". Each at least 5 characters.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http free-tools https://grandranker.com/mcp/free
Check whether ChatGPT, Perplexity and Gemini cite a domain when asked the given questions. Send 1 to 5 realistic buyer questions (each at least 5 characters). Returns, per AI, how many questions cited the domain. Each check calls paid AI APIs, so the limit is 5 checks per 30 minutes per IP.
| Argument | Type | Description |
|---|---|---|
| domain* | string | The domain to look for in AI answers, e.g. example.com. |
| queries* | array | 1 to 5 buyer questions to ask each AI, e.g. "best crm for dentists". Each at least 5 characters. |
{
"type": "object",
"required": [
"domain",
"queries"
],
"properties": {
"domain": {
"type": "string",
"description": "The domain to look for in AI answers, e.g. example.com."
},
"queries": {
"type": "array",
"items": {
"type": "string"
},
"description": "1 to 5 buyer questions to ask each AI, e.g. \"best crm for dentists\". Each at least 5 characters."
}
}
}Check whether AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, Bytespider, CCBot) can read a website, and whether it has llms.txt, schema markup and server-rendered content. Returns a 0-100 score and the failed checks.
| Argument | Type | Description |
|---|---|---|
| url* | string | Website URL to check, starting with http:// or https://, e.g. https://example.com. |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Website URL to check, starting with http:// or https://, e.g. https://example.com."
}
}
}Validate an llms.txt file. Pass a website URL to fetch and check its /llms.txt (or /llms-full.txt), or pass the llms.txt text itself. Returns a 0-100 score, valid true/false, and each check. Use it to check a site or to review text drafted for the user. If both are given, the url is used.
| Argument | Type | Description |
|---|---|---|
| url | string | Website URL. The tool fetches its /llms.txt or /llms-full.txt. Leave empty when passing content. |
| content | string | The llms.txt text to validate, up to 200,000 characters. Leave empty when passing url. |
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Website URL. The tool fetches its /llms.txt or /llms-full.txt. Leave empty when passing content."
},
"content": {
"type": "string",
"description": "The llms.txt text to validate, up to 200,000 characters. Leave empty when passing url."
}
}
}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 4, 2026.