Scan and fix your site's AI discoverability: crawler access, llms.txt, JSON-LD. Free.
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.
Add competitors to a project so reports rank the brand against them. (Requires an AIReady API key.)
Project id
Competitors
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Add competitors to a project so reports rank the brand against them. (Requires an AIReady API key.)
| Argument | Type | Description |
|---|---|---|
| project_id* | string | Project id |
| competitors* | array | Competitors |
{
"type": "object",
"required": [
"project_id",
"competitors"
],
"properties": {
"project_id": {
"type": "string",
"description": "Project id"
},
"competitors": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Name"
},
"domain": {
"type": "string",
"description": "Domain"
}
},
"additionalProperties": false
},
"description": "Competitors"
}
},
"additionalProperties": false
}Add prompts (questions buyers ask AI assistants) to a project. Duplicates are skipped. (Requires an AIReady API key.)
| Argument | Type | Description |
|---|---|---|
| prompts* | array | Prompts |
| project_id* | string | Project id |
{
"type": "object",
"required": [
"project_id",
"prompts"
],
"properties": {
"prompts": {
"type": "array",
"items": {
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "Prompt text"
},
"intent": {
"enum": [
"category",
"comparison",
"problem",
"branded",
"local"
],
"type": "string",
"description": "Intent"
}
},
"additionalProperties": false
},
"description": "Prompts"
},
"project_id": {
"type": "string",
"description": "Project id"
}
},
"additionalProperties": false
}Run one prompt through a live AI engine (ChatGPT, Gemini, Perplexity, Copilot or Google AI Mode) from a country and return the full answer, the pages it cited and, if a brand is given, whether and where it was named. Costs one engine check from the workspace budget. (Requires an AIReady API key.)
| Argument | Type | Description |
|---|---|---|
| brand | string | Optional brand to look for |
| domain | string | Optional brand domain, to detect citations of its site |
| engine | string | Engine |
| prompt* | string | The question exactly as a buyer would type it |
| country | string | Two-letter country code (default US) |
| competitors | array | Optional competitor names to rank against |
{
"type": "object",
"required": [
"prompt"
],
"properties": {
"brand": {
"type": "string",
"description": "Optional brand to look for"
},
"domain": {
"type": "string",
"description": "Optional brand domain, to detect citations of its site"
},
"engine": {
"enum": [
"chatgpt",
"gemini",
"perplexity",
"copilot",
"ai_mode"
],
"type": "string",
"description": "Engine"
},
"prompt": {
"type": "string",
"description": "The question exactly as a buyer would type it"
},
"country": {
"enum": [
"US",
"AU",
"GB",
"CA",
"NZ",
"IE",
"IN",
"SG",
"AE",
"ZA",
"DE",
"FR",
"ES"
],
"type": "string",
"description": "Two-letter country code (default US)"
},
"competitors": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional competitor names to rank against"
}
},
"additionalProperties": false
}Scan one website for AI discoverability: which AI crawlers robots.txt allows or blocks (OAI-SearchBot, ClaudeBot, PerplexityBot...), llms.txt, sitemap, schema.org data, meta tags and Content Signals. Returns a 0-100 score, grade and prioritized fixes. Fetches only the domain's /robots.txt, /llms.txt, /sitemap.xml and homepage.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Domain or URL, e.g. example.com |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "Domain or URL, e.g. example.com"
}
},
"additionalProperties": false
}Reference table of AI crawlers and control tokens (GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended...): owner, purpose and whether each drives AI citations or only training.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Create a project that tracks one brand's visibility in AI answers. Optionally add competitors and prompts in the same call. Use suggest_prompts first if you don't have prompts. (Requires an AIReady API key.)
| Argument | Type | Description |
|---|---|---|
| brand* | string | Brand name as people write it |
| domain | string | Brand website domain |
| aliases | array | Other spellings of the brand |
| engines | array | Engines to track (default all): chatgpt, gemini, perplexity, copilot, ai_mode |
| prompts | array | Prompts to track |
| schedule | string | How often to re-check |
| countries | array | Two-letter country codes to ask from (default US) |
| competitors | array | Competitors |
| description | string | What the business does and for whom (helps prompt suggestions) |
Prioritized steps to get named more often: dead cited pages to redirect, readiness fixes, prompts the brand loses and what to publish for each, sites to get listed on, and competitors to close the gap with. (Requires an AIReady API key.)
| Argument | Type | Description |
|---|---|---|
| project_id* | string | Project id |
{
"type": "object",
"required": [
"project_id"
],
"properties": {
"project_id": {
"type": "string",
"description": "Project id"
}
},
"additionalProperties": false
}Which domains and pages AI engines cite for the project's prompts, which are the brand's own or a competitor's, and any of the brand's cited pages that now return 404. (Requires an AIReady API key.)
| Argument | Type | Description |
|---|---|---|
| days | integer | Window in days (default 30) |
| project_id* | string | Project id |
{
"type": "object",
"required": [
"project_id"
],
"properties": {
"days": {
"type": "integer",
"maximum": 365,
"minimum": 1,
"description": "Window in days (default 30)"
},
"project_id": {
"type": "string",
"description": "Project id"
}
},
"additionalProperties": false
}Progress and summary of a visibility run. (Requires an AIReady API key.)
| Argument | Type | Description |
|---|---|---|
| run_id* | string | Run id |
{
"type": "object",
"required": [
"run_id"
],
"properties": {
"run_id": {
"type": "string",
"description": "Run id"
}
},
"additionalProperties": false
}This month's engine spend, checks run and remaining budget, plus the price per check of each engine. (Requires an AIReady API key.)
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}The brand's AI visibility: score, mention and citation rates, average rank, share of voice vs competitors, results per engine, country and prompt, trend over runs, sentiment, and untracked brands the engines recommend. (Requires an AIReady API key.)
| Argument | Type | Description |
|---|---|---|
| days | integer | Window in days (default 30) |
| project_id* | string | Project id |
{
"type": "object",
"required": [
"project_id"
],
"properties": {
"days": {
"type": "integer",
"maximum": 365,
"minimum": 1,
"description": "Window in days (default 30)"
},
"project_id": {
"type": "string",
"description": "Project id"
}
},
"additionalProperties": false
}List the workspace's tracked brands (projects) with their latest visibility summary. (Requires an AIReady API key.)
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}The prompts a project tracks. (Requires an AIReady API key.)
| Argument | Type | Description |
|---|---|---|
| project_id* | string | Project id |
{
"type": "object",
"required": [
"project_id"
],
"properties": {
"project_id": {
"type": "string",
"description": "Project id"
}
},
"additionalProperties": false
}Draft a starter llms.txt from a business name, one-line summary, key pages and contact, so AI assistants get a curated map of the site.
| Argument | Type | Description |
|---|---|---|
| key_pages | array | Key pages |
| description* | string | One sentence about what you offer |
| business_name* | string | Business or site name |
| contact_email | string | Contact email |
{
"type": "object",
"required": [
"business_name",
"description"
],
"properties": {
"key_pages": {
"type": "array",
"items": {
"type": "object",
"required": [
"title",
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Page URL"
},
"note": {
"type": "string",
"description": "What the page covers"
},
"title": {
"type": "string",
"description": "Page title"
}
},
"additionalProperties": false
},
"description": "Key pages"
},
"description": {
"type": "string",
"description": "One sentence about what you offer"
},
"business_name": {
"type": "string",
"description": "Business or site name"
},
"contact_email": {
"type": "string",
"description": "Contact email"
}
},
"additionalProperties": false
}Generate robots.txt rules for an AI policy: max_visibility, search_only, block_training or block_all_ai, optionally with Content-Signal lines and a sitemap reference.
| Argument | Type | Description |
|---|---|---|
| policy* | string | AI crawler policy |
| sitemap_url | string | Optional sitemap URL |
| content_signals | boolean | Add Content-Signal lines (default true) |
{
"type": "object",
"required": [
"policy"
],
"properties": {
"policy": {
"enum": [
"max_visibility",
"search_only",
"block_training",
"block_all_ai"
],
"type": "string",
"description": "AI crawler policy"
},
"sitemap_url": {
"type": "string",
"description": "Optional sitemap URL"
},
"content_signals": {
"type": "boolean",
"description": "Add Content-Signal lines (default true)"
}
},
"additionalProperties": false
}Run every active prompt of a project through every tracked engine and country. Starts immediately and finishes in the background (usually 1-5 minutes); poll get_run_status. Spends engine checks from the monthly budget; the estimate is returned. (Requires an AIReady API key.)
| Argument | Type | Description |
|---|---|---|
| project_id* | string | Project id |
{
"type": "object",
"required": [
"project_id"
],
"properties": {
"project_id": {
"type": "string",
"description": "Project id"
}
},
"additionalProperties": false
}Run the AI readiness scan on the project's own domain and save it to the project history. (Requires an AIReady API key.)
| Argument | Type | Description |
|---|---|---|
| project_id* | string | Project id |
{
"type": "object",
"required": [
"project_id"
],
"properties": {
"project_id": {
"type": "string",
"description": "Project id"
}
},
"additionalProperties": false
}Generate a schema.org JSON-LD snippet (organization, local_business, product or faq) to paste into a page head so AI systems identify the entity correctly.
| Argument | Type | Description |
|---|---|---|
| url* | string | Site URL |
| name* | string | Entity name |
| type* | string | Schema type |
| price | string | Price (product) |
| address | string | Address (local_business) |
| questions | array | FAQ items (faq) |
| telephone | string | Phone (local_business) |
| description | string | Short description |
{
"type": "object",
"required": [
"type",
"name",
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Site URL"
},
"name": {
"type": "string",
"description": "Entity name"
},
"type": {
"enum": [
"organization",
"local_business",
"product",
"faq"
],
"type": "string",
"description": "Schema type"
},
"price": {
"type": "string",
"description": "Price (product)"
},
"address": {
"type": "string",
"description": "Address (local_business)"
},
"questions": {
"type": "array",
"items": {
"type": "object",
"required": [
"question",
"answer"
],
"properties": {
"answer": {
"type": "string",
"description": "Answer"
},
"question": {
"type": "string",
"description": "Question"
}
},
"additionalProperties": false
},
"description": "FAQ items (faq)"
},
"telephone": {
"type": "string",
"description": "Phone (local_business)"
},
"description": {
"type": "string",
"description": "Short description"
}
},
"additionalProperties": false
}Suggest the questions real buyers ask AI assistants in this brand's category (category, problem, comparison and branded prompts). Does not save them; pass the ones you want to add_prompts. (Requires an AIReady API key.)
| Argument | Type | Description |
|---|---|---|
| count | integer | How many (default 15) |
| project_id* | string | Project id |
{
"type": "object",
"required": [
"project_id"
],
"properties": {
"count": {
"type": "integer",
"maximum": 30,
"minimum": 5,
"description": "How many (default 15)"
},
"project_id": {
"type": "string",
"description": "Project id"
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"brand"
],
"properties": {
"brand": {
"type": "string",
"description": "Brand name as people write it"
},
"domain": {
"type": "string",
"description": "Brand website domain"
},
"aliases": {
"type": "array",
"items": {
"type": "string"
},
"description": "Other spellings of the brand"
},
"engines": {
"type": "array",
"items": {
"type": "string"
},
"description": "Engines to track (default all): chatgpt, gemini, perplexity, copilot, ai_mode"
},
"prompts": {
"type": "array",
"items": {
"type": "string"
},
"description": "Prompts to track"
},
"schedule": {
"enum": [
"daily",
"weekly",
"monthly",
"manual"
],
"type": "string",
"description": "How often to re-check"
},
"countries": {
"type": "array",
"items": {
"type": "string"
},
"description": "Two-letter country codes to ask from (default US)"
},
"competitors": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Competitor name"
},
"domain": {
"type": "string",
"description": "Competitor domain"
}
},
"additionalProperties": false
},
"description": "Competitors"
},
"description": {
"type": "string",
"description": "What the business does and for whom (helps prompt suggestions)"
}
},
"additionalProperties": false
}