Audit website AI readiness, publish Markdown pages for LLMs and manage llms.txt.
Maintained by@piotrlitwa(verified)Also a maintainer?
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.
Adds a website (domain) to the Anole account. It is crawled in the next background cycle, or right away with crawl_site.
e.g. example.com
Defaults to https://<domain>/sitemap.xml
Existing llms.txt to audit (optional)
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http anole https://anole.app/mcp/
Adds a website (domain) to the Anole account. It is crawled in the next background cycle, or right away with crawl_site.
| Argument | Type | Description |
|---|---|---|
| domain* | string | e.g. example.com |
| language | string | |
| sitemap_url | string | Defaults to https://<domain>/sitemap.xml |
| llms_txt_url | string | Existing llms.txt to audit (optional) |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "e.g. example.com"
},
"language": {
"enum": [
"en",
"pl",
"de",
"fr",
"es"
],
"type": "string",
"default": "en"
},
"sitemap_url": {
"type": "string",
"description": "Defaults to https://<domain>/sitemap.xml"
},
"llms_txt_url": {
"type": "string",
"description": "Existing llms.txt to audit (optional)"
}
}
}Runs the Anole SEO, readability and GEO analyzer on Markdown, HTML or a page URL of the site. Returns a 0-100 score, a traffic light and per-check results. Does not save anything.
| Argument | Type | Description |
|---|---|---|
| url | string | Page URL on the site domain |
| html | string | |
| lang | string | |
| site | string | Site domain, e.g. example.com (see list_sites). Optional when the account has one site. |
| markdown | string | |
| keyphrase | string | Focus topic; auto-detected when omitted |
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Page URL on the site domain"
},
"html": {
"type": "string"
},
"lang": {
"enum": [
"pl",
"en"
],
"type": "string"
},
"site": {
"type": "string",
"description": "Site domain, e.g. example.com (see list_sites). Optional when the account has one site."
},
"markdown": {
"type": "string"
},
"keyphrase": {
"type": "string",
"description": "Focus topic; auto-detected when omitted"
}
}
}Compares a page of the site with the pages ranking in the top 10 for a search phrase: title, meta description, H1-H3 structure and heading topics, word count, paragraphs, links, images, dates and structured data. Returns the client values, medians for the top results, a list of gaps ordered by impact and heading topics the top results cover that the page does not. Uses competitor_urls when given (for example from a web search); otherwise Anole fetches the current Google top 10 when its search API is configured. Analysed pages count towards the plan quota (see get_account).
| Argument | Type | Description |
|---|---|---|
| url* | string | Page on the site to compare |
| site | string | Site domain, e.g. example.com (see list_sites). Optional when the account has one site. |
| country | string | Google market for the Anole search, e.g. Poland, Germany, United States. Defaults from the site language. |
| language | string | Search language code, e.g. pl, en. Defaults to the site language. |
| keyphrase* | string | Search phrase, e.g. "mortgage calculator" |
| competitor_urls | array | Up to 10 URLs ranking for the phrase, best first. Optional when Anole search is configured. |
Starts a background crawl of the site sitemap and refreshes the audit. Returns immediately; check get_site_overview for results.
| Argument | Type | Description |
|---|---|---|
| site | string | Site domain, e.g. example.com (see list_sites). Optional when the account has one site. |
{
"type": "object",
"properties": {
"site": {
"type": "string",
"description": "Site domain, e.g. example.com (see list_sites). Optional when the account has one site."
}
}
}Creates a draft Markdown document in Content Studio, from Markdown text or by converting a web page (source_url) to Markdown. Drafts are not public until publish_document.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language code, e.g. en, pl. Defaults to the site language. |
| site | string | Site domain, e.g. example.com (see list_sites). Optional when the account has one site. |
| slug | string | Defaults to a slug of the title |
| title | string | |
| markdown | string | Markdown body (YAML frontmatter allowed) |
| source_url | string | Page to convert to Markdown instead of markdown |
| description | string |
{
"type": "object",
"properties": {
"lang": {
"type": "string",
"description": "Language code, e.g. en, pl. Defaults to the site language."
},
"site": {
"type": "string",
"description": "Site domain, e.g. example.com (see list_sites). Optional when the account has one site."
},
"slug": {
"type": "string",
"description": "Defaults to a slug of the title"
},
"title": {
"type": "string"
},
"markdown": {
"type": "string",
"description": "Markdown body (YAML frontmatter allowed)"
},
"source_url": {
"type": "string",
"description": "Page to convert to Markdown instead of markdown"
},
"description": {
"type": "string"
}
}
}Returns the full content of a search result (id like doc:123 or url:456).
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
}
}
}Writes a draft Markdown document on a topic with the Anole AI writer and saves it in Content Studio. Uses AI credits (free with an Own Key plan). Not public until publish_document.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language code, e.g. en, pl. Defaults to the site language. |
| site | string | Site domain, e.g. example.com (see list_sites). Optional when the account has one site. |
| title | string | |
| topic* | string |
{
"type": "object",
"required": [
"topic"
],
"properties": {
"lang": {
"type": "string",
"description": "Language code, e.g. en, pl. Defaults to the site language."
},
"site": {
"type": "string",
"description": "Site domain, e.g. example.com (see list_sites). Optional when the account has one site."
},
"title": {
"type": "string"
},
"topic": {
"type": "string"
}
}
}Returns the Anole plan, plan limits, AI credit balance and site usage of the account.
No arguments.
{
"type": "object",
"properties": {}
}Full Markdown body and metadata of one Content Studio document.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language code, e.g. en, pl. Defaults to the site language. |
| site | string | Site domain, e.g. example.com (see list_sites). Optional when the account has one site. |
| slug* | string | Document slug (see list_documents) |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"lang": {
"type": "string",
"description": "Language code, e.g. en, pl. Defaults to the site language."
},
"site": {
"type": "string",
"description": "Site domain, e.g. example.com (see list_sites). Optional when the account has one site."
},
"slug": {
"type": "string",
"description": "Document slug (see list_documents)"
}
}
}The llms.txt file Anole serves for a site, with its public URL.
| Argument | Type | Description |
|---|---|---|
| site | string | Site domain, e.g. example.com (see list_sites). Optional when the account has one site. |
{
"type": "object",
"properties": {
"site": {
"type": "string",
"description": "Site domain, e.g. example.com (see list_sites). Optional when the account has one site."
}
}
}Crawl statistics, average AI-readiness score, llms.txt coverage and document counts for one site.
| Argument | Type | Description |
|---|---|---|
| site | string | Site domain, e.g. example.com (see list_sites). Optional when the account has one site. |
{
"type": "object",
"properties": {
"site": {
"type": "string",
"description": "Site domain, e.g. example.com (see list_sites). Optional when the account has one site."
}
}
}Full audit of one URL from the site sitemap, including the stored SEO/GEO analysis when available.
| Argument | Type | Description |
|---|---|---|
| url* | string | Absolute URL as listed in the sitemap |
| site | string | Site domain, e.g. example.com (see list_sites). Optional when the account has one site. |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Absolute URL as listed in the sitemap"
},
"site": {
"type": "string",
"description": "Site domain, e.g. example.com (see list_sites). Optional when the account has one site."
}
}
}Markdown documents of a site in Content Studio. status: published (default), draft, archived or all.
| Argument | Type | Description |
|---|---|---|
| lang | string | Optional language filter |
| site | string | Site domain, e.g. example.com (see list_sites). Optional when the account has one site. |
| status | string |
{
"type": "object",
"properties": {
"lang": {
"type": "string",
"description": "Optional language filter"
},
"site": {
"type": "string",
"description": "Site domain, e.g. example.com (see list_sites). Optional when the account has one site."
},
"status": {
"enum": [
"published",
"draft",
"archived",
"all"
],
"type": "string",
"default": "published"
}
}
}Lists the websites (domains) in the Anole account with their crawl status and average score.
No arguments.
{
"type": "object",
"properties": {}
}Sitemap URLs of a site with their audit result. filter: all, missing_md (no Markdown version), low_score (worst first), errors (HTTP errors).
| Argument | Type | Description |
|---|---|---|
| site | string | Site domain, e.g. example.com (see list_sites). Optional when the account has one site. |
| limit | integer | |
| filter | string |
{
"type": "object",
"properties": {
"site": {
"type": "string",
"description": "Site domain, e.g. example.com (see list_sites). Optional when the account has one site."
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1
},
"filter": {
"enum": [
"all",
"missing_md",
"low_score",
"errors"
],
"type": "string",
"default": "all"
}
}
}Publishes a document: makes its .md URL public, adds it to the site llms.txt and pushes it to the customer server when auto-deploy is configured.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language code, e.g. en, pl. Defaults to the site language. |
| site | string | Site domain, e.g. example.com (see list_sites). Optional when the account has one site. |
| slug* | string | Document slug (see list_documents) |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"lang": {
"type": "string",
"description": "Language code, e.g. en, pl. Defaults to the site language."
},
"site": {
"type": "string",
"description": "Site domain, e.g. example.com (see list_sites). Optional when the account has one site."
},
"slug": {
"type": "string",
"description": "Document slug (see list_documents)"
}
}
}Searches published documents and audited URLs of the account sites. Returns ids for fetch.
| Argument | Type | Description |
|---|---|---|
| query* | string |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string"
}
}
}Archives a document: removes its public .md URL and its llms.txt entry. Content is kept and can be published again.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language code, e.g. en, pl. Defaults to the site language. |
| site | string | Site domain, e.g. example.com (see list_sites). Optional when the account has one site. |
| slug* | string | Document slug (see list_documents) |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"lang": {
"type": "string",
"description": "Language code, e.g. en, pl. Defaults to the site language."
},
"site": {
"type": "string",
"description": "Site domain, e.g. example.com (see list_sites). Optional when the account has one site."
},
"slug": {
"type": "string",
"description": "Document slug (see list_documents)"
}
}
}Replaces the Markdown body and/or title/description of a document. The previous version is kept as a revision. A published document changes publicly at once.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language code, e.g. en, pl. Defaults to the site language. |
| site | string | Site domain, e.g. example.com (see list_sites). Optional when the account has one site. |
| slug* | string | Document slug (see list_documents) |
| title | string | |
| markdown | string | |
| description | string |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"lang": {
"type": "string",
"description": "Language code, e.g. en, pl. Defaults to the site language."
},
"site": {
"type": "string",
"description": "Site domain, e.g. example.com (see list_sites). Optional when the account has one site."
},
"slug": {
"type": "string",
"description": "Document slug (see list_documents)"
},
"title": {
"type": "string"
},
"markdown": {
"type": "string"
},
"description": {
"type": "string"
}
}
}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 2, 2026.
{
"type": "object",
"required": [
"url",
"keyphrase"
],
"properties": {
"url": {
"type": "string",
"description": "Page on the site to compare"
},
"site": {
"type": "string",
"description": "Site domain, e.g. example.com (see list_sites). Optional when the account has one site."
},
"country": {
"type": "string",
"description": "Google market for the Anole search, e.g. Poland, Germany, United States. Defaults from the site language."
},
"language": {
"type": "string",
"description": "Search language code, e.g. pl, en. Defaults to the site language."
},
"keyphrase": {
"type": "string",
"description": "Search phrase, e.g. \"mortgage calculator\""
},
"competitor_urls": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 10,
"description": "Up to 10 URLs ranking for the phrase, best first. Optional when Anole search is configured."
}
}
}