Lovec
Prompt-injection detector for untrusted text before it reaches an LLM (RU/EN). BYO lovec.tech key.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
lovec-mcpclaude mcp add lovec -e 'LOVEC_KEY=<your lovec_key>' -e 'LOVEC_BASE=https://lovec.tech' -e 'LOVEC_TIMEOUT=60' -- uvx lovec-mcp==0.1.2
{
"mcpServers": {
"lovec": {
"command": "uvx",
"args": [
"lovec-mcp==0.1.2"
],
"env": {
"LOVEC_KEY": "<your lovec_key>",
"LOVEC_BASE": "https://lovec.tech",
"LOVEC_TIMEOUT": "60"
}
}
}
}
Environment variables
LOVEC_KEYrequired secret API key issued at https://lovec.tech (format aig_...). Every check is billed to this key's balance.LOVEC_BASEAlternative API hostLOVEC_TIMEOUTHard cap for one API call, seconds
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
lovec-mcp
Локальный MCP-сервер поверх детектора промпт-инъекций lovec.tech.
Даёт агентам (Claude Desktop, Claude Code, любой MCP-клиент) тул check_prompt_injection —
проверка недоверенного текста (веб-страница, документ, результат тула, письмо) перед тем,
как отдать его в другую LLM.
Работает только с вашим собственным ключом — сервер сам ничего не хранит и не логирует, но проверяемый текст уходит в API lovec.tech для анализа. Это тонкий клиент поверх уже существующего API-ключа/баланса с сайта.
Установка
Из PyPI:
pip install lovec-mcp
# или без установки, через uv:
uvx lovec-mcp
Из исходников:
cd lovec-mcp
python3 -m venv .venv
./.venv/bin/pip install -e .
Ключ выпускается на lovec.tech
Быстрая проверка руками
export LOVEC_KEY=aig_...
./.venv/bin/python server.py
export LOVEC_KEY=aig_...
./.venv/bin/python -c "
import asyncio, server
print(asyncio.run(server.check_prompt_injection('тестовый текст')))
"
Подключение к MCP-клиенту
Claude Desktop (claude_desktop_config.json) или Claude Code (.mcp.json) — один и тот же формат:
{
"mcpServers": {
"lovec": {
"command": "uvx",
"args": ["lovec-mcp"],
"env": { "LOVEC_KEY": "aig_..." }
}
}
}
Если ставили из исходников — вместо uvx укажите интерпретатор venv и путь к server.py:
{
"mcpServers": {
"lovec": {
"command": "/absolute/path/to/lovec-mcp/.venv/bin/python",
"args": ["/absolute/path/to/lovec-mcp/server.py"],
"env": { "LOVEC_KEY": "aig_..." }
}
}
}
Скан корпуса и отчёт
Тул проверяет одну строку за вызов. Для целого корпуса (RAG, база документов) так не выйдет:
каждый вердикт садится в контекст агента, а API отвечает от секунд до минут. Поэтому цикл
вынесен в CLI lovec-scan, а агент читает готовую сводку.
export LOVEC_KEY=aig_...
lovec-scan ./docs --dry-run # сколько будет запросов (= списаний), ничего не отправляет
lovec-scan ./docs --out lovec-scan-out
Разбивает длинные документы на чанки ≤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 | потолок ожидания одного вызова, секунды |
Frequently asked questions
What is Lovec?
Prompt-injection detector for untrusted text before it reaches an LLM (RU/EN). BYO lovec.tech key.
How do I install Lovec?
It runs on your machine. In Claude Code: claude mcp add lovec -e 'LOVEC_KEY=<your lovec_key>' -e 'LOVEC_BASE=https://lovec.tech' -e 'LOVEC_TIMEOUT=60' -- uvx lovec-mcp==0.1.2. For other clients, paste the JSON configuration from this page into their MCP settings.
Does Lovec need an API key?
Yes. It expects LOVEC_KEY, which you set in its configuration.
Is Lovec open source?
Yes. Its code is on GitHub under the Apache-2.0 license.
Who maintains Lovec?
It is published by lovec-tech. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.