openapi: 3.2.0 info: title: ToolOracle MCP Platform Agent Safety API version: 4.2.0 description: ToolOracle MCP Platform — 89 servers, 1096 tools, OracleNet self-learning agent mesh. Neural routing, W3C DIDs, Verifiable Credentials, escrow-free x402 USDC settlement on Base + XRPL native escrow. x-hedera-mainnet: contract: 0.0.10420310 beacon_topic: 0.0.10420280 join_topic: 0.0.10420282 x-changelog: - version: 4.2.0 date: '2026-04-28' changes: - Canonicalized counts from /assets/catalog.json - Aligned root /openapi.json with /.well-known/openapi.json - Added x-counts and x-canonical-source extensions - version: 4.1.0 date: '2026-04-19' changes: - Added Mesh Economics v1 API paths (/economics/api/*) - Added Mesh Nervous System discovery paths (/.well-known/agent-pulse, /.well-known/meta-tools) - Added /.well-known/mesh-economics discovery endpoint x-counts: servers_online: 89 tools_available: 1096 categories: 7 chains_supported: 13 paid_products: 18 x-canonical-source: https://tooloracle.io/assets/catalog.json x-generated-at: '2026-09-20T02:13:01+00:00' servers: - url: https://tooloracle.io tags: - name: agent-safety paths: /v2/agent_preflight: post: operationId: v2_agent_preflight tags: - agent-safety summary: 'AI agent decision pre-flight: GO / CAUTION / STOP with cryptographic receipt' description: 'AI agent decision pre-flight + action audit + autonomous safety — should agent X execute action Y? Combined check: evidence freshness, provenance trace, policy gate, risk scoring, hallucination signals. Returns GO / CAUTION / STOP / INSUFFICIENT_EVIDENCE with cryptographic receipt. For autonomous agent workflows: tool calls, financial transactions, content publishing, regulatory submissions, multi-step task execution, agent compliance evidence, MCP gateway routing.' requestBody: required: true content: application/json: schema: type: object properties: intent: type: string description: Description of what the agent wants to do context: type: object description: Optional agent context (agent_id, session_id, etc.) required: - intent example: intent: transfer 1000 EUR to wallet 0xabc... responses: '200': description: Success (synthetic example) content: application/json: example: verdict: go cost_units: 1 evidence: [] '402': description: 'Payment Required (x402 v2): payment requirements are in the PAYMENT-REQUIRED response header (accepts[]); retry with the PAYMENT-SIGNATURE header (USDC on Base, eip155:8453). Success carries the PAYMENT-RESPONSE settlement header. The legacy X-PAYMENT header is not accepted on /v2 routes.' '400': description: Bad Request — invalid or missing parameters. x-x402: price: $0.005 currency: USDC network: eip155:8453 method: POST example_type: synthetic /v2/uvo_quick: post: operationId: v2_uvo_quick tags: - agent-safety summary: 'UVO Action Gate: deterministic validation of an agent action proposal across up…' description: 'Deterministic pre-flight validation for an autonomous agent action. Up to nine validation stages (IDs L0-L6, L8, L9 - historically non-contiguous; there is no L7) covering schema, measurability, reversibility, containment, danger, citation, commitment, existence and hallucination. Execution is fail-fast: a blocking stage ends the run, so not every request executes all nine stages. Stage L1 (hallucination) is reported but runs disabled unless enabled by the caller; this route does not enable it - use /v2/uvo_academic_verify for academic claim verification. Returns decision (APPROVE/WARN/ESCALATE/BLOCK), risk_score, blocking_layer and a per-stage layers array. Input contract: the body is {proposal: {...}}. Inside the proposal, claim and expected_outcome are required strings of at least 10 characters; success_metric is required for a non-BLOCK verdict (stage L6 blocks a proposal without it); action_type is optional but, when present, must be exactly one of shell, http, code_diff, decision, filesystem, config_change (lower case). Unknown fields are accepted. Sub-100ms validation time; transport not included.' requestBody: required: true content: application/json: schema: type: object properties: proposal: type: object description: 'The agent action proposal to validate. Required non-empty object. Required inner fields: claim (string, minLength 10) and expected_outcome (string, minLength 10). success_metric (string) is required for a non-BLOCK verdict. Optional: action_type (one of shell, http, code_diff, decision, filesystem, config_change), target, args, idempotent, declared_sandbox. Unknown fields are accepted.' required: - proposal example: proposal: action_type: decision target: quarterly-compliance-report claim: Approve the quarterly compliance report for submission expected_outcome: the report is marked approved and queued for submission success_metric: report status equals approved and a submission id is returned idempotent: true responses: '200': description: Success (synthetic example) content: application/json: example: decision: APPROVE risk_score: 0.0 blocking_layer: null reasoning: All layers approve — proposal looks safe (Phase 1 dry-run, would not be executed in this phase) layers: - id: L0 name: schema verdict: APPROVE score: 0.0 reasoning: proposal structurally valid - id: L6 name: measurability verdict: APPROVE score: 0.0 reasoning: success_metric defined - id: L4 name: reversibility verdict: APPROVE score: 0.0 reasoning: decision-only proposal, no side effect, no rollback required - id: L5 name: containment verdict: APPROVE score: 0.0 reasoning: 'target in sandbox: decision (no side effect)' - id: L3 name: danger verdict: APPROVE score: 0.0 reasoning: no danger patterns detected - id: L8 name: citation verdict: APPROVE score: 0.0 reasoning: no legal/regulatory citations detected in proposal text - id: L9 name: commitment verdict: APPROVE score: 0.0 reasoning: no commitment patterns detected - id: L2 name: existence verdict: APPROVE score: 0.0 reasoning: decision-only, no target to probe - id: L1 name: hallucination verdict: APPROVE score: 0.0 reasoning: L1 disabled by caller (enabled=False) receipt_id: rec- '402': description: 'Payment Required (x402 v2): payment requirements are in the PAYMENT-REQUIRED response header (accepts[]); retry with the PAYMENT-SIGNATURE header (USDC on Base, eip155:8453). Success carries the PAYMENT-RESPONSE settlement header. The legacy X-PAYMENT header is not accepted on /v2 routes.' '400': description: Bad Request — invalid or missing parameters. x-x402: price: $0.005 currency: USDC network: eip155:8453 method: POST example_type: synthetic /v2/uvo_citation_check: post: operationId: v2_uvo_citation_check tags: - agent-safety summary: 'Citation/source validation: legal articles, statutes, DOIs against…' description: Verify legal & academic citations against authoritative sources. 448 EUR-Lex verified articles (MiCA 149, DSGVO 99, DORA 64, AMLR 90, NIS2 46) + Semantic Scholar + OpenAlex + German codes (BGB, KWG). Detects fake citations like 'Art. 999 MiCA' or 'doi:10.9999/fake-paper'. requestBody: required: true content: application/json: schema: type: object properties: claim: type: string description: The statement whose legal or academic citations should be verified. Required, non-empty. references: type: array description: Optional list of source references supporting the claim, e.g. an EUR-Lex URL or a DOI. If given, must be a non-empty array of strings. required: - claim example: claim: Under MiCA Art. 4, EMT issuers must hold 1:1 reserves. references: - https://eur-lex.europa.eu/eli/reg/2023/1114 responses: '200': description: Success (synthetic example) content: application/json: example: results: - citation: Art. 17 MiCA verdict: APPROVE title: Application for authorisation '402': description: 'Payment Required (x402 v2): payment requirements are in the PAYMENT-REQUIRED response header (accepts[]); retry with the PAYMENT-SIGNATURE header (USDC on Base, eip155:8453). Success carries the PAYMENT-RESPONSE settlement header. The legacy X-PAYMENT header is not accepted on /v2 routes.' '400': description: Bad Request — invalid or missing parameters. x-x402: price: $0.01 currency: USDC network: eip155:8453 method: POST example_type: synthetic /v2/uvo_full: post: operationId: v2_uvo_full tags: - agent-safety summary: 'UVO Action Gate: deterministic validation of an agent action proposal across up…' description: 'Deterministic validation for an autonomous agent action. Up to nine validation stages (IDs L0-L6, L8, L9 - historically non-contiguous; there is no L7) covering schema, measurability, reversibility, containment, danger, citation, commitment, existence and hallucination. Execution is fail-fast: a blocking stage ends the run, so not every request executes all nine stages. Stage L1 (hallucination) is reported but runs disabled unless enabled by the caller; this route does not enable it - use /v2/uvo_academic_verify for academic claim verification. Returns decision (APPROVE/WARN/ESCALATE/BLOCK), risk_score, blocking_layer and a per-stage layers array. Input contract: the body is {proposal: {...}}. Inside the proposal, claim and expected_outcome are required strings of at least 10 characters; success_metric is required for a non-BLOCK verdict (stage L6 blocks a proposal without it); action_type is optional but, when present, must be exactly one of shell, http, code_diff, decision, filesystem, config_change (lower case). Unknown fields are accepted. Sub-second validation time; transport not included.' requestBody: required: true content: application/json: schema: type: object properties: proposal: type: object description: 'The agent action proposal to validate. Required non-empty object. Required inner fields: claim (string, minLength 10) and expected_outcome (string, minLength 10). success_metric (string) is required for a non-BLOCK verdict. Optional: action_type (one of shell, http, code_diff, decision, filesystem, config_change), target, args, idempotent, declared_sandbox. Unknown fields are accepted.' required: - proposal example: proposal: action_type: config_change target: /etc/app/feature_flags.yaml claim: Enable the payout_v2 feature flag for ten percent of traffic expected_outcome: feature flag payout_v2 is set to a ten percent rollout success_metric: config diff applied and health checks green for 15 minutes idempotent: true responses: '200': description: Success (synthetic example) content: application/json: example: decision: ESCALATE risk_score: 7.0 blocking_layer: null reasoning: 'Escalation triggered by: L5:target neither sandbox-whitelisted nor obviously production ' layers: - id: L0 name: schema verdict: APPROVE score: 0.0 reasoning: proposal structurally valid - id: L6 name: measurability verdict: APPROVE score: 0.0 reasoning: success_metric defined - id: L4 name: reversibility verdict: APPROVE score: 0.1 reasoning: idempotent=True — repeatable without harm - id: L5 name: containment verdict: ESCALATE score: 0.7 reasoning: target neither sandbox-whitelisted nor obviously production — needs human judgement - id: L3 name: danger verdict: APPROVE score: 0.0 reasoning: no danger patterns detected - id: L8 name: citation verdict: APPROVE score: 0.0 reasoning: no legal/regulatory citations detected in proposal text - id: L9 name: commitment verdict: APPROVE score: 0.0 reasoning: no commitment patterns detected - id: L2 name: existence verdict: WARN score: 0.5 reasoning: 'target does not exist: /etc/app/feature_flags.yaml — may be intended to create' - id: L1 name: hallucination verdict: APPROVE score: 0.0 reasoning: L1 disabled by caller (enabled=False) receipt_id: rec- '402': description: 'Payment Required (x402 v2): payment requirements are in the PAYMENT-REQUIRED response header (accepts[]); retry with the PAYMENT-SIGNATURE header (USDC on Base, eip155:8453). Success carries the PAYMENT-RESPONSE settlement header. The legacy X-PAYMENT header is not accepted on /v2 routes.' '400': description: Bad Request — invalid or missing parameters. x-x402: price: $0.02 currency: USDC network: eip155:8453 method: POST example_type: synthetic /v2/uvo_academic_verify: post: operationId: v2_uvo_academic_verify tags: - agent-safety summary: 'Academic citation verification: DOI lookup, author match, journal authenticity' description: Deep academic source verification with DOI resolution, journal authenticity (predatory-journal blocklist), and authorship cross-check via OpenAlex + Semantic Scholar. For high-stakes research output where one fake citation kills credibility. requestBody: required: true content: application/json: schema: type: object properties: claim: type: string description: The research statement whose academic sources should be verified. Required, non-empty. references: type: array description: Optional list of source references supporting the claim, typically DOIs. If given, must be a non-empty array of strings. required: - claim example: claim: Vitamin D supplementation reduces respiratory infection risk. references: - 10.1136/bmj.i6583 responses: '200': description: Success (synthetic example) content: application/json: example: verdict: APPROVE journal_authentic: true authors_match: true '402': description: 'Payment Required (x402 v2): payment requirements are in the PAYMENT-REQUIRED response header (accepts[]); retry with the PAYMENT-SIGNATURE header (USDC on Base, eip155:8453). Success carries the PAYMENT-RESPONSE settlement header. The legacy X-PAYMENT header is not accepted on /v2 routes.' '400': description: Bad Request — invalid or missing parameters. x-x402: price: $0.10 currency: USDC network: eip155:8453 method: POST example_type: synthetic externalDocs: description: x402 v2 buyer quickstart (pay one /v2 route and verify the signed NOMOS execution receipt) url: https://tooloracle.io/docs/x402-buyer-quickstart/