Skip to main content
Glama

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-mcp

O 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-mcp

Cualquier 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

validate_content

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. domain opcional (general, finance, marketing, legal, seo, agency) y context (audiencia/propósito).

clave

scrub_pii

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

lens_health

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 version todavía informa 1.0.0, el registro aún no se ha puesto al día con este repositorio y npx @soulfield/lens-mcp te 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.md en su directorio de trabajo — ese es el libro de registro de ejecuciones del kit, por diseño. El directorio es el argumento cwd, o el cwd del propio servidor si lo omites, así que pasa cwd explí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

lens_consistency_leaks

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

lens_consistency_numbers

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

lens_consistency_markers

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 leaks arriba: TRIPWIRE no coincidirá con Tripwire y se lee como perdido cuando no se ha perdido nada. Alerta: una representación deliberada de un subconjunto también cuenta de menos legítimamente.

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

SOULFIELD_API_BASE

http://localhost:8002

URL base de la API Lens. Usa https://api.soulfield.one para el servicio alojado, o tu propio despliegue.

SOULFIELD_API_KEY

Requerida para validate_content y scrub_pii.

SOULFIELD_VALIDATE_TIMEOUT_MS

180000

Tiempo de espera por solicitud para la ruta síncrona.

SOULFIELD_VALIDATE_BUDGET_MS

600000

Presupuesto total de tiempo real para el bucle de consulta asíncrona.

SOULFIELD_ASYNC_MIN_CHARS

4000

Longitud de entrada a partir de la cual se activa la ruta asíncrona.

LENS_KIT_BIN

lens-kit

Ruta a la CLI lens-kit para el nivel de validador. Solo necesaria si no está en PATH.

LENS_KIT_TIMEOUT_MS

120000

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

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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