
Recibos firmados con Ed25519 + políticas Cedar para agentes de IA. Puerta de mandato financiero (Legate), paquetes de prueba, 3 borradores de Internet del IETF. npx protect-mcp
Puerta de política Cedar de fallo cerrado más recibos firmados para llamadas a herramientas de agentes de IA.
protect-mcp es una puerta que se sitúa delante de las llamadas a herramientas de un agente de IA. Evalúa
cada llamada contra una política Cedar (el mismo lenguaje
que AWS usa para IAM), bloquea lo que infringe las reglas antes de que se ejecute, y firma un
recibo Ed25519 verificable sin conexión de cada decisión. Se ejecuta localmente, no envía
telemetría de tus decisiones a ningún sitio, y tiene licencia MIT.
would_deny: true, de modo que un fallo nunca es silencioso.serve --enforce y doctor ejecutan una
autoprueba de arranque y se niegan a armar la puerta a menos que puedan demostrar que una acción
conocida como prohibida es realmente denegada. Una puerta que no puede probar que deniega no arranca.@veritasacta/verify.
No se requiere confiar en un proveedor: a las matemáticas no les importa quién las ejecuta.npx protect-mcp init
npx protect-mcp wrap -- node your-mcp-server.js
npx protect-mcp dashboard --open
npx protect-mcp recommend --write
npx protect-mcp --policy protect-mcp.recommended.json --enforce -- node your-mcp-server.js
Para Claude Desktop, ejecuta primero un parche de configuración en modo dry-run y luego aplícalo:```bash
npx protect-mcp wrap --claude-desktop
npx protect-mcp wrap --claude-desktop --write
npx protect-mcp dashboard --open
El panel de control se enlaza a 127.0.0.1, solo lee archivos locales de registro/recibo, y no
sube nada. Usa npx protect-mcp connect solo si quieres explícitamente un
panel de control ScopeBlind alojado.
Si prefieres llamar a la puerta como herramientas en lugar de conectar los hooks de Claude Code, ejecútala como un servidor MCP:```bash npx protect-mcp mcp
Habla MCP sobre stdio y expone cuatro herramientas de solo lectura, todo el bucle:
- **`evaluate_action`**: decide una llamada a herramienta propuesta contra una política Cedar en línea, fail-closed (cualquier error de política es DENY). Devuelve `{ allowed, decision, reason, policy_digest }`.
- **`sign_decision`**: convierte una decisión en un recibo firmado con Ed25519 (una denegación firma un `gateway_restraint`, un permiso un `decision_receipt`). Devuelve el recibo y su clave pública; genera una clave efímera si no proporcionas una.
- **`verify_receipt`**: verifica un recibo firmado sin conexión contra una clave pública. Devuelve `{ valid, error, type, kid, issuer }`.
- **`self_test`**: lo demuestra, sin entradas. Una acción conocida como prohibida es denegada, luego un recibo firmado realiza un round-trip y una copia manipulada falla.
Apunta cualquier host MCP hacia él, por ejemplo Claude Desktop:```json
{
"mcpServers": {
"protect-mcp": { "command": "npx", "args": ["-y", "protect-mcp", "mcp"] }
}
}
Los recibos son compatibles a nivel de bytes con los que el gate firma en tiempo de ejecución, por lo que un recibo generado aquí se verifica con @veritasacta/verify y el verificador del navegador de la misma manera.
protect-mcp dashboard es la vista del operador para pasar de la visibilidad a la aplicación:
Require approval, Block, u Observe. Reinicia el wrapper después de revisar los cambios.Para aprobaciones de fallback en escritorio en vivo, inicia el panel con el endpoint de aprobación del gateway local y el nonce impresos por el wrapper:```bash
npx protect-mcp dashboard --open
--approval-endpoint http://127.0.0.1:9876
--approval-nonce "$PROTECT_MCP_APPROVAL_NONCE"
`Approve` reenvía a la puerta de enlace local activa cuando esos indicadores están presentes.
`Deny`, `Edit` y `Take over` se registran localmente como registros de resolución de aprobación; úsalos como la instrucción del operador y vuelve a ejecutar la herramienta cuando sea necesario.
### MVP de límite de pago: anclaje de resumen, no carga de datos
Los recibos autofirmados locales siguen siendo gratuitos y verificables sin conexión. El límite de pago es evidencia independiente de que ScopeBlind vio un resumen de recibo en un momento dado, bajo una identidad de organización, sin recibir el prompt sin procesar, la carga útil de la herramienta, la salida, la clave privada ni el recibo sin procesar.```bash
# Create or refresh a local org identity and public-key directory.
npx protect-mcp registry init --org "Meridian Global Macro" --billing-account acct_meridian
# Local preview: writes a digest registry and shareable static verifier page.
npx protect-mcp registry anchor
# Hosted mode: uploads receipt digests only for independent anchoring.
SCOPEBLIND_TOKEN=... npx protect-mcp registry anchor \
--hosted \
--endpoint https://api.scopeblind.com \
--verifier-base https://scopeblind.com
La vista previa local está etiquetada deliberadamente como local-preview-not-independent.
El modo alojado solo ancla hashes de recibos, ids de solicitud, claves públicas de la organización y
metadatos de facturación. No sube recibos sin procesar ni contexto sensible.