Skip to main content

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 потолок ожидания одного вызова, секунды

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)

Source distribution for lovec-mcp 0.1.2
File Size Uploaded
lovec_mcp-0.1.2.tar.gz 24.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lovec-mcp 0.1.2
File Interpreter ABI Platform
lovec_mcp-0.1.2-py3-none-any.whl Python 3 none any Details

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 log

Release 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 log

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page