The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Lovec listing page.
Локальный MCP-сервер поверх детектора промпт-инъекций lovec.tech.
Даёт агентам (Claude Desktop, Claude Code, любой MCP-клиент) тул check_prompt_injection —
проверка недоверенного текста (веб-страница, документ, результат тула, письмо) перед тем,
как отдать его в другую LLM.
Работает только с вашим собственным ключом — сервер сам ничего не хранит и не логирует, но проверяемый текст уходит в API lovec.tech для анализа. Это тонкий клиент поверх уже существующего API-ключа/баланса с сайта.
Из PyPI:
Из исходников:
Ключ выпускается на lovec.tech
Claude Desktop (claude_desktop_config.json) или Claude Code (.mcp.json) — один и тот же формат:
Если ставили из исходников — вместо uvx укажите интерпретатор venv и путь к server.py:
Тул проверяет одну строку за вызов. Для целого корпуса (RAG, база документов) так не выйдет:
каждый вердикт садится в контекст агента, а API отвечает от секунд до минут. Поэтому цикл
вынесен в CLI lovec-scan, а агент читает готовую сводку.
Разбивает длинные документы на чанки ≤5000 символов, ходит в API конкурентно, пишет
results.jsonl построчно — прогон резюмируемый, повторный запуск дочитывает остаток.
Упавшие чанки считаются пробелом в покрытии, а не чистым результатом; на 402 (кончился
баланс) скан останавливается и помечает сводку как неполную.
На выходе summary.json: покрытие, доля флагов с 95% ДИ Уилсона по документам (не по чанкам —
чанки одного документа не независимы), гистограмма баллов, топ флагов с цитатами.
Дальше в MCP-клиенте вызываете prompt injection_scan_report — он подставляет сводку и
правила отчёта: не называть корпус чистым (ноль флагов — это верхняя граница, а не справка о
здоровье), не считать precision/recall на неразмеченном корпусе, показывать пробелы покрытия,
подавать флаги как очередь на разбор. Цитаты из корпуса помечены как недоверенные данные.
| Флаг | Зачем |
|---|---|
--jsonl FILE | читать документы из JSONL {id, text} вместо файлов |
--ext | какие расширения читать (по умолчанию .txt,.md,.markdown,.rst) |
--workers | конкурентность, по умолчанию 4 |
--threshold F | флажить по score >= F вместо вендорского is_injection |
--limit N | взять не больше N документов |
| Переменная | По умолчанию | Зачем |
|---|---|---|
LOVEC_KEY | — (обязательна) | ключ с lovec.tech |
LOVEC_BASE | https://lovec.tech | другой хост API |
LOVEC_TIMEOUT | 60 | потолок ожидания одного вызова, секунды |