trust-gate-mcp
Recibos post-cuánticos a prueba de manipulaciones para acciones de agentes consecuentes (Ed25519 + ML-DSA-65, verificables sin conexión).
Documentación
Trust Gate MCP
Recibos post-cuánticos y a prueba de manipulaciones para acciones de agentes consecuentes, como servidor MCP.
Siete herramientas, una primitiva de firma compartida: el OpenAgentOntology de código abierto mint_receipt.
Lo que realmente se firma depende de lo que instales -- OAO detecta su backend en el momento de la importación, por lo que vale la pena decirlo claramente en lugar de anunciar el mejor caso:
| Instalación | Ramas | Notas |
|---|---|---|
pip install trust-gate-mcp | Ed25519 + ML-DSA-65 (FIPS 204) | Por defecto. Python puro (dilithium-py), sin cadena de herramientas nativa. Cumple con el modo PQ requerido. |
pip install "trust-gate-mcp[slh]" | Ed25519 + ML-DSA-65 + SLH-DSA (FIPS 205) | Añade la rama de diversidad basada en hash mediante liboqs, que sobrevive a una ruptura de retículo. Dependencia nativa. |
La verificación requerida por PQ (la predeterminada) exige al menos una rama post-cuántica verificada, por lo que la configuración predeterminada de doble rama es una postura post-cuántica real, no una degradación -- pero solo la instalación [slh] te da la tercera rama basada en hash.
| Herramienta | Qué hace |
|---|---|
mint_receipt_for_record_change | Emite un recibo post-cuántico para un cambio de registro en CRM. Funciona con cualquier CRM (Relaticle de núcleo abierto, CRMs alojados a través de su propio MCP, personalizado). Los valores antiguos/nuevos son hashes SHA-256. |
audit_my_agent_inventory | Clasifica una lista PROPORCIONADA POR EL LLAMADOR de herramientas MCP por el peor arrepentimiento si actúan. Solo lectura. No puede auto-descubrir otros servidores -- el protocolo MCP no lo permite. |
mint_action_receipt | Recibo post-cuántico para cualquier acción de agente consecuente. |
verify_receipt | Verifica un recibo solo con el certificado -- sin conexión, sin BD. Por defecto, modo requerido por PQ. |
gate_decision | Puerta de decisión de dos fases. PREVIEW devuelve evaluación de riesgo + preview_id sin actuar. COMMIT verifica que las entradas coinciden y emite un recibo a prueba de manipulaciones con permiso de ejecución. |
check_egress | Clasificación de salida. Escanea datos en busca de marcadores de sensibilidad y clasifica como PUBLIC / INTERNAL / CONFIDENTIAL / RESTRICTED. Bloquea RESTRICTED. Devuelve clasificación + información de retención + recibo. |
run_exit_drill | Ejercicio de preparación para la salida del proveedor. Comprueba la clave de firma local, el acceso al modelo local (Ollama) y la exportación de datos local. Devuelve resultados paso a paso + recibo. Informativo, sin efectos secundarios. |
Endurecimiento Cuántico (implementación de referencia pol.must_do.150)
- H1 persistencia de clave + arranque con comprobación de deriva de kid FAIL-CLOSED
- H2 límite de velocidad de token-bucket por IP (endurecido contra DoS: evicción FIFO + límite de cuerpo)
- H3 verificación requerida por PQ (derrota los ataques de degradación por eliminación de firma)
- H4
kidde 128 bits en cada recibo emitido (comprobación sin conexión del mismo notario) - Interruptor opcional de autenticación por portador + CORS restringido mediante
TRUST_GATE_BEARER_TOKEN+TRUST_GATE_ALLOWED_ORIGINS - 33/33 pruebas incluyendo simulaciones de ataques de eliminación de PQ adversaria + rotación de IP
Consulta PUBLISH.md para la tabla completa de estado de endurecimiento.
Instalación (stdio)
pip install trust-gate-mcp
trust-gate-mcp
Añade [slh] para la tercera rama basada en hash. Desde un checkout, pip install -e ".[dev]" y luego python -m trust_gate_mcp.
Despliegue en contenedor (Smithery / cualquier host de contenedores)
docker build -t trust-gate-mcp .
docker run -p 8081:8081 -v trust-gate-data:/data/oao trust-gate-mcp
El montaje de volumen en /data/oao es obligatorio para producción -- sin él, la clave de firma rota en cada reinicio y rompe las cadenas de verificación de larga duración. El key_metadata.json persistente contiene el kid del notario; el paso de arranque se niega a iniciar si se desvía.