{
  "markdown": "<!-- mcp-name: io.github.atomno-mcp/mcp-seo-audit -->\n\n# atomno-mcp-seo-audit\n\n[![PyPI](https://img.shields.io/pypi/v/atomno-mcp-seo-audit)](https://pypi.org/project/atomno-mcp-seo-audit/)\n[![Python](https://img.shields.io/pypi/pyversions/atomno-mcp-seo-audit)](https://pypi.org/project/atomno-mcp-seo-audit/)\n[![License: MIT](https://img.shields.io/badge/license-MIT-green)](LICENSE)\n[![MCP](https://img.shields.io/badge/MCP-server-blue)](https://modelcontextprotocol.io)\n\nMCP (Model Context Protocol) server for **technical SEO & GEO audits**, powered by\nthe [detail.web](https://audit.detailweb.ru) engine — **real measurements, not LLM\nguesses**. Run it from Cursor, Claude Desktop or any MCP client. **8 tools:**\n`audit_site` (deterministic `0–100` health score + letter grade, 78 checks across\n8 categories, plus a **GEO** sub-score — visibility in ChatGPT / Perplexity /\nGoogle AI Overviews), `audit_diff` (compare vs the previous snapshot),\n`robots.txt` & `sitemap.xml` validators, JSON-LD & meta/OpenGraph builders, and\nper-check fix explainers. Probes TLS, redirects, TTFB, AI-crawler access (GPTBot)\nand `llms.txt`. Free tier + **PRO+** (deep-crawl, GEO, 40+ deeper checks) — API\nkeys unlock the deeper engine on the **PRO+** plan and up (see [Free vs PRO+](#free-vs-pro)).\n\n## Why pair it with an LLM?\n\nA language model on its own infers a site from training data and, at best, one\nrendered page — it can't directly read your TLS certificate's expiry, measure\nresponse time, parse `sitemap.xml`, or check whether `GPTBot` is blocked in\n`robots.txt`. This server runs those checks for real: actual HTTP requests,\nsecurity headers, redirect chains, structured-data validation — and returns a\n**deterministic** score (same site → same number), reproducible enough to put in\na client report. Think of it as the instrument and the LLM as the analyst that\ninterprets the readout — the two work best together.\n\n## What you get\n\n- **`audit_site(url, depth=1, lang=\"ru\")`** — one call returns:\n  - health score `0–100` (higher is better) and a letter grade `A–F`;\n  - issues grouped by category (security, SEO & indexing, performance, GEO, …),\n    each with status `pass / warn / fail`;\n  - a short human-readable summary.\n- **`audit_diff(url, lang=\"ru\")`** — re-audits a site and compares it to the\n  previous run: health/score delta and which checks got worse or better. The\n  first call stores a baseline. This is something a one-off LLM question can't\n  do — track a site over time. Stateful feature — needs a key on the **PRO+**\n  plan or higher.\n- **`list_checks(lang=\"ru\")`** — the full catalogue of engine checks grouped by\n  category, with a `free` / `PRO` badge on each — so you (and the agent) can see\n  exactly what the free tier covers and what PRO unlocks.\n- **`explain_issue(check_id, lang=\"ru\")`** — a deep-dive on a single check:\n  why it matters and how to fix it. Pass a `check_id` from `audit_site` or\n  `list_checks`. Title and category are localized; detailed advice is currently\n  in Russian (the `advice_lang` field reports this).\n- **`validate_robots(content, lang=\"ru\")`** — paste a `robots.txt` and get back\n  syntax issues, whether a `Sitemap:` directive is present, whether CSS/JS is\n  blocked from render bots, and which AI crawlers (GPTBot, ClaudeBot, …) are\n  explicitly blocked. No fetch — validates the text you provide.\n- **`check_sitemap(url, lang=\"ru\")`** — fetches a sitemap by URL and reports its\n  format (`urlset` / `sitemapindex`), URL count and common problems (404,\n  non-XML content type, `http://` links, missing `<lastmod>`, the 50k-per-file\n  limit). The fetch is SSRF-guarded on the server.\n- **`build_jsonld(type, fields, lang=\"ru\")`** — generates a ready-to-paste\n  schema.org JSON-LD `<script>` (Organization, LocalBusiness, Article, Product,\n  FAQPage, BreadcrumbList, WebSite) and tells you which required/recommended\n  fields are missing. It never invents data — only what you pass in.\n- **`build_meta(fields, lang=\"ru\")`** — generates `<head>` meta tags (title,\n  description, canonical, Open Graph, Twitter Card) and validates the title\n  (50–60 chars) and description (120–160 chars) lengths.\n\n### Free vs PRO+\n\n| | Free (no key) | PRO+ and up (API key) |\n|---|---|---|\n| Checks | core technical basics | 40+ deeper checks (E-E-A-T, Schema.org, Goldmine title) |\n| GEO | 4 GEO signals | GEO readiness sub-score + deep GEO checks |\n| Crawl | single page | deep-crawl up to 20 pages (`depth=2/3`) |\n\n> **Which plan unlocks the API/MCP?** Programmatic access (this server, `audit_diff`,\n> deep-crawl, GEO sub-score) is enabled on **PRO+** (`pro_plus`), **Business** and\n> **Enterprise**. The entry-level **PRO** plan and the Free tier are web-dashboard\n> only — an API key issued on them authenticates but still returns the **free**\n> result. If you need programmatic access, pick **PRO+** or higher.\n\nThe audit engine itself stays on the server — this package is a thin client\n(HTTP calls + formatting only).\n\n## Install\n\n```bash\nuvx atomno-mcp-seo-audit\n```\n\nOr add to your MCP client config (`mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"seo-audit\": {\n      \"command\": \"uvx\",\n      \"args\": [\"atomno-mcp-seo-audit\"]\n    }\n  }\n}\n```\n\n## Configuration\n\nAll via environment variables:\n\n| Variable | Default | Purpose |\n|---|---|---|\n| `DETAILWEB_API_BASE` | `https://api.detailweb.ru` | Backend base URL |\n| `DETAILWEB_API_KEY` | — | API key (`dwa_...`) from a **PRO+** plan or higher. Without it (or on Free/PRO) → free tier |\n| `DETAILWEB_TIMEOUT` | `60` | HTTP timeout (seconds) |\n| `DETAILWEB_LANG` | `ru` | Default issue-title language (`ru` / `en`) |\n\n**The free tier needs no key and no signup** — just run the command above.\nProgrammatic access (40+ deeper checks, GEO sub-score, deep-crawl, `audit_diff`)\nrequires a key from the **PRO+** plan or higher — the entry-level **PRO** plan is\nweb-dashboard only and its key returns the free result. It is currently\nprovisioned on request: email **kir@detailweb.ru** or reach out via\n[audit.detailweb.ru](https://audit.detailweb.ru). Once your account is active you\ncreate keys yourself in **Dashboard → Account → API keys** (`dwa_…`, shown once)\nand put the key in `DETAILWEB_API_KEY`.\n\n## Example\n\n> \"Audit https://example.com\"\n\nThe agent calls `audit_site(\"https://example.com\")` and gets back the health\nscore, grade and the list of issues to fix.\n\n## License\n\nMIT © atomno-mcp. The open-source client talks to a proprietary hosted backend.\n\n---\n\n## 🇷🇺 На русском\n\nMCP-сервер технического SEO-аудита на движке\n[detail.web](https://audit.detailweb.ru). Запускайте аудит прямо из ИИ-агента\n(Cursor, Claude Desktop и любой MCP-клиент): **health-score**, проблемы по 8\nкатегориям и **GEO**-суб-балл (видимость в ИИ-поиске — ChatGPT, Perplexity,\nAI Overviews).\n\n**Зачем в связке с нейросетью.** Языковая модель сама по себе судит о сайте по\nобучающим данным и в лучшем случае по одной отрисованной странице — она не\nпрочитает напрямую срок SSL-сертификата, не измерит время ответа, не распарсит\n`sitemap.xml` и не проверит, заблокирован ли `GPTBot` в `robots.txt`. Этот сервер\nвыполняет такие проверки по-настоящему: HTTP-запросы, заголовки, редиректы,\nмикроразметка — и даёт **детерминированный** score (тот же сайт → то же число),\nпригодный для отчёта клиенту. Это прибор, а нейросеть — аналитик, который читает\nпоказания. Лучше всего работает связка.\n\n**Инструменты:** `audit_site` (аудит + score + GEO), `audit_diff` (что\nизменилось с прошлой проверки — stateful, тариф PRO+ и выше), `list_checks` (каталог\nпроверок free/PRO), `explain_issue` (почему важно + как исправить),\n`validate_robots`, `check_sitemap`, `build_jsonld`, `build_meta`.\n\n**Установка:**\n\n```bash\nuvx atomno-mcp-seo-audit\n```\n\nВ конфиге MCP-клиента (`mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"seo-audit\": {\n      \"command\": \"uvx\",\n      \"args\": [\"atomno-mcp-seo-audit\"],\n      \"env\": { \"DETAILWEB_LANG\": \"ru\" }\n    }\n  }\n}\n```\n\nБесплатный тариф (базовые проверки, одна страница) работает **сразу, без ключа\nи регистрации**. Программный доступ (40+ глубоких проверок, GEO-суб-балл,\ndeep-crawl до 20 страниц, `audit_diff`) работает с ключом тарифа **PRO+**\n(`pro_plus`) и выше — **Business**, **Enterprise**. Начальный тариф **PRO**\n(1290 ₽) и Free — только веб-кабинет: ключ на них проходит авторизацию, но\nрезультат остаётся бесплатным. Тариф пока выдаём по запросу: напишите на\n**kir@detailweb.ru** или через [audit.detailweb.ru](https://audit.detailweb.ru).\nПосле активации аккаунта ключ (`dwa_…`) создаётся в кабинете → **Аккаунт →\nAPI-ключи** (показывается один раз) и подставляется в `DETAILWEB_API_KEY` в\n`env`. Полное описание инструментов и настроек — в английской версии выше.\n",
  "bytes": 8674,
  "sha": "76e59ed9b25a4872db2f54a37c302d0a7cb41ed705b132de59d57bb3c365f70c",
  "repo_slug": "atomno-mcp/mcp-seo-audit",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_atomno_mcp_mcp_seo_audit_ccf4db1c/readme"
}