Assay A2A, MCP & x402 Pre-Flight Verifier & Observatory
Live behavioral security verifier, schema auditor, and trust oracle for A2A, MCP & x402 agents.
使うべきか
品質と安全性
検出事項(5)
- HIGH
- MEDIUMassay_preflight 内
- MEDIUMassay_probe 内
- MEDIUMassay_verify_delivery 内
- MEDIUMassay_get_ledger_policy 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"assay": {
"url": "https://assay.agentdiet.dev/mcp"
}
}
}リモートエンドポイント
https://assay.agentdiet.dev/mcpstreamable-httpできること
ツール一覧
ツール(4)
🟢assay_preflight(target, expected_tools_hash)
Gate a remote MCP, A2A, or x402 endpoint before calling or paying it by probing live JSON-RPC reachability, hashing tools/list (SHA-256), and scanning for prompt-injection poisoning. When expected_tools_hash is provided, any mismatch against the live tools/list digest forces verdict='deny' to block silent schema rug-pulls; when omitted, verdict reflects liveness and injection safety alone. Read-only gate; first 5 calls/IP are free and quota-exceeded calls return a 402 top-up prompt. Use before tool execution or payment; to register or refresh public leaderboard telemetry use assay_probe; to read or pin stored policy hashes use assay_get_ledger_policy; after payment use assay_verify_delivery. Example: target='https://agentdiet-72343955726.us-central1.run.app/mcp'.
入力スキーマ
{
"type": "object",
"properties": {
"target": {
"type": "string",
"minLength": 8,
"maxLength": 512,
"examples": [
"https://agentdiet-72343955726.us-central1.run.app/mcp"
],
"description": "Public HTTPS URL of the remote MCP server, A2A agent, or x402 endpoint to inspect (e.g. 'https://tandem.ac/mcp'). Private and loopback IPs are blocked."
},
"expected_tools_hash": {
"type": "string",
"minLength": 0,
"maxLength": 128,
"description": "Optional 64-char SHA-256 hex digest of the canonical MCP tools/list schema from mcp-lock.json. Omit to read or auto-pin the current live digest; pass a 64-hex digest to enforce zero-drift gating."
}
},
"required": [
"target"
],
"additionalProperties": false,
"examples": [
{
"target": "https://agentdiet-72343955726.us-central1.run.app/mcp"
}
]
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"error": {
"type": [
"string",
"null"
]
},
"verdict": {
"type": "string"
},
"reason": {
"type": "string"
},
"receipt": {
"type": "string"
},
"dossier": {
"type": "object"
}
},
"required": [
"verdict",
"receipt"
]
}🟡assay_probe(target)
Register a new remote MCP, A2A, or x402 endpoint or refresh its public Assay Observatory dossier by running a live HTTP, agent-card, and JSON-RPC tools/list inspection without policy gating. Target must be a public HTTPS origin (private IPs are rejected with a 400 error); each call appends a timestamped observation and increments rug_pulls if tools_hash drifted since the prior stored observation. Writes to the public ledger; first 5 calls/IP are free and retries are idempotent on steady schemas. Use to onboard or re-index a server; for pre-call allow/deny gating use assay_preflight; for historical observations or hash pinning use assay_get_ledger_policy; for post-payment disputes use assay_verify_delivery. Example: target='https://agentdiet-72343955726.us-central1.run.app/mcp'.
入力スキーマ
{
"type": "object",
"properties": {
"target": {
"type": "string",
"minLength": 8,
"maxLength": 512,
"examples": [
"https://agentdiet-72343955726.us-central1.run.app/mcp"
],
"description": "Public HTTPS URL of the remote MCP server, A2A agent, or x402 endpoint to inspect (e.g. 'https://tandem.ac/mcp'). Private and loopback IPs are blocked."
}
},
"required": [
"target"
],
"additionalProperties": false,
"examples": [
{
"target": "https://agentdiet-72343955726.us-central1.run.app/mcp"
}
]
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"error": {
"type": [
"string",
"null"
]
},
"verdict": {
"type": "string"
},
"reason": {
"type": "string"
},
"receipt": {
"type": "string"
},
"dossier": {
"type": "object"
}
},
"required": [
"verdict",
"receipt"
]
}🟢assay_verify_delivery(target, tx_hash, status_code)
Audit a paid x402 or A2A provider after payment to confirm delivery or prove an SLA breach with an HMAC-SHA256 signed receipt. Passing status_code >= 500 forces verdict='sla_breach_confirmed' even if the live re-probe succeeds, while passing tx_hash cryptographically binds your Base or Solana payment signature into the receipt (omitting tx_hash still verifies liveness and issues a probe-bound receipt). Non-destructive; first 5 calls/IP are free and failed target connections do not throw tool errors. Use only after paying a provider; before payment use assay_preflight; for public indexing use assay_probe; for policy history use assay_get_ledger_policy. Example: target='https://agentdiet-72343955726.us-central1.run.app/mcp'.
入力スキーマ
{
"type": "object",
"properties": {
"target": {
"type": "string",
"minLength": 8,
"maxLength": 512,
"examples": [
"https://agentdiet-72343955726.us-central1.run.app/mcp"
],
"description": "Public HTTPS URL of the remote MCP server, A2A agent, or x402 endpoint to inspect (e.g. 'https://tandem.ac/mcp'). Private and loopback IPs are blocked."
},
"tx_hash": {
"type": "string",
"minLength": 0,
"maxLength": 128,
"description": "Optional on-chain payment transaction hash (0x Base USDC hash or base58 Solana signature) to bind into the signed SLA receipt. Omit to run an unsigned post-call SLA check."
},
"status_code": {
"type": "string",
"minLength": 0,
"maxLength": 8,
"description": "Optional HTTP status code returned by the paid endpoint (e.g. '200', '502', '504'). Codes >= 500 force verdict='sla_breach_confirmed' even if a retry probe succeeds."
}
},
"required": [
"target"
],
"additionalProperties": false,
"examples": [
{
"target": "https://agentdiet-72343955726.us-central1.run.app/mcp"
}
]
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"error": {
"type": [
"string",
"null"
]
},
"verdict": {
"type": "string"
},
"reason": {
"type": "string"
},
"receipt": {
"type": "string"
},
"dossier": {
"type": "object"
}
},
"required": [
"verdict",
"receipt"
]
}🟡assay_get_ledger_policy(target, expected_tools_hash)
Retrieve historical conformance observations and manage pinned SHA-256 tools/list policy hashes in the Assay ledger for a target endpoint. When expected_tools_hash is provided, it pins that 64-hex digest as the target's baseline policy and compares it against the latest stored observation; when omitted, it returns the stored dossier and last 20 drift observations without network probing unless the target is unindexed. Idempotent; first 5 calls/IP are free. Use to audit historical drift or pin mcp-lock.json hashes; for live pre-execution gating use assay_preflight; for live re-indexing use assay_probe; for post-payment SLA receipts use assay_verify_delivery. Example: target='https://agentdiet-72343955726.us-central1.run.app/mcp'.
入力スキーマ
{
"type": "object",
"properties": {
"target": {
"type": "string",
"minLength": 8,
"maxLength": 512,
"examples": [
"https://agentdiet-72343955726.us-central1.run.app/mcp"
],
"description": "Public HTTPS URL of the remote MCP server, A2A agent, or x402 endpoint to inspect (e.g. 'https://tandem.ac/mcp'). Private and loopback IPs are blocked."
},
"expected_tools_hash": {
"type": "string",
"minLength": 0,
"maxLength": 128,
"description": "Optional 64-char SHA-256 hex digest of the canonical MCP tools/list schema from mcp-lock.json. Omit to read or auto-pin the current live digest; pass a 64-hex digest to enforce zero-drift gating."
}
},
"required": [
"target"
],
"additionalProperties": false,
"examples": [
{
"target": "https://agentdiet-72343955726.us-central1.run.app/mcp"
}
]
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"error": {
"type": [
"string",
"null"
]
},
"verdict": {
"type": "string"
},
"reason": {
"type": "string"
},
"receipt": {
"type": "string"
},
"dossier": {
"type": "object"
}
},
"required": [
"verdict",
"receipt"
]
}コミュニティ
エビデンス