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ónRamasNotas
pip install trust-gate-mcpEd25519 + 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.

HerramientaQué hace
mint_receipt_for_record_changeEmite 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_inventoryClasifica 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_receiptRecibo post-cuántico para cualquier acción de agente consecuente.
verify_receiptVerifica un recibo solo con el certificado -- sin conexión, sin BD. Por defecto, modo requerido por PQ.
gate_decisionPuerta 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_egressClasificació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_drillEjercicio 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 kid de 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.