lens-mcp
Soulfield Lens — servidor MCP
Validación de fuera hacia dentro para texto generado por IA, como herramienta MCP.
Toda herramienta de IA le pregunta al mismo modelo que escribió la respuesta si es buena. Y dice que sí. Soulfield Lens es de fuera hacia dentro: un modelo separado ejecuta una compuerta fija sobre tu salida. Comprueba texto — no lo escribe. Este paquete coloca esa compuerta dentro de Claude Code, Cursor y cualquier otro agente compatible con MCP, de modo que la salida pueda validarse en el camino donde se genera.
La compuerta es de cierre ante fallos: un caso límite devuelve UNKNOWN, nunca un pase silencioso. No hay paso de generación, por lo que no puede inventar afirmaciones propias — solo comprobar. Aun así puede equivocarse en un juicio; es exactamente por eso que los casos límite devuelven UNKNOWN en lugar de un sí confiado.
Es un wrapper delgado de stdio alrededor de la API Lens alojada (api.soulfield.one). Sin modelo local, sin paso de compilación — un archivo, dos dependencias.
Expone dos niveles. El nivel de compuerta (3 herramientas) solo necesita una clave de API. El nivel de validador (6 herramientas) es opcional y solo se activa si además tienes instalada la CLI lens-kit localmente — ejecuta comprobaciones deterministas entre archivos y la memoria de defectos que la compuerta de un solo documento no puede ver. Omítelo y el nivel de compuerta funciona exactamente igual que antes.
Pruébalo antes de instalar nada
El endpoint de demostración sin clave ejecuta la misma compuerta — unas pocas ejecuciones al día por IP, sin registro:
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
Instalación
npm install -g @soulfield/lens-mcpO ejecútalo sin instalar: 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-mcpCualquier cliente MCP (configuración JSON)
{
"mcpServers": {
"soulfield-lens": {
"command": "npx",
"args": ["@soulfield/lens-mcp"],
"env": {
"SOULFIELD_API_BASE": "https://api.soulfield.one",
"SOULFIELD_API_KEY": "<your-key>"
}
}
}
}Las llamadas de producción necesitan una clave de API — solicítala en hello@soulfield.one. lens_health funciona sin una.
Herramientas
Nivel de compuerta — API alojada, funciona de serie
Tool | Qué hace | Autenticación |
| Ejecuta la compuerta de fuera hacia dentro sobre el texto. Devuelve pass/fail, puntuación, resultados por dimensión y detalles de violación con razonamiento. | clave |
| Escaneo en el servidor de PII estructurada y secretos — correos electrónicos, números de teléfono del Reino Unido/EE. UU., números de tarjeta de crédito, SSN de EE. UU., números NI/UTR del Reino Unido, cadenas de conexión a bases de datos y patrones comunes de claves de API/credenciales. Devuelve el texto depurado (cada coincidencia reemplazada por un marcador de tipo) más los hallazgos. Basado en patrones, sin llamada a un LLM. Se dirige a identificadores estructurados — no detecta nombres personales ni PII de forma libre, y la cobertura de formatos estructurados es de mejor esfuerzo, no exhaustiva. | clave |
| Comprueba que la API Lens esté activa. Devuelve estado y versión. | ninguna |
Nivel de validador — opcional, requiere la CLI lens-kit localmente
Nota de versión: el nivel de validador llega en la 1.1.0. Si
npm view @soulfield/lens-mcp versiontodavía informa1.0.0, el registro aún no se ha puesto al día con este repositorio ynpx @soulfield/lens-mcpte dará solo las tres herramientas del nivel de compuerta. Instala desde el código fuente mientras tanto.
Efecto secundario que conviene saber: cada llamada del nivel de validador añade una fila a
RUNS.mden su directorio de trabajo — ese es el libro de registro de ejecuciones del kit, por diseño. El directorio es el argumentocwd, o el cwd del propio servidor si lo omites, así que pasacwdexplícitamente si te importa dónde vive el registro. Los valores sensibles de las banderas se redactan en la fila (--deny <redacted>), de modo que los términos de denegación no acaben en el disco.
Requisito previo: pip install lens_kit (Apache-2.0, github.com/mrhpython/lens-kit), o define LENS_KIT_BIN con su ruta. Sin él, estas seis herramientas devuelven UNKNOWN con un error — nunca un pase silencioso. No se necesita clave de API: se ejecutan localmente y no hacen ninguna llamada a un LLM.
Por qué se ejecutan localmente y no en la API alojada: toman rutas de archivo de tu disco. Un endpoint alojado que aceptara rutas locales arbitrarias sería un vector de divulgación de archivos, no una funcionalidad. En stdio las rutas son de tu propia máquina, por lo que la capacidad es segura aquí y solo aquí — y por esa razón no se añadirá a la API alojada.
Tool | Qué hace | Semántica de salida |
| Escanea archivos en busca de términos de lista de denegación (literal insensible a mayúsculas). Ejecútalo en cada archivo orientado al cliente antes de una publicación irreversible: detecta un nombre real de cliente, un nombre clave interno o un término absolutamente prohibido que sobrevive en la copia publicada. Un escáner de credenciales no encontrará estos, porque aquí nada es una credencial. Ciego a la negación: una frase prohibida citada para negarla coincide de forma idéntica con la misma frase afirmada. | un acierto demuestra que la cadena está presente — adjudica el veredicto |
| Comprueba que cada literal numérico en un resumen aparezca realmente en el cuerpo que resume. Detecta la cifra inventada. Alerta: solo coincidencia literal, sin aritmética derivada, y una cifra citada como superada ("supersedes the ~471 estimate") se marca exactamente igual que una obsoleta. Revisa, no te fíes automáticamente. | violación / limpio |
| Comprueba que los marcadores de evidencia en una fuente sobrevivan en cada salida renderizada — la advertencia o cita que se pierde entre formatos. Sensible a mayúsculas, a diferencia de | violación / limpio |
Elección de términos de denegación y marcadores. Estas tres son alertas, no oráculos — en una ejecución en vivo sobre la copia de este propio proyecto produjeron seis avisos y cero defectos reales, en tres clases distintas de falsos positivos (negación, cifra superada, mayúsculas). Ese es el comportamiento diseñado, y es por eso que la doctrina es adjudica, nunca apliques automáticamente. Los términos de denegación funcionan mejor como cadenas que son incorrectas en todo contexto — un nombre real de cliente, un nombre clave interno — en lugar de afirmaciones que no haces, que aparecen legítimamente dentro de descargos. Los marcadores funcionan mejor cuando su uso de mayúsculas es estable entre la fuente y la representación.
| lens_catches_relevant | Lee el banco de defectos antes de validar: defectos nombrados previamente para un tipo de artefacto, los más recurrentes primero. Los patrones en el umbral se marcan [PROMOTE] — recurren lo suficiente como para merecer una comprobación fija. | — |
| lens_catches_add | Registra un defecto nombrado para que se detecte la próxima vez: qué estaba mal, el patrón general, la regla hacia adelante. Los pases de rutina se rechazan por diseño — solo defectos reales. | — |
| lens_catches_stats | Conteos de recurrencia por patrón con sugerencias de promoción. Te dice qué reforzar a continuación. | — |
Los dos niveles son complementarios, no alternativas. La compuerta no tiene herramientas ni acceso a archivos — eso es precisamente lo que la convierte en una comprobación independiente, y también es por lo que no puede ver una contradicción repartida entre dos archivos. El nivel de validador ve el disco; la compuerta posee la puntuación. Combínalos: reúne evidencia de sustrato con las herramientas locales, entrega el texto a la compuerta y nunca conviertas un FAIL de la compuerta en un PASS. Protocolo completo: docs/VALIDATOR-AGENT.md.
Lo que obtienes por ejecución: recibos — qué se comprobó, qué pasó, qué se retuvo y por qué. Legible por máquina, no una insignia. No te daremos un número de precisión garantizado para tus datos: las puntuaciones no se transfieren entre modelos, conjuntos de datos y entornos de ejecución, y una herramienta que promete una cifra fija sobre datos que nunca ha visto está haciendo exactamente la afirmación que esta compuerta existe para detectar.
Entradas largas
Las entradas de ~4.000 caracteres o más se envían como un trabajo asíncrono y se consultan hasta completarse automáticamente, de modo que una única validación larga nunca muere por un tiempo de espera de solicitud. Las entradas cortas usan la ruta síncrona rápida. No se necesita configuración.
Configuración (variables de entorno)
Variable | Predeterminado | Propósito |
|
| URL base de la API Lens. Usa |
| — | Requerida para |
|
| Tiempo de espera por solicitud para la ruta síncrona. |
|
| Presupuesto total de tiempo real para el bucle de consulta asíncrona. |
|
| Longitud de entrada a partir de la cual se activa la ruta asíncrona. |
|
| Ruta a la CLI |
|
| Tiempo de espera para un comando del nivel de validador. En caso de tiempo de espera, el veredicto es UNKNOWN, nunca un pase. |
El resto del producto
Este envoltorio es una de las varias interfaces del mismo motor:
Auditoría gratuita de una salida — api.soulfield.one/audit. La auditoría es la demo.
Conéctalo (stop-hook y middleware del SDK) — api.soulfield.one/developers.
Hazlo tuyo — el kit: lentes, compilador, bucle de auto-mejora, agente validador, Apache-2.0. Entrénalo con tus propios datos. Repositorio público: github.com/mrhpython/lens-kit — clónalo,
pip install -e ".[dev]", y la suite de pruebas se ejecuta sin conexión y sin clave. Instalarlo es también lo que activa el nivel de validador mencionado arriba.
Sometemos nuestro propio texto de marketing al mismo control que expone este paquete.
Licencia
MIT — consulta LICENSE. (El producto lens-kit está licenciado por separado bajo 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