Lovec

Official registry AI and agents

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).

PYPI package lovec-mcp
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
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "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_KEY required secret API key issued at https://lovec.tech (format aig_...). Every check is billed to this key's balance.
  • LOVEC_BASE Alternative API host
  • LOVEC_TIMEOUT Hard cap for one API call, seconds

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. lovec-mcp
  2. Установка
  3. Быстрая проверка руками
  4. Подключение к MCP-клиенту
  5. Скан корпуса и отчёт
  6. Переменные окружения

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

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.