# Ontario Protocol (remote · ontarioprotocol.com)

Verify x402 endpoints before payment or publish service profiles for agent discovery.

- Trust score: 65/100 (medium)
- Change this week: +2
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `ontarioprotocol.com`: 65/100 (this document), [markdown](https://verifymcp.io/servers/com-ontarioprotocol-ontario-protocol/ontarioprotocol.md), [page](https://verifymcp.io/servers/com-ontarioprotocol-ontario-protocol/ontarioprotocol)

## Channel facts

- Endpoint: `https://ontarioprotocol.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.3`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 46/100
  - AI-judged instruction clarity (fair).
  - Context-footprint check failed: tool/resource definitions use about 1710 tokens (~213/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 2/100
  - Stability check failed: schema churn in the 8 days we've observed: 1 tool removals, 1 breaking changes, 0 auth/transport breaks, 3 additions.
- **Tool Coverage**: 83/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 40% of tool parameters carry a description.
  - Structured output schemas are declared (75% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http com-ontarioprotocol-ontario-protocol https://ontarioprotocol.com/mcp
```

### Codex

```toml
[mcp_servers.com-ontarioprotocol-ontario-protocol]
url = "https://ontarioprotocol.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-ontarioprotocol-ontario-protocol": {
      "type": "remote",
      "url": "https://ontarioprotocol.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-ontarioprotocol-ontario-protocol --url https://ontarioprotocol.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-ontarioprotocol-ontario-protocol:
    url: "https://ontarioprotocol.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "com-ontarioprotocol-ontario-protocol": {
      "type": "http",
      "url": "https://ontarioprotocol.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-07-31 (score 65, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server
- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 63, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 62)

First indexed and scored.

## MCP tools (8)

### `ontario_purchase_router` (~212 tokens)

Ontario Free/Paid Purchase Router

Free deterministic pre-purchase routing across Ontario tools. Use this before any paid Ontario tool to decide whether the task is free-only, needs free preflight, or is eligible for a paid result after wallet, Base network, and explicit budget gates. Provider jobs such as publishing, registering, or making an x402 endpoint discoverable can route to the self-serve 0.50 USDC publication product after preflight. This tool never invokes another tool, signs a payload, or spends funds.

Input parameters:

- `free_preflight_complete` (boolean): True only after the recommended free check has completed for this task.
- `max_usdc` (string): Optional explicit per-call USDC ceiling. The router never increases it.
- `network` (string): Wallet policy network; Ontario paid tools currently require Base mainnet.
- `task` (string, required): Public task description only; never include credentials or private customer data.
- `wallet_enabled` (boolean): True only when the caller can locally sign an x402 PaymentPayload.

Output parameters:

- `decision` (string)
- `free_tool` (object)
- `gates` (object)
- `next_action` (string)
- `paid_candidate` (object|null)
- `payment_flow` (object)
- `privacy` (string)
- `provider_publication_path` (object): Present for provider-publication intent. Gives the free launch-kit and validator followed by the gated paid publisher.
- `reasons` (array)
- `schema`
- `selected_tool` (object)
- `status`
- `task_category` (string)
- `trust_boundary` (string)

### `find_x402_tool` (~206 tokens)

Find a task-matched x402 tool

Free buyer-side search across Ontario's fresh strict-ready paid profiles, Agentic Market, and Coinbase CDP Bazaar. Rank public, credential-free endpoint candidates by task relevance plus bounded source-reported recent activity, with optional Base/USDC budget filtering. Paid Ontario publication adds no ranking score. This is discovery, not a safety certification; run readiness and can-pay before spending. When the query is provider-side publication intent, skip buyer marketplace search and return the free listing validator followed by the gated 0.50 USDC publication workflow.

Input parameters:

- `active_only` (boolean): When true, require recent source-reported activity or fresh strict-ready Ontario profile evidence.
- `limit` (integer)
- `max_usdc` (string): Optional hard USDC price ceiling for returned candidates.
- `network` (string): Optional network filter, for example eip155:8453 or base.
- `query` (string, required): Public task text only; never include credentials or private customer data.

Output parameters:

- `agent_next_step` (string)
- `candidates` (array)
- `count` (integer)
- `intent` (string): provider_publication when provider-side listing intent is routed to the free-first publication workflow.
- `provider_path` (object): Machine-actionable free validation, optional pending submission, and gated paid publication sequence.
- `query` (string)
- `schema`
- `selection_method` (string)
- `trust_boundary` (string)

### `agent_can_pay` (~59 tokens)

Agent Payment Preflight

Free pre-payment policy decision. Agents ask whether an x402 endpoint should be paid under strict, standard, or permissive policy.

Input parameters:

- `agent_policy` (string)
- `endpoint` (string, required)
- `max_usdc` (string)

Output parameters:

- `decision` (string)
- `decision_code` (string)
- `decision_schema_version` (string)
- `declared_price_usdc` (number)
- `endpoint` (string)
- `max_usdc` (number)
- `reasons` (array)
- `recommendations` (array)
- `report` (object)
- `report_integrity_ok` (boolean)
- `verification_age_hours` (number)

### `x402_readiness_verify` (~73 tokens)

x402 Readiness Verify

Free check for whether a paid endpoint is ready for agent discovery and x402 payment. Returns a grade-aware provider handoff: validate listing metadata free before any optional 0.50 USDC publication, and do not pay for publication while the endpoint is not ready-grade.

Input parameters:

- `target_url` (string, required)

Output parameters:

- `grade` (string)
- `provider_listing_next_step` (object)
- `readiness_score` (number)
- `recommendations` (array)
- `report_id` (string)
- `report_url` (string)
- `signals` (object)
- `status` (string)
- `warnings` (array)

### `x402_launch_kit` (~115 tokens)

X402 Launch Kit

Generate a validated listing payload, x402 resource draft, MCP descriptor, GitHub readiness workflow, README snippet, and registry copy for one paid endpoint.

Input parameters:

- `asset` (string)
- `description` (string, required)
- `endpoint` (string, required)
- `method` (string)
- `name` (string, required)
- `network` (string)
- `owner_contact` (string)
- `owner_url` (string)
- `price_usdc` (string, required)
- `tags` (string)

### `ontario_list-service` (~346 tokens)

Publish an x402 Service Profile

Use only when the caller owns an x402 endpoint and wants a public provider profile, live readiness scan, evidence link, and conditional fresh ready-grade eligibility in strict /discover and Ontario's task-to-tool buyer search, with a privacy-safe 30-day profile request receipt. A paid profile supersedes an older free preview for the same endpoint and method in public catalogs. Validate and run readiness first; payment does not guarantee a ready grade, traffic, ranking, purchases, or safety. Agent payment guidance: run free can-pay and readiness checks first; pay only when policy allows base 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 and 0.50 USDC is inside the agent budget. [PAID: 0.50 USDC via x402 on Base. Two-step flow: call without _x402_payment to receive the x402 payment requirements, then call again with _x402_payment set to a base64 x402 PaymentPayload to settle and receive the result.]

Input parameters:

- `_x402_payment` (string): base64 x402 PaymentPayload (USDC on Base); obtain the requirements by calling this tool without it first.
- `asset` (string)
- `category` (string)
- `description` (string, required)
- `endpoint` (string, required)
- `method` (string)
- `name` (string, required)
- `network` (string)
- `owner_contact` (string)
- `owner_url` (string)
- `price_atomic` (integer)
- `price_usdc` (string, required)
- `tags` (array)

Output parameters:

- `listing` (object)
- `payment` (object)
- `provider_next_steps` (object)

### `ontario_refresh-listing` (~245 tokens)

Refresh an x402 Service Profile

Use only for an existing paid Ontario provider profile when the caller wants a fresh live readiness observation attached to its canonical HTML, JSON twin, and badge. This tool cannot edit provider metadata, improve a grade by payment, or buy ranking or traffic. Agent payment guidance: run free can-pay and readiness checks first; pay only when policy allows base 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 and 0.10 USDC is inside the agent budget. [PAID: 0.10 USDC via x402 on Base. Two-step flow: call without _x402_payment to receive the x402 payment requirements, then call again with _x402_payment set to a base64 x402 PaymentPayload to settle and receive the result.]

Input parameters:

- `_x402_payment` (string): base64 x402 PaymentPayload (USDC on Base); obtain the requirements by calling this tool without it first.
- `listing_id` (string, required): Existing paid provider profile id.
- `paid_refresh_tx` (string): One-use retry reference only when a settled refresh could not complete.

### `ontario_agent-pay-query-v2` (~360 tokens)

Live x402 Endpoint Readiness Check

Live x402 endpoint readiness check before payment. This x402 paid API verification service helps verify an x402 endpoint before an AI agent pays: probe one public paid API and inspect the HTTP 402 challenge, payTo address, price, Base USDC network and asset, manifest freshness, buyer budget, and spend policy. Returns ALLOW or DENY with reasons, readiness score, report ID, settlement metadata, and a settlement-backed SHA-256 evidence receipt. Run free can-pay and readiness checks first. Readiness evidence is not a safety guarantee. Agent payment guidance: run free can-pay and readiness checks first; pay only when policy allows base 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 and 0.002 USDC is inside the agent budget. [PAID: 0.002 USDC via x402 on Base. Two-step flow: call without _x402_payment to receive the x402 payment requirements, then call again with _x402_payment set to a base64 x402 PaymentPayload to settle and receive the result.]

Input parameters:

- `_x402_payment` (string): base64 x402 PaymentPayload (USDC on Base); obtain the requirements by calling this tool without it first.
- `agent_policy` (string): Policy posture used to produce the allow or deny decision.
- `endpoint` (string, required): Public x402 paid API URL to probe and verify before an autonomous agent pays.
- `max_usdc` (string): Optional maximum endpoint price allowed by the buyer policy.
- `query` (string): Optional task context for the payment decision. When omitted, Ontario performs a general live x402 endpoint readiness check.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-ontarioprotocol-ontario-protocol/ontarioprotocol#diagnostics

## Score history

- 2026-08-03: 65
- 2026-08-02: 65
- 2026-08-01: 65
- 2026-07-31: 65
- 2026-07-30: 65
- 2026-07-29: 64
- 2026-07-28: 64
- 2026-07-27: 63
- 2026-07-26: 62

## Links

- Remote endpoint: https://ontarioprotocol.com/mcp
- Repository: https://github.com/thom899g/ontarioprotocol
- Website: https://ontarioprotocol.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-ontarioprotocol-ontario-protocol/ontarioprotocol/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-ontarioprotocol-ontario-protocol/ontarioprotocol/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-ontarioprotocol-ontario-protocol/ontarioprotocol
