Ontario Free/Paid Purchase Router
ontario_purchase_routerFree deterministic routing of one public task to Ontario's free and paid tools. Returns the matching tool and a decision (free_only, run_free_preflight, or paid_recommended with the tool's price, network and budget check). Natural endpoint-verification tasks route to the free readiness verifier, with the optional 0.002 USDC settlement-backed receipt disclosed. Provider jobs such as publishing, registering, or making an x402 endpoint discoverable route to the self-serve 0.50 USDC publication product and its free validator. Paid reads it can recommend: ontario_find-api (a live-checked paid API for a task), ontario_base-balances (Base wallet balances), ontario_base-tx-check (whether a Base transaction settled) and ontario_base-gas (current Base gas prices). Existing paid profiles route to the 0.10 USDC evidence refresh and its free refresh validator. Empty calls return task examples instead of guessing a purchase. This tool never invokes another tool, signs a payload, or spends funds.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"task": "<task>"
},
"name": "ontario_purchase_router"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | Public task description only; never include credentials or private customer data. | |
| network | No | Wallet policy network; Ontario paid tools currently require Base mainnet. | eip155:8453 |
| max_usdc | No | Optional owner-authorized per-call USDC ceiling from 0 to 1000. Send a JSON number or decimal string such as 0.5, '0.50', '$0.50' or '0.50 USDC'. Omit when no budget is authorized; a budget is only a ceiling and does not grant spending authority. The router never increases it. | |
| wallet_enabled | No | True if the caller can locally sign an x402 PaymentPayload. | |
| free_preflight_complete | No | True only after the recommended free check has completed for this task. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| gates | Yes | ||
| schema | Yes | ||
| status | Yes | ||
| privacy | No | ||
| reasons | No | ||
| decision | Yes | ||
| free_tool | No | ||
| next_action | Yes | ||
| payment_flow | No | ||
| selected_tool | Yes | ||
| task_category | Yes | ||
| input_guidance | No | Safe free task examples returned when an MCP caller invokes the router without a public task. | |
| paid_candidate | No | ||
| trust_boundary | Yes | ||
| router_follow_up | No | Non-spending request template for rerunning the router after the free preflight. | |
| optional_paid_upgrade | No | A paid upgrade the router discloses alongside a matching free route, with the evidence it adds. | |
| listing_maintenance_path | No | Present for existing-profile refresh intent. Gives the free validator followed by the gated paid refresher. | |
| provider_publication_path | No | Present for provider-publication intent. Gives the free launch-kit and validator followed by the gated paid publisher. |