MCP server: One MCP server.

Lovec

@lovec-techRun by its publisher: served from their own domain, namespace checked by the registry.MCP server · External

Prompt-injection detector for untrusted text before it reaches an LLM (RU/EN). BYO lovec.tech key.

AI agent governancev0.1.2Apache-2.0Python
Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: only reads or looks up information.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

PyPIlovec-mcpv0.1.2

Run

uvx lovec-mcp

MCP client config

{
  "mcpServers": {
    "lovec": {
      "command": "uvx",
      "args": [
        "lovec-mcp"
      ]
    }
  }
}
README2 min read

lovec-mcp

Локальный MCP-сервер поверх детектора промпт-инъекций lovec.tech. Даёт агентам (Claude Desktop, Claude Code, любой MCP-клиент) тул check_prompt_injection — проверка недоверенного текста (веб-страница, документ, результат тула, письмо) перед тем, как отдать его в другую LLM.

Работает только с вашим собственным ключом — сервер сам ничего не хранит и не логирует, но проверяемый текст уходит в API lovec.tech для анализа. Это тонкий клиент поверх уже существующего API-ключа/баланса с сайта.

Установка

Из PyPI:

bash
pip install lovec-mcp
# или без установки, через uv:
uvx lovec-mcp

Из исходников:

bash
cd lovec-mcp
python3 -m venv .venv
./.venv/bin/pip install -e .

Ключ выпускается на lovec.tech

Быстрая проверка руками

bash
export LOVEC_KEY=aig_...
./.venv/bin/python server.py
bash
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) — один и тот же формат:

json
{
  "mcpServers": {
    "lovec": {
      "command": "uvx",
      "args": ["lovec-mcp"],
      "env": { "LOVEC_KEY": "aig_..." }
    }
  }
}

Если ставили из исходников — вместо uvx укажите интерпретатор venv и путь к server.py:

json
{
  "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, а агент читает готовую сводку.

bash
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_BASEhttps://lovec.techдругой хост API
LOVEC_TIMEOUT60потолок ожидания одного вызова, секунды

Similar modules

Browse AI agent governance