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 |
потолок ожидания одного вызова, секунды |
Metadata
Release files for lovec-mcp 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| lovec_mcp-0.1.2.tar.gz | 24.4 kB | With provenance | Details for lovec_mcp-0.1.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| lovec_mcp-0.1.2-py3-none-any.whl | Python 3 | none | any | Details for lovec_mcp-0.1.2-py3-none-any.whl |
Total release size: 45.5 kB
Release files / lovec_mcp-0.1.2.tar.gz
| Download URL | lovec_mcp-0.1.2.tar.gz |
|---|---|
| Size | 24.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bab3e5da7e8f5b90654c03a3841f7d1ecc925651bc64e8af6938ba5ef6bbbffe
|
|
BLAKE2b-256 checksum How to use checksums |
ecfa48785ad60d938e2d57116c6c90d87d8cd546827793841fb9659939b1d1b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.
Transparency logRelease files / lovec_mcp-0.1.2-py3-none-any.whl
| Download URL | lovec_mcp-0.1.2-py3-none-any.whl |
|---|---|
| Size | 21.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2223b874bf6e14539848ca41fb9857bf9ba265616227601c36a43c8842c5e596
|
|
BLAKE2b-256 checksum How to use checksums |
74495660a1cc8918237fbf58d9a02368c2877f63605f561655fc614155d52ed0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.
Transparency logSecurity for lovec-mcp 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for lovec_mcp-0.1.2.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.