
scopeblind-gateway v0.13.1
Ricevute firmate Ed25519 + politiche Cedar per agenti AI. Gate del mandato finanziario (Legate), proof packs, 3 IETF Internet-Drafts. npx protect-mcp
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.
Perché è diverso
- Fail-closed per impostazione predefinita. In caso di qualsiasi errore di policy, engine mancante, o
fallimento di valutazione, la decisione è DENY. Il gate non consente mai silenziosamente. Esiste una
modalità observe per il rollout in shadow, ma anche lì una chiamata che sarebbe
bloccata viene contrassegnata con
would_deny: true, così un fallimento non è mai silenzioso. - Dimostra la propria moderazione.
serve --enforceedoctoreseguono 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. - Ogni decisione è una ricevuta che chiunque può verificare. Le decisioni sono firmate con Ed25519
e verificabili offline con
@veritasacta/verify. Nessuna fiducia nel fornitore richiesta: la matematica non si cura di chi la esegue.
Quickstart: dall'installazione alla prima prova utile```bash
1. Generate an Ed25519 keypair, config template, and sample policy.
npx protect-mcp init
2. Wrap any MCP server in shadow mode. Nothing is blocked yet; calls are logged.
npx protect-mcp wrap -- node your-mcp-server.js
3. Inspect the local-only dashboard: tool inventory, risk, approvals, receipts.
npx protect-mcp dashboard --open
4. Draft a reviewable policy from observed calls.
npx protect-mcp recommend --write
5. When reviewed, restart the wrapper in enforce mode with that policy.
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.
Il gate come server MCP
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.
Local Action Dashboard
protect-mcp dashboard è la vista operatore per passare dalla visibilità
all'enforcement:
- Inventario degli strumenti: ogni strumento osservato, conteggio delle chiamate, rischio alto/medio/basso, e se la policy attiva ha una regola esatta, un fallback wildcard, o nessuna regola.
- Copertura della policy: modifiche alla policy locale con un clic per
Require approval,Block, oObserve. Riavvia il wrapper dopo aver revisionato le modifiche. - Coda di approvazione delle azioni esatte: lo strumento esatto, l'azione, la destinazione, l'anteprima del payload redatto, l'hash del payload, la base della policy, e la cattura della motivazione prima che un umano approvi, neghi, modifichi o prenda il controllo.
- Catena dei receipt: id delle richieste correlati con gli hash dei receipt firmati, così un revisore di audit può vedere quali decisioni hanno prova crittografica.
- Esportazione audit: scarica il bundle di audit verificabile offline quando esistono receipt firmati. Se esistono solo log locali non firmati, la dashboard spiega che la firma deve essere abilitata prima.
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.