
Ricevute firmate Ed25519 + politiche Cedar per agenti AI. Gate del mandato finanziario (Legate), proof packs, 3 IETF Internet-Drafts. npx protect-mcp
Gate di policy Cedar fail-closed più ricevute firmate per le chiamate agli strumenti degli agenti AI.
protect-mcp è un gate che si frappone tra un agente AI e le sue chiamate agli strumenti. Valuta
ogni chiamata rispetto a una policy Cedar (lo stesso linguaggio
che AWS usa per IAM), blocca ciò che infrange le regole prima che venga eseguito, e firma una
ricevuta Ed25519 verificabile offline di ogni decisione. Viene eseguito localmente, non invia
telemetria delle tue decisioni da nessuna parte, ed è distribuito con licenza MIT.
would_deny: true, così un fallimento non è mai silenzioso.serve --enforce e doctor eseguono un self-test
all'avvio e rifiutano di armare il gate a meno che non possano dimostrare che un'azione
nota come proibita venga effettivamente negata. Un gate che non può dimostrare di negare non si avvia.@veritasacta/verify.
Nessuna fiducia nel fornitore richiesta: la matematica non si cura di chi la esegue.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
Per Claude Desktop, esegui prima una patch di configurazione dry-run, poi applicala:```bash
npx protect-mcp wrap --claude-desktop
npx protect-mcp wrap --claude-desktop --write
npx protect-mcp dashboard --open
La dashboard si associa a 127.0.0.1, legge solo file di log/ricevute locali e non
carica nulla. Usa npx protect-mcp connect solo se desideri esplicitamente una
dashboard ScopeBlind ospitata.
Se preferisci chiamare il gate come strumenti anziché configurare gli hook di Claude Code, eseguilo come server MCP:```bash npx protect-mcp mcp
Parla MCP su stdio ed espone quattro strumenti di sola lettura, l'intero ciclo:
- **`evaluate_action`**: valuta una chiamata a uno strumento proposta rispetto a una policy Cedar inline, fail-closed (qualsiasi errore di policy è DENY). Restituisce `{ allowed, decision, reason, policy_digest }`.
- **`sign_decision`**: trasforma una decisione in una ricevuta firmata Ed25519 (un diniego firma un `gateway_restraint`, un'autorizzazione un `decision_receipt`). Restituisce la ricevuta e la sua chiave pubblica; genera una chiave effimera se non ne fornisci una.
- **`verify_receipt`**: verifica una ricevuta firmata offline rispetto a una chiave pubblica. Restituisce `{ valid, error, type, kid, issuer }`.
- **`self_test`**: lo dimostra, senza input. Un'azione nota come vietata viene negata, poi una ricevuta firmata completa il round-trip e una copia manomessa fallisce.
Punta qualsiasi host MCP verso di esso, ad esempio Claude Desktop:```json
{
"mcpServers": {
"protect-mcp": { "command": "npx", "args": ["-y", "protect-mcp", "mcp"] }
}
}
I receipt sono byte-compatibili con quelli che il gate firma a runtime, quindi un
receipt generato qui si verifica con @veritasacta/verify
e il verificatore del browser allo stesso modo.
protect-mcp dashboard è la vista operatore per passare dalla visibilità
all'enforcement:
Require approval,
Block, o Observe. Riavvia il wrapper dopo aver revisionato le modifiche.Per le approvazioni di fallback desktop live, avvia la dashboard con l'endpoint di approvazione
del gateway locale e il nonce stampato dal wrapper:```bash
npx protect-mcp dashboard --open
--approval-endpoint http://127.0.0.1:9876
--approval-nonce "$PROTECT_MCP_APPROVAL_NONCE"
`Approve` inoltra al gateway locale live quando quei flag sono presenti.
`Deny`, `Edit` e `Take over` vengono registrati localmente come record di
risoluzione dell'approvazione; usali come istruzione dell'operatore e riesegui lo strumento quando necessario.
### Paid Boundary MVP: ancoraggio del digest, non caricamento dei dati
Le ricevute locali auto-firmate restano gratuite e verificabili offline. Il confine a pagamento è
una prova indipendente che ScopeBlind ha visto un digest di ricevuta in un dato momento, sotto un'identità
di organizzazione, senza ricevere il prompt grezzo, il payload dello strumento, l'output, la chiave privata o
la ricevuta grezza.```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
L'anteprima locale è deliberatamente etichettata local-preview-not-independent.
La modalità ospitata ancora solo hash delle ricevute, id delle richieste, chiavi pubbliche dell'organizzazione e
metadati di fatturazione. Non carica ricevute grezze o contesto sensibile.