Filtra la chiamata a tool MCP di un agente
Chiedi al gateway MCP il verdetto di Intralock sulla chiamata a tool di un agente, leggi la motivazione ed elenca i chiamanti visti.
mcp.enforce
Chiedi al gateway MCP il verdetto di Intralock sulla chiamata a tool di un agente, leggi la motivazione ed elenca i chiamanti visti.
mcp.enforceFai passare da Intramedial azioni di agenti, hash di contenuti, controlli API, lookup DNS, webhook, chiamate LLM e commit git. Ricevi una ricevuta firmata che chiunque verifica, senza fidarsi di noi.
Un agente chiama tool su un server MCP e vuoi che ogni chiamata sia decisa prima di raggiungere il tool. Il gateway restituisce il verdetto senza alcun modello nel percorso.
Il codice legge la chiave da INTRAMEDIAL_KEY. Tienila nella shell o nel tuo secret store, mai in un file di cui fai commit. Le chiamate che richiedono una persona autenticata non possono usare una chiave: le effettua la console.
Invia il DID dell'agente e il nome del tool. Un nome con forma di mutazione come fs.write è ammesso come scrittura, qualunque altra cosa venga inviata.
mcp.enforcemcp-enforce
curl -sS -X POST https://api.intramedial.com/api/v1/acp/mcp/enforce \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"actorDid": "did:web:acme.example:agent:support",
"tool": "fs.write"
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/mcp/enforce", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
actorDid: "did:web:acme.example:agent:support",
tool: "fs.write",
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/mcp/enforce",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"actorDid": "did:web:acme.example:agent:support",
"tool": "fs.write",
},
timeout=30,
)
print(res.status_code, res.json())allow e reason sono la risposta di Intralock. mode è la modalità del gateway memorizzata.
{
"mode": "observe",
"shadow": false,
"event": { "actorDid": "did:web:acme.example:agent:support", "tool": "fs.write" },
"advise": null,
"allow": false,
"reason": "no_grant",
"action": "write",
"llm": false,
"protocolVersion": "2026-07-28"
}Ogni richiesta attraverso il gateway aggiunge al registro un evento mcp.shadow con DID, tool e modalità. Questa route restituisce i 50 più recenti. Non dice se un chiamante è iscritto, quindi confrontare i chiamanti con l'elenco delle identità per trovare quelli che nessuno ha registrato.
curl -sS https://api.intramedial.com/api/v1/acp/mcp/shadow \
-H "Authorization: Bearer $INTRAMEDIAL_KEY"const res = await fetch("https://api.intramedial.com/api/v1/acp/mcp/shadow", {
headers: { Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`, },
});
console.log(res.status, await res.json());import os, requests
res = requests.get(
"https://api.intramedial.com/api/v1/acp/mcp/shadow",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
timeout=30,
)
print(res.status_code, res.json())Copiato da: /docs/mcp-enforce
instructionShaped è un'euristica sul testo.Il registro è append-only e sigillato sotto radici Merkle. L'ora di una voce è l'orologio di Intramedial e un bundle firmato puoi verificarlo offline con la chiave pubblicata.
Leggi i chiamanti visti dal gateway MCP, poi autorizzane uno come identità o tienilo tracciato come ombra.
mcp.shadowidentity.enrollChiedi al piano se un agente può agire su una fonte SaaS collegata e leggi il verdetto prima che venga inviato qualcosa.
saas.admitAmmetti tramite Intralock la scrittura di un agente su un repository e pubblica il verdetto sul commit come check run o status.
github.enforceUna breve email quando aggiungiamo ricette. Nessun’altra posta, e ti disiscrivi da ogni messaggio.
Senza account: 35 chiamate in 7 giorni sulle route attest, con ricevute marcate come test. Iscriviti quando vuoi andare avanti.