About Lovec
Lovec is a local MCP server that checks untrusted text for prompt injection through lovec.tech before it reaches an LLM. It provides a single-text check and a CLI for scanning document collections.
Key features
- 01Check text for prompt injection
- 02Scan document collections via CLI
- 03Analyze long documents in concurrent chunks
- 04Generate coverage and flag summaries
- 05Resume interrupted scans
Use cases
- 01Check web pages or email before sending them to an LLM
- 02Scan RAG documents and review flagged results
MCP support
It exposes the check_prompt_injection tool to MCP clients and provides the injection_scan_report prompt for summarizing scan results. Checked text is sent to the lovec.tech API.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
uvx lovec-mcpLOVEC_KEYSecretAPI 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, secondsLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
1Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| text | string | Yes |
Details
From the project READMElovec-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 | потолок ожидания одного вызова, секунды |
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.