Lister les agents non enregistrés
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.enroll
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.enrollFaites 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.
Des agents apparaissent que personne n’a inscrits. Chaque appel via la passerelle MCP laisse un événement fantôme nommant le DID et l’outil. Vous les lisez, comparez les appelants à votre registre et décidez ce qu’est chacun.
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.
Faites passer un appel par la passerelle en tant qu’agent que personne n’a inscrit.
events contient les 50 plus récents, chacun avec actorDid, tool et mode.
{
"events": [
{
"at": "2026-11-01T09:14:02.118Z",
"event": {
: ,
: ,
: ,
:
}
}
],
: ,
:
}mcp.shadowmcp-shadowidentity.enrollidentity-enroll
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:unknown.example:agent:scraper",
"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:unknown.example:agent:scraper",
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:unknown.example:agent:scraper",
"tool": "fs.write",
},
timeout=30,
)
print(res.status_code, res.json())La route renvoie les 50 événements les plus récents avec le DID, l’outil et le mode. Elle ne dit pas si un appelant est inscrit ; comparez les DID à la liste d’identités pour trouver les inconnus.
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}`, },
});
const body = await res.json();
for (const { at, event } of body.events) console.log(at, event.actorDid, event.tool, event.mode);import os, requests
res = requests.get(
"https://api.intramedial.com/api/v1/acp/mcp/shadow",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
timeout=30,
)
body = res.json()
for e in body["events"]:
print(e["at"], e["event"]["actorDid"], e["event"]["tool"], e["event"]["mode"])Inscrivez le DID comme identité avec un propriétaire et un type. Il correspond alors à un seul agent, et son profil de confiance démarre à 50.
curl -sS -X POST https://api.intramedial.com/api/v1/acp/identity/enroll \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"did": "did:web:unknown.example:agent:scraper",
"displayName": "Docs scraper",
"kind": "partner"
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/identity/enroll", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
did: "did:web:unknown.example:agent:scraper",
displayName: "Docs scraper",
kind: "partner",
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/identity/enroll",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"did": "did:web:unknown.example:agent:scraper",
"displayName": "Docs scraper",
"kind": "partner",
},
timeout=30,
)
print(res.status_code, res.json())Inscrivez avec shadow à true pour suivre un appelant sans le reconnaître. Il reste visible dans la liste, avec chaque appel qu’il a fait, et un appelant refusé reste visible aussi.
curl -sS -X POST https://api.intramedial.com/api/v1/acp/identity/enroll \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"did": "did:web:unknown.example:agent:scraper",
"displayName": "Docs scraper",
"kind": "partner",
"shadow": true
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/identity/enroll", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
did: "did:web:unknown.example:agent:scraper",
displayName: "Docs scraper",
kind: "partner",
shadow: true,
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/identity/enroll",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"did": "did:web:unknown.example:agent:scraper",
"displayName": "Docs scraper",
"kind": "partner",
"shadow": True,
},
timeout=30,
)
print(res.status_code, res.json())Copié de: /docs/mcp-shadow
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.
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.enforceEnregistrez un agent sous son propre DID, avec un nom et un type, pour que chaque action corresponde à un seul agent.
identity.enrollLisez chaque agent, lease, agent en attente et quarantaine que détient le plan, en un appel, sans inventaire à tenir à la main.
coordination.fleetmapUn 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.