Every API here is available over the APIs.io API and to AI agents over MCP.
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-<redacted>
'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-<redacted>
'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/