atomno-mcp-seo-audit
OfficialA technical SEO & GEO audit server that performs real HTTP measurements (not LLM guesses) to deliver deterministic health scores and actionable insights.
audit_site: Run a full technical SEO audit on any URL, returning a health score (0–100), letter grade (A–F), and categorized issues (security, SEO, performance, GEO). Checks TLS, redirects, TTFB, AI-crawler access, and more. Includes a GEO sub-score showing visibility in ChatGPT/Perplexity/AI Overviews (PRO).audit_diff: Re-audit a site and compare it against a previous snapshot, showing which checks improved or degraded over time (stateful PRO feature).list_checks: Browse the full catalog of audit checks grouped by category, with free/PRO badges.explain_issue: Get a detailed explanation for any check by itscheck_id, including why it matters and how to fix it.validate_robots: Validaterobots.txtcontent for syntax errors,Sitemap:directives, CSS/JS blocking, and explicit blocks for AI crawlers (GPTBot, ClaudeBot, etc.).check_sitemap: Fetch and analyze a sitemap XML by URL, reporting format, URL count, and common problems (404s, HTTP links, missing<lastmod>, 50k URL limit breaches).build_jsonld: Generate a ready-to-paste schema.org JSON-LD<script>block (Organization, Article, Product, FAQPage, etc.), with identification of missing required/recommended fields.build_meta: Generate<head>meta tags (title, description, canonical, Open Graph, Twitter Card) with length validation (title: 50–60 chars, description: 120–160 chars).
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@atomno-mcp-seo-auditAudit example.com for SEO issues"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
atomno-mcp-seo-audit
MCP (Model Context Protocol) server for technical SEO & GEO audits, powered by
the detail.web engine — real measurements, not LLM
guesses. Run it from Cursor, Claude Desktop or any MCP client. 8 tools:
audit_site (deterministic 0–100 health score + letter grade, 78 checks across
8 categories, plus a GEO sub-score — visibility in ChatGPT / Perplexity /
Google AI Overviews), audit_diff (compare vs the previous snapshot),
robots.txt & sitemap.xml validators, JSON-LD & meta/OpenGraph builders, and
per-check fix explainers. Probes TLS, redirects, TTFB, AI-crawler access (GPTBot)
and llms.txt. Free tier + PRO (deep-crawl, GEO, 40+ deeper checks).
Why pair it with an LLM?
A language model on its own infers a site from training data and, at best, one
rendered page — it can't directly read your TLS certificate's expiry, measure
response time, parse sitemap.xml, or check whether GPTBot is blocked in
robots.txt. This server runs those checks for real: actual HTTP requests,
security headers, redirect chains, structured-data validation — and returns a
deterministic score (same site → same number), reproducible enough to put in
a client report. Think of it as the instrument and the LLM as the analyst that
interprets the readout — the two work best together.
Related MCP server: foglift-mcp
What you get
audit_site(url, depth=1, lang="ru")— one call returns:health score
0–100(higher is better) and a letter gradeA–F;issues grouped by category (security, SEO & indexing, performance, GEO, …), each with status
pass / warn / fail;a short human-readable summary.
audit_diff(url, lang="ru")— re-audits a site and compares it to the previous run: health/score delta and which checks got worse or better. The first call stores a baseline. This is something a one-off LLM question can't do — track a site over time. Stateful PRO feature (needs an API key).list_checks(lang="ru")— the full catalogue of engine checks grouped by category, with afree/PRObadge on each — so you (and the agent) can see exactly what the free tier covers and what PRO unlocks.explain_issue(check_id, lang="ru")— a deep-dive on a single check: why it matters and how to fix it. Pass acheck_idfromaudit_siteorlist_checks. Title and category are localized; detailed advice is currently in Russian (theadvice_langfield reports this).validate_robots(content, lang="ru")— paste arobots.txtand get back syntax issues, whether aSitemap:directive is present, whether CSS/JS is blocked from render bots, and which AI crawlers (GPTBot, ClaudeBot, …) are explicitly blocked. No fetch — validates the text you provide.check_sitemap(url, lang="ru")— fetches a sitemap by URL and reports its format (urlset/sitemapindex), URL count and common problems (404, non-XML content type,http://links, missing<lastmod>, the 50k-per-file limit). The fetch is SSRF-guarded on the server.build_jsonld(type, fields, lang="ru")— generates a ready-to-paste schema.org JSON-LD<script>(Organization, LocalBusiness, Article, Product, FAQPage, BreadcrumbList, WebSite) and tells you which required/recommended fields are missing. It never invents data — only what you pass in.build_meta(fields, lang="ru")— generates<head>meta tags (title, description, canonical, Open Graph, Twitter Card) and validates the title (50–60 chars) and description (120–160 chars) lengths.
Free vs PRO
Free (no key) | PRO (with API key) | |
Checks | core technical basics | 40+ deeper checks (E-E-A-T, Schema.org, Goldmine title) |
GEO | 4 GEO signals | GEO readiness sub-score + deep GEO checks |
Crawl | single page | deep-crawl up to 20 pages ( |
The audit engine itself stays on the server — this package is a thin client (HTTP calls + formatting only).
Install
uvx atomno-mcp-seo-auditOr add to your MCP client config (mcp.json):
{
"mcpServers": {
"seo-audit": {
"command": "uvx",
"args": ["atomno-mcp-seo-audit"]
}
}
}Configuration
All via environment variables:
Variable | Default | Purpose |
|
| Backend base URL |
| — | PRO key ( |
|
| HTTP timeout (seconds) |
|
| Default issue-title language ( |
The free tier needs no key and no signup — just run the command above. The
PRO tier (40+ deeper checks, GEO sub-score, deep-crawl, audit_diff) is
currently provisioned on request: email kir@detailweb.ru or reach out via
audit.detailweb.ru. Once your account is active you
create keys yourself in Dashboard → Account → API keys (dwa_…, shown once)
and put the key in DETAILWEB_API_KEY.
Example
"Audit https://example.com"
The agent calls audit_site("https://example.com") and gets back the health
score, grade and the list of issues to fix.
License
MIT © atomno-mcp. The open-source client talks to a proprietary hosted backend.
🇷🇺 На русском
MCP-сервер технического SEO-аудита на движке detail.web. Запускайте аудит прямо из ИИ-агента (Cursor, Claude Desktop и любой MCP-клиент): health-score, проблемы по 8 категориям и GEO-суб-балл (видимость в ИИ-поиске — ChatGPT, Perplexity, AI Overviews).
Зачем в связке с нейросетью. Языковая модель сама по себе судит о сайте по
обучающим данным и в лучшем случае по одной отрисованной странице — она не
прочитает напрямую срок SSL-сертификата, не измерит время ответа, не распарсит
sitemap.xml и не проверит, заблокирован ли GPTBot в robots.txt. Этот сервер
выполняет такие проверки по-настоящему: HTTP-запросы, заголовки, редиректы,
микроразметка — и даёт детерминированный score (тот же сайт → то же число),
пригодный для отчёта клиенту. Это прибор, а нейросеть — аналитик, который читает
показания. Лучше всего работает связка.
Инструменты: audit_site (аудит + score + GEO), audit_diff (что
изменилось с прошлой проверки — stateful PRO), list_checks (каталог
проверок free/PRO), explain_issue (почему важно + как исправить),
validate_robots, check_sitemap, build_jsonld, build_meta.
Установка:
uvx atomno-mcp-seo-auditВ конфиге MCP-клиента (mcp.json):
{
"mcpServers": {
"seo-audit": {
"command": "uvx",
"args": ["atomno-mcp-seo-audit"],
"env": { "DETAILWEB_LANG": "ru" }
}
}
}Бесплатный тариф (базовые проверки, одна страница) работает сразу, без ключа
и регистрации. PRO-режим (40+ глубоких проверок, GEO-суб-балл, deep-crawl до
20 страниц, audit_diff) пока выдаём по запросу: напишите на
kir@detailweb.ru или через audit.detailweb.ru.
После активации аккаунта ключ (dwa_…) создаётся в кабинете → Аккаунт →
API-ключи (показывается один раз) и подставляется в DETAILWEB_API_KEY в
env. Полное описание инструментов и настроек — в английской версии выше.
Available Tools
8 toolsaudit_diffA
Сравнить сайт с прошлой проверкой: что улучшилось, что деградировало.
Прогоняет свежий аудит и сопоставляет с предыдущим сохранённым снимком того же URL: дельта health/score и какие именно проверки стали хуже/лучше. Это то, чего разовый вопрос к LLM не умеет — отслеживание сайта во времени. Первый вызов сохраняет базовую точку (сравнивать ещё не с чем). Stateful PRO-функция: нужен DETAILWEB_API_KEY — без него available=false и подсказка про PRO.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Полный URL сайта, например https://example.ru | |
| lang | No | Язык заголовков: 'ru' или 'en'. | ru |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and discloses key behaviors: stateful operation, need for API key, PRO function status, and the delta comparison process. No contradictions.
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?
The description is concise and front-loaded with the main purpose. It could be slightly more structured, but it efficiently conveys essential details without verbosity.
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?
Given the existence of an output schema, the description adequately covers purpose, statefulness, and prerequisites. It lacks explicit mention of storage limits or comparison scope, but overall is complete for the tool's complexity.
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%, providing complete parameter documentation. The tool description adds no additional semantics beyond what the schema already provides, warranting the baseline score of 3.
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?
The description clearly states the tool compares a site with a past audit to show improvements and degradations. It distinguishes itself from sibling tool 'audit_site' by emphasizing temporal tracking as a unique capability.
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?
The description explains when to use the tool (tracking changes over time) and mentions prerequisites (API key, baseline creation on first call). However, it lacks explicit guidance on when not to use it or direct alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_siteA
Прогнать технический SEO-аудит сайта — реальными измерениями, не догадкой.
Делает настоящие HTTP-запросы и проверяет факты, которые языковая модель не может узнать «из головы»: срок SSL-сертификата, security-заголовки (HSTS, защита от clickjacking), redirect-chain, robots.txt/sitemap.xml, микроразметку, доступ ИИ-краулеров. Возвращает ДЕТЕРМИНИРОВАННЫЙ health-score (0-100, выше = лучше) — тот же сайт даёт то же число, — буквенную оценку, список проблем по категориям и (для PRO) GEO-суб-балл. Без ключа — free-тариф. Используй, чтобы получить твёрдые факты, а затем объясни их пользователю.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Полный URL сайта, например https://example.ru | |
| lang | No | Язык заголовков проверок: 'ru' или 'en'. | ru |
| depth | No | Глубина: 1=одна страница, 2=≈8 стр, 3=≈20 стр (deep — только PRO). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: real HTTP requests, deterministic health score, free tier without key. It details what's checked and the return format, providing transparency about the tool's operation and side effects.
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?
The description is well-structured with a clear summary first, then details. It is detailed but not overly verbose. Every sentence adds value, though it could be slightly more concise.
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?
Given the tool's complexity (multiple checks, health score, PRO features), the description covers essential aspects: real HTTP requests, deterministic output, free tier, and outputs. It mentions PRO geo sub-score but doesn't detail PRO fully. With an output schema present, completeness is adequate.
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 coverage is 100%, so baseline is 3. The description adds minimal extra context beyond schema (e.g., explaining depth values in prose). It does not add significant parameter-level meaning that the schema lacks.
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?
The description clearly states the tool performs a technical SEO audit with real HTTP requests, listing specific checks (SSL, security headers, redirects, etc.) and outputs like health score, problems list. It distinguishes itself from sibling tools like audit_diff or check_sitemap by being the comprehensive audit tool.
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?
The description implies when to use (to get factual data the model can't guess) and mentions free tier. However, it lacks explicit when-not-to-use or direct comparison with alternatives like check_sitemap or validate_robots, which slightly reduces clarity for an agent deciding between tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_jsonldA
Сгенерировать готовый блок JSON-LD schema.org из переданных полей.
Не выдумывает данные — кладёт только то, что передали, и подсказывает, каких обязательных/рекомендованных полей не хватает. Возвращает готовый .
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Язык сообщений: 'ru' или 'en'. | ru |
| type | Yes | Тип schema.org: Organization, LocalBusiness, Article, Product, FAQPage, BreadcrumbList, WebSite. | |
| fields | Yes | Поля схемы. Для FAQPage — faq=[{question, answer}]; для BreadcrumbList — items=[{name, url}]. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses that it returns a <script> tag, validates required fields, and avoids data invention. This sufficiently reveals core behavior.
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?
The description is two concise sentences. The first sentence states the purpose, the second adds behavioral constraints and output format. No wasted words.
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?
Given output schema exists externally, the description covers generation behavior, validation, and output format adequately. It lacks error details but is complete for typical usage.
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 coverage is 100%, but the description adds value by explaining special field structures for FAQPage (faq array) and BreadcrumbList (items array), enhancing understanding beyond schema descriptions.
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?
The description clearly states the tool generates a ready JSON-LD schema.org block from passed fields, distinguishing it from siblings like build_meta or check_sitemap which handle different metadata tasks.
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?
The description explains that the tool only uses passed data, doesn't invent, and hints about missing required/recommended fields. It doesn't explicitly state when not to use it, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_metaA
Сгенерировать -мета-теги (title, description, canonical, Open Graph, Twitter Card) и проверить длины title (50–60) и description (120–160). Возвращает готовый блок тегов.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Язык сообщений: 'ru' или 'en'. | ru |
| fields | Yes | title, description, url (canonical), image (og 1200×630), site_name, type, twitter_card, locale. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description covers the generative and validation behavior, but does not mention side effects, prerequisites, or error handling.
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?
Two concise sentences with all essential information, no superfluous content.
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?
The description is complete for a simple generation tool with output schema; it explains purpose, validation, and output.
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?
Adds value beyond the schema by specifying length checks (title 50–60, description 120–160) and that it returns a ready block; schema already covers field keys and lang options.
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?
The description clearly states the tool generates <head> meta tags (title, description, canonical, Open Graph, Twitter Card) and validates lengths, distinguishing it from sibling tools like build_jsonld or audit_site.
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?
No explicit when or when-not guidance is provided; usage context is implied but not delineated against alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_sitemapA
Скачать и разобрать sitemap по URL: формат (urlset/index), число URL и частые проблемы (404, не-XML, http-ссылки, отсутствие lastmod, превышение лимита 50 000). Фетч защищён от SSRF на стороне сервера.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL карты сайта, например https://example.ru/sitemap.xml | |
| lang | No | Язык сообщений: 'ru' или 'en'. | ru |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It describes the tool's behavior: downloading, parsing, checking for specific issues, and SSRF protection. It does not mention authentication or error handling but is fairly comprehensive for a sitemap checker.
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?
Two sentences, front-loaded with the main action, no wasted words. The first sentence packs essential details, the second adds a relevant security note.
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?
Given the tool's simplicity (2 params) and presence of an output schema, the description covers all necessary aspects: download, parse, check issues. No critical gaps identified.
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 coverage is 100% with both parameters described. The description adds context beyond the schema by explaining what the tool does with the URL and providing an example format. This adds meaningful value.
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?
The description clearly states the tool downloads and parses a sitemap, identifies format and URL count, and checks for common issues like 404, non-XML, http links, missing lastmod, and exceeding 50,000 limit. It also mentions SSRF protection. This distinguishes it from sibling tools like validate_robots.
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?
The description implies usage for checking sitemaps but does not explicitly state when to use versus alternatives or provide exclusions. Context is clear but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_issueA
Подробно объяснить одну проверку: почему она важна и как её исправить.
Принимает check_id из результата audit_site/list_checks. Заголовок и категория локализуются; развёрнутые советы пока на русском (поле advice_lang это сообщает). Для неизвестного id — found=false.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Язык метаданных: 'ru' или 'en'. | ru |
| check_id | Yes | ID проверки (из audit_site или list_checks), например 'hsts', 'title_quality'. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It discloses that title/category are localized, advice currently in Russian (advice_lang field), and behavior for unknown id (found=false). This is adequate behavioral context.
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 sentences, front-loaded with main purpose, no wasted words. Each sentence adds distinct information: purpose, input source, behavior details.
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 output schema present (context signal), description doesn't need return values. It covers input, localization, error case. Complete for a simple explanation 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 coverage is 100%, so baseline 3. Description adds that check_id comes from audit_site/list_checks and gives example 'hsts', but lang parameter is already well-specified in schema. Minor added value.
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?
Description clearly states it explains one check (why important and how to fix), specifies input source (check_id from audit_site/list_checks), and distinguishes from siblings like list_checks which lists checks.
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?
Explicitly says when to use (after audit_site or list_checks) and what check_id to provide. Does not mention alternatives but purpose is narrow enough that no further guidance is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_checksA
Список всех проверок движка с разбивкой free/PRO по категориям.
Помогает понять, что входит в бесплатный тариф, а что — только в PRO, и какие категории покрывает движок (security, SEO, GEO, E-E-A-T и т.д.).
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Язык заголовков: 'ru' или 'en'. | ru |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the read-only nature (listing) and the parameter but does not mention any behavioral traits such as rate limits, authentication, or data freshness. For a simple list, it is adequate but not fully transparent.
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?
Two concise sentences, each adding value: first states the action, second explains the benefit. No unnecessary words or redundancy.
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?
Given the tool has an output schema, the description does not need to explain return values. It fully covers the tool's purpose and scope with one optional parameter, making it complete for an agent to understand.
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?
The input schema has full coverage (100%) for the single parameter 'lang', with a clear description and default value. The tool description does not add any extra parameter information beyond what the schema already provides, so baseline score of 3 is appropriate.
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?
The description clearly states it lists all engine checks with free/PRO breakdown by categories. It specifies the purpose of understanding which checks are free vs PRO and which categories are covered (security, SEO, etc.). This distinguishes it from sibling tools like audit_site or check_sitemap.
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?
The description provides clear context on when to use this tool: to understand free/PRO coverage and categories. However, it does not explicitly state when not to use it or mention alternative tools for specific needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_robotsA
Проверить содержимое robots.txt: синтаксис, sitemap-директива, блокировка CSS/JS от рендер-ботов и явные запреты ИИ-краулеров (GPTBot, ClaudeBot и т.д.).
Передайте текст файла — фетч не выполняется, проверка локальная на бэкенде.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Язык сообщений: 'ru' или 'en'. | ru |
| content | Yes | Содержимое файла robots.txt (вставьте текст целиком). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries full burden. It discloses that validation is local, no fetch is executed, and lists specific checks. No contradictions. It does not mention auth needs or rate limits, but those are irrelevant for a local validation tool.
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?
Two sentences, no waste. First sentence lists all checks performed; second clarifies operational details. Front-loaded with purpose.
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?
Given the tool's complexity and presence of output schema, the description covers the key aspects: what is checked, that it's local, and parameters. Slightly lacks integration with sibling differentiation, but adequate.
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 coverage is 100%; both parameters are described. The description adds 'вставьте текст целиком' (paste the entire text) for the content parameter, which adds clarity beyond the schema. Baseline 3 with slight improvement.
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?
The description states the tool validates robots.txt content for syntax, sitemap directive, blocking CSS/JS from render bots, and explicit disallowances for AI crawlers. It clearly identifies the resource (robots.txt) and the action (validate), and distinguishes from siblings like check_sitemap or audit_site.
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?
The description says to pass the file text and emphasizes that no fetch is performed; validation is local. This implies when to use (when you have raw content). It does not explicitly list when not to use or name alternatives, but the sibling tools provide context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct aspect of SEO: full audit, diff comparison, sitemap/robots checks, meta/schema generation, and issue explanation. No overlapping purposes.
All tools follow a clear verb_noun pattern in snake_case (e.g., audit_site, check_sitemap, build_meta), making them predictable and easy to distinguish.
With 8 tools, the server covers core SEO audit functionality without being overwhelming or too sparse. Each tool earns its place.
The tool set covers the main lifecycle of SEO auditing: running audits, checking specific files, generating meta/schema, and explaining issues. Minor gaps like page speed or mobile checks exist but are not essential for the stated purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
SEO MCP server: crawl your site, find AI-visibility gaps, and ship the fix from your coding agent.
Free technical-SEO audit MCP: crawl a site, run checks, return an LLM-ready shareable report.
Technical SEO + GEO (AI-search) site audits: hosted crawls, prioritized fixes, report diffs.
Free SEO, GEO, and AEO audits: analyze any page or domain, AI-crawler access, agent readiness.
Related MCP Servers
- AlicenseBqualityBmaintenanceMCP server that enables AI agents to perform comprehensive web audits using Google Lighthouse with 13+ tools for performance, accessibility, SEO, and security analysis.111,18667MIT
- AlicenseNot gradedqualityNot gradedmaintenanceMCP server for website SEO + GEO analysis. Scan any URL to get scores across 5 categories (SEO, GEO, Performance, Security, Accessibility) with actionable fix recommendations. Enables AI coding assistants to audit websites and implement fixes autonomously.-
- AlicenseAqualityDmaintenanceEnables AI agents to perform comprehensive SEO audits on web pages, including meta tags, headings, links, images, performance, and more, via a CLI or MCP server.181MIT
- AlicenseAqualityCmaintenanceAn MCP server that lets an AI agent audit a page for SEO and GEO — on-page tags, structured data, robots.txt, sitemaps, hreflang, and whether ChatGPT, Claude, Perplexity and Gemini can actually crawl and cite you. No API keys required.17MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/atomno-mcp/mcp-seo-audit'
If you have feedback or need assistance with the MCP directory API, please join our Discord server