MCP server for technical SEO audits powered by the detail.web engine: site health score, issues across 8 categories and a GEO (AI-search visibility) sub-score.
8 tools with complete input schemas and descriptions, but descriptions are verbose (200-400+ chars, exceeding the 10-1024 baseline sweet spot of 50-200). Tool names follow verb_noun pattern well (audit_*, validate_*, check_*, build_*, list_*, explain_*). Parameters are typed and constrained (enums for lang, min/max for depth). However, output schemas are NOT documented in the visible code, only input schemas are shown. Error handling and recovery guidance are absent. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being READ_ONLY. Descriptions are LLM-optimized in content but bloated in length, wasting tokens.
Сравнить сайт с прошлой проверкой: что улучшилось, что деградировало. Прогоняет свежий аудит и сопоставляет с предыдущим сохранённым снимком того же URL: дельта health/score и какие именно проверки стали хуже/лучше. Это то, чего разовый вопрос к LLM не умеет — отслеживание сайта во времени. Первый вызов сохраняет базовую точку (сравнивать ещё не с чем). Stateful-функция PRO+: нужен ключ PRO+ в DETAILWEB_API_KEY — иначе available=false.
Прогнать технический SEO-аудит сайта — реальными измерениями, не догадкой. Делает настоящие HTTP-запросы и проверяет факты, которые языковая модель не может узнать «из головы»: срок SSL-сертификата, security-заголовки (HSTS, защита от clickjacking), redirect-chain, robots.txt/sitemap.xml, микроразметку, доступ ИИ-краулеров. Возвращает ДЕТЕРМИНИРОВАННЫЙ health-score (0-100, выше = лучше) — тот же сайт даёт то же число, — буквенную оценку, список проблем по категориям и (на PRO+) GEO-суб-балл. Без ключа или на Free/PRO — free-результат. Используй, чтобы получить твёрдые факты, а затем объясни их пользователю.
Генерировать JSON-LD schema.org микроразметку по типу и полям. Передайте schema_type (например 'Organization', 'Article', 'Product') и поля — бэкенд вернёт готовый <script type="application/ld+json"> с валидацией и советами по обязательным полям.
Генерировать <head> meta-теги с валидацией длины и форматом Open Graph / Twitter. Передайте поля (title, description, canonical, og:image, twitter:card и т.д.) — бэкенд вернёт готовый HTML-блок с проверкой на рекомендуемые длины и предупреждениями.
Output schemas not documented. Tool descriptions explain what is returned (health-score, letter grade, issues by category, GEO sub-score) but no formal schema is visible in code. LLMs cannot plan downstream tool calls or extract fields without knowing the response structure.
Descriptions are 200-400+ characters, exceeding the 50-200 char sweet spot. Verbose descriptions waste tokens and bury key details. E.g., audit_site description is ~380 chars; could be condensed to ~120 chars: 'Run a technical SEO audit: returns health score (0-100), letter grade, and issues across 8 categories (security, SEO, GEO, E-E-A-T). Free tier: single page. PRO+: 40+ checks, deep-crawl up to 20 pages, GEO readiness.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Скачать и разобрать sitemap по URL: формат (urlset/index), число URL и частые проблемы (404, не-XML, http-ссылки, отсутствие lastmod, превышение лимита 50 000). Фетч защищён от SSRF на стороне сервера.
Подробно объяснить одну проверку: почему она важна и как её исправить. Принимает check_id из результата audit_site/list_checks. Заголовок и категория локализуются; развёрнутые советы пока на русском (поле advice_lang это сообщает). Для неизвестного id — found=false.
Список всех проверок движка с разбивкой free/PRO по категориям. Помогает понять, что в бесплатном результате, а что открывается ключом PRO+, и какие категории покрывает движок (security, SEO, GEO, E-E-A-T и т.д.).
Проверить содержимое robots.txt: синтаксис, sitemap-директива, блокировка CSS/JS от рендер-ботов и явные запреты ИИ-краулеров (GPTBot, ClaudeBot и т.д.). Передайте текст файла — фетч не выполняется, проверка локальная на бэкенде.
No tool annotations despite all tools being READ_ONLY. FastMCP supports readOnlyHint, destructiveHint, and idempotentHint. All 8 tools should declare readOnlyHint=true to signal to agents that they are safe to call without side effects.
No error handling or recovery guidance in tool descriptions. E.g., audit_site does not document what happens if the URL is unreachable, malformed, or the API key is invalid. Error responses should guide the LLM: 'Invalid URL. Ensure it starts with http:// or https://.' or 'API key invalid or expired. Check DETAILWEB_API_KEY environment variable.'
audit_diff is stateful (saves snapshots) but no documentation of state management, persistence, or reset behavior. How are snapshots stored? Can they be cleared? What happens if the same URL is audited twice in quick succession? Stateful tools require explicit documentation of side effects and state lifecycle.