Как сканер принимает решение
Как сканер принимает решение
Три вердикта, открытые правила. Если какой-то кажется неверным — скажите нам: именно такой фидбек делает его лучше.
- Готов
- Страница регистрирует хотя бы один WebMCP-инструмент, линтер не находит в них ошибок, а оценка готовности к агентам — 70 или выше. Предупреждения, например длинное имя, не мешают.
- Почти
- Страница регистрирует инструменты, но хотя бы в одном есть ошибка линтера (
invalid-name,duplicate-name,missing-description,invalid-input-schema,invisible-unicodeили размер выше жёсткого лимита), либо оценка ниже 70. - Пока нет
- Страница не регистрирует ни одного WebMCP-инструмента. Мы показываем, сколько токенов агент потратил бы, читая страницу вместо них.
Как проходит проверка
- Открываем страницу в headless Chrome на нашем сервере, без cookies и без входа.
- До запуска скриптов страницы добавляем WebMCP-хост, чтобы страница регистрировала инструменты так же, как в браузере агента. Он принимает и старые navigator.modelContext и provideContext, чтобы сайты на них тоже показывали свои инструменты.
- Когда страница загрузилась и инструменты устоялись, читаем имя, описание, схему ввода и аннотации каждого и прогоняем линтер.
- Токены оцениваем по текстовому снимку страницы: число символов, делённое на четыре.
- Для оценки тот же браузер запрашивает у сайта robots.txt, llms.txt, sitemap, версию в Markdown, заголовки Link, индекс Agent Skills и каталог API (по 3 s на каждый, тот же origin, без cookies) и запоминает только, есть ли каждый из них.
- Оценка из 100: WebMCP 50 (инструменты 25, без ошибок линтера 15, все инструменты описаны 5, все с аннотациями 5), цена для агентов 15 (полностью при наличии инструментов, иначе по числу токенов страницы), читаемость 20 и находимость 15 (по 5 за проверку).
- Результат используется повторно 10 минут; каждый посетитель может запускать одну новую проверку в минуту.
Все правила линтера с обоснованием
Считаете вердикт неверным? Откройте issue со ссылкой на проверку.