Protéger l’appel d’outil MCP d’un agent
Demandez à la passerelle MCP le verdict d’Intralock sur l’appel d’outil d’un agent, lisez la raison et listez les appelants qu’elle a vus.
mcp.enforce
Demandez à la passerelle MCP le verdict d’Intralock sur l’appel d’outil d’un agent, lisez la raison et listez les appelants qu’elle a vus.
mcp.enforceFaites passer actions d’agents, hash de contenu, contrôles d’API, requêtes DNS, webhooks, appels LLM et commits git par Intramedial. Obtenez un reçu signé vérifiable par tous – sans nous croire.
Un agent appelle des outils sur un serveur MCP et vous voulez que chaque appel soit décidé avant d’atteindre l’outil. La passerelle renvoie le verdict sans aucun modèle sur le chemin.
Le code lit la clé depuis INTRAMEDIAL_KEY. Gardez-la dans votre shell ou votre coffre à secrets, jamais dans un fichier que vous commitez. Les appels qui exigent une personne connectée ne peuvent pas utiliser de clé : c’est la console qui les fait.
Envoyez le DID de l’agent et le nom de l’outil. Un nom de forme modificatrice tel que fs.write est admis comme une écriture, quoi qu’on envoie d’autre.
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 et reason sont la réponse d’Intralock. mode est le mode de passerelle enregistré.
{
"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"
}Chaque requête passant par la passerelle ajoute un événement mcp.shadow au registre, nommant le DID, l’outil et le mode. Cette route renvoie les 50 plus récents. Elle ne dit pas si un appelant est inscrit : comparez les appelants à votre liste d’identités pour trouver ceux que personne n’a enregistrés.
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())Copié de: /docs/mcp-enforce
instructionShaped est une heuristique sur le texte.Le registre est en ajout seul et scellé sous des racines de Merkle. L’heure d’une entrée est l’horloge propre d’Intramedial, et un bundle signé peut être vérifié hors ligne avec la clé publiée.
Lisez les appelants que la passerelle MCP a vus, puis reconnaissez-en un comme identité ou gardez-le suivi comme agent fantôme.
mcp.shadowidentity.enrollDemandez au plan si un agent peut agir sur une source SaaS connectée, et lisez le verdict avant que quoi que ce soit soit envoyé.
saas.admitAdmettez l’écriture d’un agent dans un dépôt via Intralock et publiez le verdict sur le commit sous forme de check run ou de statut.
github.enforceUn court e-mail quand nous ajoutons des recettes. Rien d’autre, et désabonnement possible depuis chaque message.
Sans compte : 35 appels sur 7 jours sur les routes attest, avec des reçus marqués test. Inscrivez-vous quand vous voulez continuer.