未登録のエージェントを一覧する
MCPゲートウェイが確認した呼び出し元を読み取り、1つをIDとして承認するか、シャドーとして追跡し続けます。
mcp.shadowidentity.enroll
MCPゲートウェイが確認した呼び出し元を読み取り、1つをIDとして承認するか、シャドーとして追跡し続けます。
mcp.shadowidentity.enroll誰も登録していないエージェントが現れます。MCPゲートウェイを通るすべての呼び出しは、DIDとツールを記したシャドーイベントを残します。それを読み、呼び出し元をレジストリと比較して、それぞれが何であるかを判断します。
コードはキーをINTRAMEDIAL_KEYから読み取ります。キーはシェルやシークレットストアに保管し、コミットするファイルには入れないでください。サインインした人が必要な呼び出しにはキーを使えず、コンソールが実行します。
誰も登録していないエージェントとして、ゲートウェイ経由で呼び出しを送ります。
eventsには最新の50件が含まれ、それぞれにactorDid、tool、modeがあります。
{
"events": [
{
"at": "2026-11-01T09:14:02.118Z",
"event": {
"actorDid": ,
: ,
: ,
:
}
}
],
: ,
:
}mcp.shadowmcp-shadowidentity.enrollidentity-enrollcurl -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())ルートは、DID、ツール、モードを含む最新の50件のイベントを返します。呼び出し元が登録済みかどうかは示さないため、DIDをIDの一覧と比較して、未知のものを見つけてください。
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"])DIDを、所有者と種別とともにIDとして登録します。これにより1つのエージェントに解決され、信頼プロファイルは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())shadowをtrueにして登録すると、承認せずに呼び出し元を追跡できます。一覧には、その呼び出しすべてとともに表示され続け、拒否された呼び出し元も表示されたままになります。
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())転載元の資料: /docs/mcp-shadow
台帳は追記専用で、Merkleルートのもとでシールされます。エントリの時刻はIntramedial自身のクロックによるもので、署名付きバンドルは公開鍵を使ってオフラインで確認できます。
エージェントのツール呼び出しに対するIntralockの判定をMCPゲートウェイに尋ね、理由を読み取り、確認された呼び出し元を一覧します。
mcp.enforce名前と種別を付けて、エージェントを専用のDIDで登録し、すべての操作が1つのエージェントに結び付くようにします。
identity.enrollプレーンが保持するすべてのエージェント、リース、待機、隔離を、手作業の一覧を管理せずに、1回の呼び出しで読み取ります。
coordination.fleetmapレシピ集にレシピを追加したときだけ、短いメールを1通。ほかのメールは送らず、どのメールからも配信停止できます。
アカウントは不要です。attestルートで7日間に35回まで呼び出せ、レシートはテストレシートとして明示されます。続けたくなったら、そのときに登録してください。