lens-mcp
Soulfield Lens — MCP-сервер
Внешняя валидация текста, сгенерированного ИИ, как инструмент MCP.
Каждый ИИ-инструмент спрашивает ту же модель, которая написала ответ, хорош ли он. Она отвечает «да». Soulfield Lens работает извне: отдельная модель прогоняет фиксированный гейт по вашему выводу. Она проверяет текст — но не пишет его. Этот пакет помещает этот гейт внутрь Claude Code, Cursor и любого другого MCP-совместимого агента, чтобы вывод можно было проверять на том пути, где он генерируется.
Гейт закрывается при ошибке: пограничный случай возвращает UNKNOWN, а не молчаливый пропуск. Здесь нет этапа генерации, поэтому он не может выдумывать собственные утверждения — только проверять. Он всё ещё может ошибаться в суждении; именно поэтому пограничные случаи возвращают UNKNOWN, а не уверенное «да».
Это тонкая stdio-обёртка вокруг размещённого Lens API (api.soulfield.one). Никакой локальной модели, никакого этапа сборки — один файл, две зависимости.
Он предоставляет два уровня. Уровень гейта (3 инструмента) требует только API-ключа. Уровень валидатора (6 инструментов) опционален и активируется только при наличии локально установленного CLI lens-kit — он выполняет детерминированные кросс-файловые проверки и память дефектов, которые однодокументный гейт не видит. Пропустите его — и уровень гейта работает как раньше.
Попробуйте перед установкой
Демо-эндпоинт без ключа запускает тот же гейт — несколько запусков в день на IP, без регистрации:
curl -s https://api.soulfield.one/v1/demo \
-H 'content-type: application/json' \
-d '{"text": "<paste the AI output you are about to ship>"}'Related MCP server: Arkheia Hallucination Detection MCP
Установка
npm install -g @soulfield/lens-mcpИли запустите без установки: npx @soulfield/lens-mcp.
Claude Code
claude mcp add soulfield-lens \
-e SOULFIELD_API_BASE=https://api.soulfield.one \
-e SOULFIELD_API_KEY=<your-key> \
-- npx @soulfield/lens-mcpЛюбой MCP-клиент (JSON-конфигурация)
{
"mcpServers": {
"soulfield-lens": {
"command": "npx",
"args": ["@soulfield/lens-mcp"],
"env": {
"SOULFIELD_API_BASE": "https://api.soulfield.one",
"SOULFIELD_API_KEY": "<your-key>"
}
}
}
}Для продакшн-вызовов нужен API-ключ — запросите его по адресу hello@soulfield.one. lens_health работает без него.
Инструменты
Уровень гейта — размещённый API, работает из коробки
Инструмент | Что делает | Авторизация |
| Запускает внешний гейт по тексту. Возвращает pass/fail, оценку, результаты по измерениям и детали нарушений с обоснованием. Опциональные | ключ |
| Серверное сканирование на структурированные PII и секреты — email, телефонные номера UK/US, номера кредитных карт, SSN США, номера NI/UTR Великобритании, строки подключения к базам данных и распространённые паттерны API-ключей/учётных данных. Возвращает очищенный текст (каждое совпадение заменяется маркером типа) плюс находки. Основано на паттернах, без вызова LLM. Нацелено на структурированные идентификаторы — не обнаруживает личные имена или свободные PII, а покрытие структурированных форматов является best-effort, не исчерпывающим. | ключ |
| Проверяет, что Lens API работает. Возвращает статус и версию. | нет |
Уровень валидатора — опционально, требует локального CLI lens-kit
Примечание о версии: уровень валидатора появится в 1.1.0. Если
npm view @soulfield/lens-mcp versionвсё ещё сообщает1.0.0, реестр ещё не догнал этот репозиторий, иnpx @soulfield/lens-mcpдаст вам только три инструмента уровня гейта. Пока установите из исходников.
Побочный эффект, о котором стоит знать: каждый вызов уровня валидатора добавляет строку в
RUNS.mdв своей рабочей директории — это журнал запусков набора, так задумано. Директория — это аргументcwd, или собственная cwd сервера, если вы его опускаете, поэтому передавайтеcwdявно, если вам важно, где находится журнал. Чувствительные значения флагов редактируются в строке (--deny <redacted>), поэтому запрещённые термины не попадают на диск.
Предварительное условие: pip install lens_kit (Apache-2.0, github.com/mrhpython/lens-kit), или установите LENS_KIT_BIN на его путь. Без него эти шесть инструментов возвращают UNKNOWN с ошибкой — никогда не молчаливый пропуск. API-ключ не нужен: они работают локально и не вызывают LLM.
Почему они работают локально, а не на размещённом API: они принимают пути к файлам с вашего диска. Размещённый эндпоинт, принимающий произвольные локальные пути, был бы вектором раскрытия файлов, а не функцией. На stdio пути — это ваша собственная машина, поэтому возможность безопасна здесь и только здесь — и по этой причине она не будет добавлена в размещённый API.
Инструмент | Что делает | Семантика выхода |
| Сканирует файлы на термины из списка запрещённых (без учёта регистра, литерально). Запускайте на каждом файле, предназначенном для клиентов, перед необратимой публикацией: ловит реальное имя клиента, внутренний кодовый нейм или запрещённый абсолют, выживший в опубликованном тексте. Сканер учётных данных этого не найдёт, потому что здесь нет ничего похожего на учётные данные. Слеп к отрицаниям: запрещённая фраза, процитированная для опровержения, совпадает так же, как и утверждаемая. | совпадение доказывает наличие строки — выносите вердикт |
| Проверяет, что каждое числовое значение в сводке действительно встречается в тексте, который она резюмирует. Ловит выдуманную цифру. Предупреждение: только литеральное сопоставление, без производной арифметики, и цифра, указанная как заменённая («заменяет оценку ~471»), помечается так же, как устаревшая. Проверяйте, не доверяйте автоматически. | нарушение / чисто |
| Проверяет, что маркеры доказательств в источнике сохраняются в каждом отрендеренном выводе — оговорка или цитата, потерянная между форматами. Чувствительно к регистру, в отличие от | нарушение / чисто |
Выбор запрещённых терминов и маркеров. Эти три — сигнальные, а не оракулы — при живом запуске на собственной копии этого проекта они дали шесть флагов и ноль реальных дефектов, по трём различным классам ложных срабатываний (отрицание, заменённая цифра, регистр). Это задуманное поведение, и именно поэтому доктрина гласит: выносите вердикт, никогда не применяйте автоматически. Запрещённые термины лучше всего работают как строки, которые ошибочны в любом контексте — реальное имя клиента, внутренний кодовый нейм — а не как утверждения, которые вы не делаете и которые законно появляются внутри оговорок. Маркеры лучше всего работают, когда их регистр стабилен между источником и отрисовкой.
| lens_catches_relevant | Читает банк дефектов перед валидацией: предыдущие именованные дефекты для типа артефакта, сначала наиболее частые. Паттерны на пороге помечаются [PROMOTE] — они повторяются достаточно часто, чтобы заслуживать фиксированной проверки. | — |
| lens_catches_add | Записывает именованный дефект, чтобы он был пойман в следующий раз: что было не так, общий паттерн, правило на будущее. Обычные прохождения отклоняются по замыслу — только реальные дефекты. | — |
| lens_catches_stats | Подсчёты повторяемости по паттернам с предложениями о продвижении. Говорит, что укрепить следующим. | — |
Два уровня дополняют друг друга, а не являются альтернативами. У гейта нет инструментов и нет доступа к файлам — именно это делает его независимой проверкой, и именно поэтому он не видит противоречие, разбросанное по двум файлам. Уровень валидатора видит диск; гейт владеет оценкой. Сочетайте их: собирайте доказательства на уровне подложки с помощью локальных инструментов, передавайте текст гейту и никогда не спорьте с FAIL гейта до PASS. Полный протокол: docs/VALIDATOR-AGENT.md.
Что вы получаете за каждый запуск: квитанции — что проверялось, что прошло, что было удержано и почему. Машиночитаемо, а не значок. Мы не дадим вам гарантированную цифру точности для ваших данных: оценки не переносятся между моделями, наборами данных и средами выполнения, а инструмент, обещающий фиксированную цифру на данных, которые он никогда не видел, делает именно то утверждение, для поимки которого существует этот гейт.
Длинные входные данные
Входные данные от ~4 000 символов и выше отправляются как асинхронное задание и автоматически опрашиваются до завершения, поэтому одна длинная валидация никогда не умирает из-за тайм-аута запроса. Короткие входные данные используют быстрый синхронный путь. Никакой настройки не требуется.
Конфигурация (переменные окружения)
Переменная | По умолчанию | Назначение |
|
| Базовый URL Lens API. Используйте |
| — | Требуется для |
|
| Тайм-аут на запрос для синхронного пути. |
|
| Общий бюджет настенного времени для цикла асинхронного опроса. |
|
| Длина входных данных, при которой активируется асинхронный путь. |
|
| Путь к CLI |
|
| Тайм-аут для команды уровня валидатора. При тайм-ауте вердикт — UNKNOWN, никогда не пропуск. |
Остальная часть продукта
Эта обёртка — одна из нескольких поверхностей на том же движке:
Бесплатный аудит с одним результатом — api.soulfield.one/audit. Аудит и есть демо.
Подключите (SDK stop-hook и middleware) — api.soulfield.one/developers.
Владейте — набор: lenses, compiler, self-improve loop, validator agent, Apache-2.0. Обучайте его на собственных данных. Публичный репозиторий: github.com/mrhpython/lens-kit — склонируйте его,
pip install -e ".[dev]", и набор тестов запускается офлайн без ключа. Установка также активирует указанный выше уровень валидатора.
Мы пропускаем наши собственные маркетинговые тексты через тот же фильтр, который предоставляет этот пакет.
Лицензия
MIT — см. LICENSE. (Продукт lens-kit лицензируется отдельно под Apache-2.0.)
This server cannot be installed
Maintenance
Related MCP Connectors
Free mechanical checks for AI text: unnamed counts, dangling references, bad arithmetic, misquotes.
Agentic code review, no signup to try: reality gates + frontier-model review, with veto.
Deterministic trust gate for AI output: leaked-secret, prompt-injection & PII in one call.
Fact-checks generated content against your sources of truth showing what to trust, change, & verify.
Related MCP Servers
- AlicenseAqualityCmaintenanceAdversarial AI review API — independent AI reviews another AI's output. Stop LLMs from grading their own homework. Provides automated quality assurance for AI-generated code, content, and other outputs through independent review pipelines.453MIT

Arkheia Hallucinationofficial
AlicenseNot gradedqualityBmaintenanceDetect fabrication and hallucination in any LLM output. Score responses from GPT-4o, Claude, Gemini, Llama and 30+ models. Free tier included.1MIT
perf-mcpofficial
AlicenseAqualityDmaintenanceFact-checks and fixes AI outputs by catching hallucinations, repairing broken JSON, and correcting errors before they reach users, with tools for verification, validation, and correction.473MIT- AlicenseAqualityBmaintenanceA private, open-source AI-text checker. Get a read on whether text looks AI-written, the exact AI-tell spans to fix, a reuse check, and a grammar pass.4MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mrhpython/lens-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server