Audit scoped and revocable MCP tool grants — each tool carries an explicit scope, a revocation endpoint is configured, and token rotation posture is healthy (art-150) → validate the agent on-behalf-of (OBO) mandate: subject, bounded scope, intent, and non-expired validity window; mismatch or expiry returns REFUSE (art-151) → validate that the long-running task state transitions are legal per the new MCP specification state machine (art-152). Exports lifecycle attestation with execution_hash. Zero network, zero PII.
audit_mcp_tool_scope_revocation{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "audit_mcp_tool_scope_revocation",
"arguments": {
"tool_grants": [
{ "tool": "search_files", "scopes": ["files:read"] },
{ "tool": "write_file", "scopes": ["files:write"] }
],
"revocation_endpoint": "https://auth.example.com/revoke",
"token_created_unix": 1000000,
"now_unix": 1001000,
"max_token_age_s": 3600,
"next_token_present": false
}
},
"id": 1
}
validate_agent_obo_mandate{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "validate_agent_obo_mandate",
"arguments": {
"mandate": {
"subject": "user:alice@example.com",
"intent": "retrieve_invoice_data",
"scope": ["invoices:read", "payments:read"],
"valid_until_unix": 9999999999
},
"now_unix": 1000000000
}
},
"id": 2
}
validate_mcp_task_lifecycle{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "validate_mcp_task_lifecycle",
"arguments": {
"transitions": [
{ "from": "working", "to": "input_required" },
{ "from": "input_required", "to": "working" },
{ "from": "working", "to": "completed" }
]
}
},
"id": 3
}
Copy this paragraph into Claude, OpenClaw, or any MCP-aware agent to run this whole workflow on the server and check one field that answers a real question.
Question: The agent presents an on-behalf-of mandate. Would the validator still accept it if the clock passed the validity window?
Run the AINumbers MCP tool `run_chain` with {"chain":"agent-authorization-lifecycle"} and read `art-151-agent-obo-mandate-validator.verdict`.
Re-run with `inputs` for `art-151-agent-obo-mandate-validator`, reusing the values that result echoed, with `now_unix` set to 4102444800. Compare the same field.
Verify: call `verify_execution_hash` (https://mcp.ainumbers.co/mcp) with `claimed_hash` set to `composite_execution_hash` and the full `composite_artifact`.
Ledger, for a human re-check: https://ledger.ainumbers.co/
PII rule: send synthetic or anonymised inputs only. The MCP server runs these kernels and logs no payloads.
Chain page: https://ainumbers.co/chaingraph/chains/agent-authorization-lifecycle.html