Ontario Protocol

Check x402 endpoints before spending: free readiness and policy checks, paid trust evidence.

사용해야 할까요

품질 및 안전성

B
설명 품질
99%
스키마 완전성
99%
이름 품질
65%
오염 위험
0%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (21)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains suspicious base64-like encoded stringontario_list-service에서
  • MEDIUMTool description contains suspicious base64-like encoded stringontario_refresh-listing에서
  • MEDIUMTool description contains suspicious base64-like encoded stringontario_agent-trust-scan에서
  • MEDIUMTool description contains suspicious base64-like encoded stringontario_x402-implementation-audit에서
  • MEDIUMTool description contains suspicious base64-like encoded stringontario_reputation에서
  • MEDIUMTool description contains suspicious base64-like encoded stringontario_agent-pay-query-v2에서
  • MEDIUMTool description contains suspicious base64-like encoded stringontario_x402-demand-authenticity에서
  • MEDIUMTool description contains suspicious base64-like encoded stringontario_list-agent에서
  • LOWTool 'ontario_validate-service' doesn't follow camelCase/snake_caseontario_validate-service에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~11,186토큰 (도구 정의)
~5.1 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 8.74%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "ontario-protocol": {
      "url": "https://ontarioprotocol.com/mcp"
    }
  }
}

원격 엔드포인트

https://ontarioprotocol.com/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (21)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢ontario_purchase_router(free_preflight_complete, max_usdc, network, task, wallet_enabled)

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. Natural endpoint-verification tasks route to the free readiness verifier and disclose the optional 0.002 USDC settlement-backed receipt only when extra audit evidence is needed. 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. Existing paid profiles can route to the 0.10 USDC evidence refresh only after the free refresh validator. Empty calls return safe free discovery guidance instead of guessing a purchase. This tool never invokes another tool, signs a payload, or spends funds.

입력 스키마

{
  "type": "object",
  "properties": {
    "free_preflight_complete": {
      "default": false,
      "description": "True only after the recommended free check has completed for this task.",
      "type": "boolean"
    },
    "max_usdc": {
      "anyOf": [
        {
          "pattern": "^(?:(?:0|[1-9][0-9]{0,2})(?:\\.[0-9]+)?|1000(?:\\.0+)?)$",
          "type": "string"
        },
        {
          "maximum": 1000,
          "minimum": 0,
          "type": "number"
        }
      ],
      "description": "Optional owner-authorized per-call USDC ceiling from 0 to 1000. Use a unitless JSON number or decimal string, such as 0.5 or '0.50'; do not add a currency symbol or write 'USDC'. Omit when no budget is authorized; a budget is only a ceiling and does not grant spending authority. The router never increases it.",
      "examples": [
        "0",
        "0.002",
        "0.10",
        "0.50",
        0.5
      ]
    },
    "network": {
      "default": "eip155:8453",
      "description": "Wallet policy network; Ontario paid tools currently require Base mainnet.",
      "type": "string"
    },
    "task": {
      "description": "Public task description only; never include credentials or private customer data.",
      "examples": [
        "Verify endpoint readiness before payment",
        "Publish my x402 endpoint as a public service profile",
        "Refresh my existing x402 service profile",
        "Create a settlement-backed payment decision receipt"
      ],
      "maxLength": 500,
      "minLength": 3,
      "type": "string"
    },
    "wallet_enabled": {
      "default": false,
      "description": "True only when the caller can locally sign an x402 PaymentPayload.",
      "type": "boolean"
    }
  },
  "required": [
    "task"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "decision": {
      "enum": [
        "free_only",
        "run_free_preflight",
        "wallet_required_use_free",
        "unsupported_network_use_free",
        "budget_required_use_free",
        "over_budget_use_free",
        "paid_tool_unavailable_use_free",
        "paid_recommended"
      ],
      "type": "string"
    },
    "free_tool": {
      "type": "object"
    },
    "gates": {
      "type": "object"
    },
    "input_guidance": {
      "additionalProperties": true,
      "description": "Safe free task examples returned when an MCP caller invokes the router without a public task.",
      "type": "object"
    },
    "listing_maintenance_path": {
      "additionalProperties": true,
      "description": "Present for existing-profile refresh intent. Gives the free validator followed by the gated paid refresher.",
      "type": "object"
    },
    "next_action": {
      "type": "string"
    },
    "optional_paid_upgrade": {
      "description": "A non-recommended upgrade disclosed after a matching free route. The caller should stop after the free result unless the stated evidence condition applies.",
      "type": [
        "object",
        "null"
      ]
    },
    "paid_candidate": {
      "type": [
        "object",
        "null"
      ]
    },
    "payment_flow": {
      "type": "object"
    },
    "privacy": {
      "type": "string"
    },
    "provider_publication_path": {
      "additionalProperties": true,
      "description": "Present for provider-publication intent. Gives the free launch-kit and validator followed by the gated paid publisher.",
      "type": "object"
    },
    "reasons": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "router_follow_up": {
      "additionalProperties": true,
      "description": "Non-spending request template for rerunning the router after the free preflight.",
      "type": "object"
    },
    "schema": {
      "const": "ontario.purchase_router.v1"
    },
    "selected_tool": {
      "type": "object"
    },
    "status": {
      "const": "ok"
    },
    "task_category": {
      "type": "string"
    },
    "trust_boundary": {
      "type": "string"
    }
  },
  "required": [
    "schema",
    "status",
    "decision",
    "task_category",
    "selected_tool",
    "gates",
    "next_action",
    "trust_boundary"
  ],
  "additionalProperties": true
}
⚪ontario_task_fit(allow_typesafe, free_preflight_complete, max_usdc, network, task, ...)

Free task-to-tool matching with an optional Jev second opinion. With allow_typesafe=true, your public task and Ontario's public tool descriptions are sent to TypeSafe for Jev inference. Do not supply secrets, personal data, private URLs, or customer content. Ontario does not persist task text here. TypeSafe processing is subject to its policies; zero retention is not promised. Without consent, only Ontario's deterministic router is used. Returns a callable tool and input schema, or abstains. Never executes tools or authorizes payment. Model quota exhaustion falls back to deterministic routing.

입력 스키마

{
  "type": "object",
  "properties": {
    "allow_typesafe": {
      "default": false,
      "description": "With allow_typesafe=true, your public task and Ontario's public tool descriptions are sent to TypeSafe for Jev inference. Do not supply secrets, personal data, private URLs, or customer content. Ontario does not persist task text here. TypeSafe processing is subject to its policies; zero retention is not promised. Without consent, only Ontario's deterministic router is used.",
      "type": "boolean"
    },
    "free_preflight_complete": {
      "default": false,
      "description": "True only after the recommended free check has completed for this task.",
      "type": "boolean"
    },
    "max_usdc": {
      "description": "Explicit owner-approved USDC ceiling; never inferred.",
      "type": "string"
    },
    "network": {
      "default": "eip155:8453",
      "description": "Network permitted by the caller's wallet policy; Ontario paid tools require Base mainnet (eip155:8453).",
      "type": "string"
    },
    "task": {
      "description": "A public capability request, never private task content.",
      "maxLength": 500,
      "minLength": 3,
      "type": "string"
    },
    "wallet_enabled": {
      "default": false,
      "description": "True only when the caller can locally sign an x402 payment; this flag does not authorize spending.",
      "type": "boolean"
    }
  },
  "required": [
    "task"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "payment_authorized": {
      "const": false
    },
    "status": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "payment_authorized"
  ],
  "additionalProperties": true
}
🟢agent_can_pay(agent_policy, endpoint, max_usdc, require_audit_receipt)

Free pre-payment policy decision. Agents ask whether an x402 endpoint should be paid under strict, standard, or permissive policy. The free result is sufficient by default; set require_audit_receipt only when a settlement-backed receipt is required.

입력 스키마

{
  "type": "object",
  "properties": {
    "agent_policy": {
      "description": "Readiness policy to apply. Use strict unless the operator explicitly permits a different policy.",
      "enum": [
        "strict",
        "standard",
        "permissive"
      ],
      "type": "string"
    },
    "endpoint": {
      "description": "Public x402 endpoint to evaluate before payment; never include credentials or private query parameters.",
      "type": "string"
    },
    "max_usdc": {
      "description": "Caller-approved per-call spending ceiling in decimal USDC, for example 0.01. This check never spends funds.",
      "type": "string"
    },
    "require_audit_receipt": {
      "default": false,
      "description": "Explicitly request the optional paid receipt handoff after an allow decision. This does not submit payment.",
      "type": "boolean"
    }
  },
  "required": [
    "endpoint"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "auditable_paid_continuation": {
      "additionalProperties": true,
      "type": "object"
    },
    "decision": {
      "enum": [
        "allow",
        "review",
        "deny"
      ],
      "type": "string"
    },
    "decision_code": {
      "type": "string"
    },
    "decision_schema_version": {
      "type": "string"
    },
    "declared_price_usdc": {
      "type": "number"
    },
    "endpoint": {
      "type": "string"
    },
    "max_usdc": {
      "type": "number"
    },
    "reasons": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "recommendations": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "report": {
      "additionalProperties": true,
      "type": "object"
    },
    "report_integrity_ok": {
      "type": "boolean"
    },
    "verification_age_hours": {
      "type": "number"
    }
  },
  "required": [
    "decision",
    "decision_code",
    "decision_schema_version"
  ],
  "additionalProperties": true
}
🟢x402_readiness_verify(target_url)

Free check for whether a paid endpoint is ready for agent discovery and x402 payment. Returns a free end-to-end buyer-path diagnostic handoff plus 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.

입력 스키마

{
  "type": "object",
  "properties": {
    "target_url": {
      "description": "Public service or x402 endpoint URL to inspect without payment. Do not submit credentials, private hosts, or sensitive query parameters.",
      "type": "string"
    }
  },
  "required": [
    "target_url"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "buyer_conversion_next_step": {
      "additionalProperties": true,
      "type": "object"
    },
    "grade": {
      "type": "string"
    },
    "provider_listing_next_step": {
      "additionalProperties": true,
      "type": "object"
    },
    "readiness_score": {
      "type": "number"
    },
    "recommendations": {
      "type": "array"
    },
    "report_id": {
      "type": "string"
    },
    "report_url": {
      "type": "string"
    },
    "signals": {
      "additionalProperties": true,
      "type": "object"
    },
    "status": {
      "type": "string"
    },
    "warnings": {
      "type": "array"
    }
  },
  "required": [
    "status",
    "grade",
    "readiness_score",
    "report_id"
  ],
  "additionalProperties": true
}
🟢bazaar_buyer_intent_gap(buyer_queries, buyer_query, target_url)

Free read-only provider audit that runs Coinbase's indexing preflight and measures one public x402 endpoint across five live CDP Bazaar buyer-search variations. Returns retrieval coverage, observed sample ranks, alternatives, public 30-day call and unique-payer observations, Base USDC price bands, HTTP 402 and metadata readiness, and the activation boundary. Public quality counts may include owner-funded calls and are not revenue. It never signs or settles.

입력 스키마

{
  "type": "object",
  "properties": {
    "buyer_queries": {
      "description": "Optional explicit portfolio of up to five public buyer phrases. When omitted, Ontario generates four deterministic variants from buyer_query.",
      "items": {
        "maxLength": 160,
        "minLength": 3,
        "type": "string"
      },
      "maxItems": 5,
      "minItems": 1,
      "type": "array"
    },
    "buyer_query": {
      "description": "Public task phrase a funded agent could use in CDP Bazaar search; never include credentials or private customer text.",
      "maxLength": 160,
      "minLength": 3,
      "type": "string"
    },
    "target_url": {
      "description": "Public x402 paid endpoint whose buyer visibility should be measured.",
      "format": "uri",
      "type": "string"
    }
  },
  "required": [
    "target_url",
    "buyer_query"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "buyer_fit": {
      "type": "object"
    },
    "buyer_intent": {
      "type": "object"
    },
    "buyer_intent_portfolio": {
      "type": "object"
    },
    "catalog_visibility": {
      "type": "object"
    },
    "cdp_validation": {
      "type": "object"
    },
    "checked_at": {
      "format": "date-time",
      "type": "string"
    },
    "checks": {
      "items": {
        "type": "object"
      },
      "type": "array"
    },
    "grade": {
      "enum": [
        "metadata_ready",
        "close_to_metadata_ready",
        "needs_work"
      ]
    },
    "max_score": {
      "const": 100
    },
    "next_actions": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "report_id": {
      "pattern": "^bazaar_[a-f0-9]{18}$",
      "type": "string"
    },
    "schema": {
      "const": "ontario.coinbase_bazaar_readiness.v1"
    },
    "score": {
      "maximum": 100,
      "minimum": 0,
      "type": "number"
    },
    "settlement_activation": {
      "description": "Observed indexing and activation state, not a promise of placement or demand.",
      "properties": {
        "activation_required": {
          "type": "boolean"
        },
        "catalog_placement_verified": {
          "type": "boolean"
        },
        "free_check_attempted_settlement": {
          "const": false
        }
      },
      "required": [
        "free_check_attempted_settlement",
        "catalog_placement_verified",
        "activation_required"
      ],
      "type": "object"
    },
    "status": {
      "const": "complete"
    },
    "target_url": {
      "format": "uri",
      "type": "string"
    },
    "trust_boundary": {
      "required": [
        "checks",
        "does_not",
        "methodology",
        "limits"
      ],
      "type": "object"
    }
  },
  "required": [
    "schema",
    "status",
    "report_id",
    "checked_at",
    "target_url",
    "score",
    "grade",
    "checks",
    "catalog_visibility",
    "buyer_intent_portfolio",
    "settlement_activation",
    "trust_boundary"
  ],
  "additionalProperties": true
}
🟢find_x402_tool(active_only, limit, max_usdc, network, query)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "active_only": {
      "default": true,
      "description": "When true, require recent source-reported activity or fresh strict-ready Ontario profile evidence.",
      "type": "boolean"
    },
    "limit": {
      "default": 5,
      "description": "Maximum number of task-matched candidates to return, from 1 to 10.",
      "maximum": 10,
      "minimum": 1,
      "type": "integer"
    },
    "max_usdc": {
      "description": "Optional hard USDC price ceiling for returned candidates.",
      "type": "string"
    },
    "network": {
      "description": "Optional network filter, for example eip155:8453 or base.",
      "type": "string"
    },
    "query": {
      "description": "Public task text only; never include credentials or private customer data.",
      "maxLength": 160,
      "minLength": 3,
      "type": "string"
    }
  },
  "required": [
    "query"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "agent_next_step": {
      "type": "string"
    },
    "candidates": {
      "items": {
        "type": "object"
      },
      "type": "array"
    },
    "count": {
      "type": "integer"
    },
    "intent": {
      "description": "provider_publication when provider-side listing intent is routed to the free-first publication workflow.",
      "type": "string"
    },
    "provider_path": {
      "additionalProperties": true,
      "description": "Machine-actionable free validation, optional pending submission, and gated paid publication sequence.",
      "type": "object"
    },
    "query": {
      "type": "string"
    },
    "schema": {
      "const": "ontario.x402_tool_router.v1"
    },
    "selection_method": {
      "type": "string"
    },
    "trust_boundary": {
      "type": "string"
    }
  },
  "required": [
    "schema",
    "query",
    "count",
    "candidates",
    "trust_boundary"
  ],
  "additionalProperties": true
}
🟢x402_launch_kit(asset, description, endpoint, method, name, ...)

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

입력 스키마

{
  "type": "object",
  "properties": {
    "asset": {
      "description": "USDC token contract on the declared payment network; omit to use the Base USDC default.",
      "type": "string"
    },
    "description": {
      "description": "Public description of the task the service performs and the result it returns.",
      "type": "string"
    },
    "endpoint": {
      "description": "Provider-owned public HTTPS x402 endpoint to prepare for listing.",
      "format": "uri",
      "type": "string"
    },
    "method": {
      "default": "POST",
      "description": "HTTP method accepted by the provider endpoint, for example POST.",
      "type": "string"
    },
    "name": {
      "description": "Public name of the provider's service.",
      "type": "string"
    },
    "network": {
      "default": "base",
      "description": "Payment network accepted by the provider, for example base or eip155:8453.",
      "type": "string"
    },
    "owner_contact": {
      "description": "Optional public business contact for generated drafts. Omit private addresses; never supply credentials.",
      "type": "string"
    },
    "owner_url": {
      "description": "Public website identifying the service provider.",
      "format": "uri",
      "type": "string"
    },
    "price_usdc": {
      "description": "The provider's per-call price in decimal USDC, not Ontario's publication fee. Kit generation is free.",
      "type": "string"
    },
    "tags": {
      "description": "Comma-separated public capability tags, for example x402,paid-api,agent-tool.",
      "type": "string"
    }
  },
  "required": [
    "name",
    "description",
    "endpoint",
    "price_usdc"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "artifacts": {
      "description": "Unpublished drafts, not proof of endpoint readiness or catalog placement.",
      "properties": {
        "github_workflow": {
          "type": "string"
        },
        "mcp_registry_publisher_commands": {
          "type": "string"
        },
        "mcp_registry_server_json": {
          "type": "object"
        },
        "mcp_tool_descriptor_draft": {
          "type": "object"
        },
        "ontario_listing_payload": {
          "type": "object"
        },
        "readme_markdown": {
          "type": "string"
        },
        "registry_listing_draft": {
          "type": "object"
        },
        "x402_resource_draft": {
          "type": "object"
        }
      },
      "required": [
        "ontario_listing_payload",
        "x402_resource_draft",
        "mcp_tool_descriptor_draft",
        "github_workflow",
        "readme_markdown",
        "registry_listing_draft",
        "mcp_registry_server_json",
        "mcp_registry_publisher_commands"
      ],
      "type": "object"
    },
    "generated_at": {
      "format": "date-time",
      "type": "string"
    },
    "listing_validation": {
      "properties": {
        "errors": {
          "items": {
            "type": "object"
          },
          "type": "array"
        },
        "normalized": {
          "type": "object"
        },
        "ok": {
          "type": "boolean"
        },
        "warnings": {
          "items": {
            "type": "object"
          },
          "type": "array"
        }
      },
      "required": [
        "ok",
        "errors",
        "warnings",
        "normalized"
      ],
      "type": "object"
    },
    "next_steps": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "ontario_calls": {
      "required": [
        "verify_readiness",
        "validate_listing",
        "submit_listing"
      ],
      "type": "object"
    },
    "schema": {
      "const": "ontario.x402_launch_kit.v1"
    },
    "status": {
      "enum": [
        "ready_to_verify",
        "needs_fixes"
      ]
    },
    "trust_boundary": {
      "type": "string"
    }
  },
  "required": [
    "schema",
    "generated_at",
    "status",
    "listing_validation",
    "artifacts",
    "ontario_calls",
    "next_steps",
    "trust_boundary"
  ],
  "additionalProperties": true
}
🟡ontario_validate-service(asset, buyer_query, category, description, endpoint, ...)

Free provider listing preflight. Validate public service metadata before buying the 0.50 USDC Ontario launch passport. Returns field errors or a normalized request and publication decision. Set verify_now only to create a public readiness report. Never publishes a listing, signs or spends; a valid payload alone does not establish readiness or Bazaar placement.

입력 스키마

{
  "type": "object",
  "properties": {
    "asset": {
      "description": "Payment token contract accepted by the provider on the declared network.",
      "type": "string"
    },
    "buyer_query": {
      "description": "Public task phrase used for the point-in-time Bazaar retrieval audit. It may appear in the public profile.",
      "maxLength": 160,
      "minLength": 3,
      "type": "string"
    },
    "category": {
      "description": "Public capability category for the service, not a claim of certification.",
      "type": "string"
    },
    "description": {
      "description": "Public buyer task, expected result, and important service limitations; do not include confidential text.",
      "minLength": 1,
      "type": "string"
    },
    "endpoint": {
      "description": "Provider-owned public HTTPS x402 endpoint to list. Never include secrets or sensitive query parameters.",
      "format": "uri",
      "type": "string"
    },
    "mcp_remote_url": {
      "description": "Optional public MCP remote for read-only initialize and tools/list checks.",
      "format": "uri",
      "maxLength": 500,
      "type": "string"
    },
    "mcp_server_json_url": {
      "description": "Optional public MCP Registry record or exact-search JSON URL.",
      "format": "uri",
      "maxLength": 500,
      "type": "string"
    },
    "mcp_server_name": {
      "description": "Optional exact MCP Registry server name.",
      "maxLength": 180,
      "type": "string"
    },
    "method": {
      "default": "POST",
      "description": "HTTP method used to call the provider's endpoint.",
      "type": "string"
    },
    "name": {
      "description": "Public service name displayed on the provider profile.",
      "minLength": 1,
      "type": "string"
    },
    "network": {
      "default": "base",
      "description": "Provider payment network, for example base or eip155:8453. Ontario publication itself uses Base USDC.",
      "type": "string"
    },
    "owner_contact": {
      "description": "Optional provider contact retained for operations and omitted from public profiles. Omit when unnecessary; never send wallet credentials.",
      "type": "string"
    },
    "owner_url": {
      "description": "Public website identifying the provider; publication does not verify legal identity.",
      "format": "uri",
      "type": "string"
    },
    "price_atomic": {
      "description": "Optional provider price in six-decimal USDC units: 10000 equals 0.01 USDC. Must match price_usdc when supplied.",
      "minimum": 0,
      "type": "integer"
    },
    "price_usdc": {
      "description": "Provider endpoint price in decimal USDC, at most six decimal places. This is separate from Ontario's 0.50 USDC publication fee.",
      "type": "string"
    },
    "source": {
      "default": "direct_or_unknown",
      "description": "Privacy-safe aggregate acquisition bucket; never a URL or query.",
      "enum": [
        "coinbase_bazaar",
        "direct_or_unknown",
        "github",
        "google_search",
        "internal_navigation",
        "mcp_registry",
        "other_search"
      ],
      "type": "string"
    },
    "tags": {
      "description": "Public capability tags for discovery, up to ten relevant labels.",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "verify_now": {
      "default": false,
      "description": "Optionally run live readiness checks and save a public signed report. No listing is published and no payment is made.",
      "type": "boolean"
    }
  },
  "required": [
    "name",
    "description",
    "endpoint",
    "price_usdc"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "errors": {
      "maxItems": 0,
      "type": "array"
    },
    "next_steps": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "normalized": {
      "required": [
        "name",
        "description",
        "endpoint",
        "price_usdc",
        "network"
      ],
      "type": "object"
    },
    "ok": {
      "const": true
    },
    "provider_publication": {
      "properties": {
        "decision": {
          "enum": [
            "paid_publication_available",
            "fix_readiness_before_purchase",
            "run_free_verification"
          ]
        },
        "price": {
          "type": "object"
        },
        "purchase": {
          "type": "object"
        },
        "schema": {
          "const": "ontario.provider_publication_product.v1"
        }
      },
      "required": [
        "schema",
        "decision",
        "price",
        "purchase"
      ],
      "type": "object"
    },
    "stores_listing": {
      "const": false
    },
    "trust_disclaimer": {
      "type": "string"
    },
    "verification": {
      "description": "Optional public readiness observation; metadata validation alone does not verify readiness.",
      "type": [
        "object",
        "null"
      ]
    },
    "warnings": {
      "items": {
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "ok",
    "errors",
    "warnings",
    "normalized",
    "verification",
    "provider_publication",
    "stores_listing",
    "trust_disclaimer",
    "next_steps"
  ],
  "additionalProperties": true
}
🟡ontario_list-service(_x402_payment, asset, buyer_query, category, description, ...)

Publish a provider-owned x402 API so AI agents can discover and buy it. After free validation and a Bazaar buyer-intent audit, the 0.50 USDC Launch Passport creates a signed public HTML/JSON profile, readiness and Coinbase indexing evidence, a five-query retrieval snapshot, badge, copy-ready MCP/catalog records, and 30 days of freshness maintenance. It can become eligible for strict Ontario discovery when evidence is ready and fresh. It does not guarantee Coinbase placement, ranking, traffic, purchases, a ready grade, 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 payment to receive MCP PaymentRequired, then retry with params._meta['x402/payment'] containing the signed PaymentPayload. The legacy _x402_payment base64 argument is also supported. Sign only after explicit budget and policy approval.]

입력 스키마

{
  "type": "object",
  "properties": {
    "_x402_payment": {
      "description": "base64 x402 PaymentPayload (USDC on Base); obtain the requirements by calling this tool without it first.",
      "type": "string"
    },
    "asset": {
      "description": "Payment token contract accepted by the provider on the declared network.",
      "type": "string"
    },
    "buyer_query": {
      "description": "Public task phrase used for the point-in-time Bazaar retrieval audit. It may appear in the public profile.",
      "maxLength": 160,
      "minLength": 3,
      "type": "string"
    },
    "category": {
      "description": "Public capability category for the service, not a claim of certification.",
      "type": "string"
    },
    "description": {
      "description": "Public buyer task, expected result, and important service limitations; do not include confidential text.",
      "minLength": 1,
      "type": "string"
    },
    "endpoint": {
      "description": "Provider-owned public HTTPS x402 endpoint to list. Never include secrets or sensitive query parameters.",
      "format": "uri",
      "type": "string"
    },
    "mcp_remote_url": {
      "description": "Optional public MCP remote for read-only initialize and tools/list checks.",
      "format": "uri",
      "maxLength": 500,
      "type": "string"
    },
    "mcp_server_json_url": {
      "description": "Optional public MCP Registry record or exact-search JSON URL.",
      "format": "uri",
      "maxLength": 500,
      "type": "string"
    },
    "mcp_server_name": {
      "description": "Optional exact MCP Registry server name.",
      "maxLength": 180,
      "type": "string"
    },
    "method": {
      "default": "POST",
      "description": "HTTP method used to call the provider's endpoint.",
      "type": "string"
    },
    "name": {
      "description": "Public service name displayed on the provider profile.",
      "minLength": 1,
      "type": "string"
    },
    "network": {
      "default": "base",
      "description": "Provider payment network, for example base or eip155:8453. Ontario publication itself uses Base USDC.",
      "type": "string"
    },
    "owner_contact": {
      "description": "Optional provider contact retained for operations and omitted from public profiles. Omit when unnecessary; never send wallet credentials.",
      "type": "string"
    },
    "owner_url": {
      "description": "Public website identifying the provider; publication does not verify legal identity.",
      "format": "uri",
      "type": "string"
    },
    "price_atomic": {
      "description": "Optional provider price in six-decimal USDC units: 10000 equals 0.01 USDC. Must match price_usdc when supplied.",
      "minimum": 0,
      "type": "integer"
    },
    "price_usdc": {
      "description": "Provider endpoint price in decimal USDC, at most six decimal places. This is separate from Ontario's 0.50 USDC publication fee.",
      "type": "string"
    },
    "source": {
      "default": "direct_or_unknown",
      "description": "Privacy-safe aggregate acquisition bucket; never a URL or query.",
      "enum": [
        "coinbase_bazaar",
        "direct_or_unknown",
        "github",
        "google_search",
        "internal_navigation",
        "mcp_registry",
        "other_search"
      ],
      "type": "string"
    },
    "tags": {
      "description": "Public capability tags for discovery, up to ten relevant labels.",
      "items": {
        "type": "string"
      },
      "type": "array"
    }
  },
  "required": [
    "name",
    "description",
    "endpoint",
    "price_usdc"
  ]
}

출력 스키마

{
  "type": "object",
  "anyOf": [
    {
      "properties": {
        "buyer_guide": {
          "format": "uri",
          "type": "string"
        },
        "hint": {
          "type": "string"
        },
        "payment_policy": {
          "format": "uri",
          "type": "string"
        },
        "payment_required": {
          "const": true
        },
        "x402": {
          "type": [
            "object",
            "string"
          ]
        }
      },
      "required": [
        "payment_required",
        "x402",
        "hint"
      ],
      "type": "object"
    },
    {
      "additionalProperties": true,
      "properties": {
        "listing": {
          "additionalProperties": true,
          "properties": {
            "id": {
              "pattern": "^lst_[A-Za-z0-9_-]+$",
              "type": "string"
            },
            "publication": {
              "additionalProperties": true,
              "properties": {
                "badge_url": {
                  "format": "uri",
                  "type": "string"
                },
                "indexable_profile": {
                  "const": true
                },
                "paid_submission": {
                  "const": true
                },
                "profile_json_url": {
                  "format": "uri",
                  "type": "string"
                },
                "profile_url": {
                  "format": "uri",
                  "type": "string"
                },
                "status": {
                  "const": "paid_submission_processed"
                }
              },
              "required": [
                "status",
                "paid_submission",
                "indexable_profile",
                "profile_url",
                "profile_json_url",
                "badge_url"
              ],
              "type": "object"
            },
            "verification_status": {
              "enum": [
                "ready",
                "close",
                "needs_work",
                "pending"
              ],
              "type": "string"
            }
          },
          "required": [
            "id",
            "publication",
            "verification_status"
          ],
          "type": "object"
        },
        "payment": {
          "additionalProperties": true,
          "type": "object"
        },
        "provider_next_steps": {
          "additionalProperties": true,
          "properties": {
            "badge_url": {
              "format": "uri",
              "type": [
                "string",
                "null"
              ]
            },
            "boundary": {
              "type": "string"
            },
            "buyer_router": {
              "additionalProperties": true,
              "properties": {
                "eligibility_rule": {
                  "type": "string"
                },
                "eligible": {
                  "type": "boolean"
                },
                "ranking_rule": {
                  "type": "string"
                },
                "url": {
                  "format": "uri",
                  "type": "string"
                }
              },
              "required": [
                "url",
                "eligible",
                "eligibility_rule",
                "ranking_rule"
              ],
              "type": "object"
            },
            "discovery_status": {
              "type": "string"
            },
            "distribution_evidence": {
              "additionalProperties": true,
              "properties": {
                "boundary": {
                  "type": "string"
                },
                "measures": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "url": {
                  "format": "uri",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "window_days": {
                  "const": 30,
                  "type": "integer"
                }
              },
              "required": [
                "url",
                "window_days",
                "measures",
                "boundary"
              ],
              "type": "object"
            },
            "evidence_freshness": {
              "additionalProperties": true,
              "properties": {
                "age_hours": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "fresh_until": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "max_age_hours": {
                  "const": 168,
                  "type": "integer"
                },
                "observed_at": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "refresh_reason": {
                  "type": "string"
                },
                "refresh_recommended": {
                  "type": "boolean"
                },
                "schema": {
                  "const": "ontario.listing_evidence_freshness.v1"
                },
                "status": {
                  "enum": [
                    "fresh",
                    "stale",
                    "unknown"
                  ]
                }
              },
              "required": [
                "schema",
                "status",
                "max_age_hours",
                "refresh_recommended",
                "refresh_reason"
              ],
              "type": "object"
            },
            "profile_json_url": {
              "format": "uri",
              "type": [
                "string",
                "null"
              ]
            },
            "public_listing_url": {
              "format": "uri",
              "type": "string"
            },
            "readiness_report_url": {
              "format": "uri",
              "type": [
                "string",
                "null"
              ]
            },
            "schema": {
              "const": "ontario.provider_distribution_follow_up.v1"
            },
            "steps": {
              "items": {
                "type": "object"
              },
              "type": "array"
            },
            "strict_discovery_ready": {
              "type": "boolean"
            }
          },
          "required": [
            "schema",
            "discovery_status",
            "public_listing_url",
            "distribution_evidence",
            "buyer_router",
            "evidence_freshness",
            "steps",
            "boundary"
          ],
          "type": "object"
        }
      },
      "required": [
        "listing",
        "provider_next_steps"
      ],
      "type": "object"
    }
  ]
}
🟡ontario_refresh-listing(_x402_payment, listing_id, paid_refresh_tx)

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. Do not pay while the launch passport's 30-day included maintenance is active. 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 payment to receive MCP PaymentRequired, then retry with params._meta['x402/payment'] containing the signed PaymentPayload. The legacy _x402_payment base64 argument is also supported. Sign only after explicit budget and policy approval.]

입력 스키마

{
  "type": "object",
  "properties": {
    "_x402_payment": {
      "description": "base64 x402 PaymentPayload (USDC on Base); obtain the requirements by calling this tool without it first.",
      "type": "string"
    },
    "listing_id": {
      "description": "Existing paid provider profile id.",
      "pattern": "^lst_[A-Za-z0-9_-]+$",
      "type": "string"
    },
    "paid_refresh_tx": {
      "description": "One-use retry reference only when a settled refresh could not complete.",
      "type": "string"
    }
  },
  "required": [
    "listing_id"
  ]
}

출력 스키마

{
  "type": "object",
  "anyOf": [
    {
      "properties": {
        "buyer_guide": {
          "format": "uri",
          "type": "string"
        },
        "hint": {
          "type": "string"
        },
        "payment_policy": {
          "format": "uri",
          "type": "string"
        },
        "payment_required": {
          "const": true
        },
        "x402": {
          "type": [
            "object",
            "string"
          ]
        }
      },
      "required": [
        "payment_required",
        "x402",
        "hint"
      ],
      "type": "object"
    },
    {
      "additionalProperties": true,
      "properties": {
        "boundary": {
          "description": "Payment buys a new observation, not a better grade or guaranteed discovery.",
          "type": "string"
        },
        "listing": {
          "properties": {
            "id": {
              "pattern": "^lst_[A-Za-z0-9_-]+$",
              "type": "string"
            },
            "verification": {
              "type": "object"
            },
            "verification_status": {
              "enum": [
                "ready",
                "close",
                "needs_work",
                "pending"
              ]
            }
          },
          "required": [
            "id",
            "verification_status",
            "verification"
          ],
          "type": "object"
        },
        "payment": {
          "description": "Settlement or one-use retry reference, never a wallet signing secret.",
          "type": "object"
        },
        "profile": {
          "properties": {
            "evidence": {
              "type": "object"
            },
            "listing": {
              "type": "object"
            },
            "schema": {
              "const": "ontario.x402_listing_profile.v1"
            }
          },
          "required": [
            "schema",
            "listing",
            "evidence"
          ],
          "type": "object"
        },
        "provider_next_steps": {
          "required": [
            "schema",
            "boundary"
          ],
          "type": "object"
        },
        "status": {
          "const": "refreshed"
        }
      },
      "required": [
        "status",
        "payment",
        "listing",
        "profile",
        "provider_next_steps",
        "boundary"
      ],
      "type": "object"
    }
  ]
}
🟢agent_trust_preview(agent_id, target_url)

Free live, rate-limited agent trust preview for one public endpoint. Returns safe signals and issues without the paid evidence bundle or attestation; use the paid trust scan only when the preview is insufficient.

입력 스키마

{
  "type": "object",
  "properties": {
    "agent_id": {
      "description": "Optional stable public agent identifier to associate with the preview.",
      "maxLength": 120,
      "type": "string"
    },
    "target_url": {
      "description": "Public HTTPS agent card or endpoint to preview without payment; never include private hosts or credentials.",
      "format": "uri",
      "type": "string"
    }
  },
  "required": [
    "target_url"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "issues": {
      "type": "array"
    },
    "limitations": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "max_score": {
      "type": "number"
    },
    "normalized_base": {
      "type": "string"
    },
    "paid_upgrade": {
      "additionalProperties": true,
      "type": "object"
    },
    "preview": {
      "type": "boolean"
    },
    "scanned_at": {
      "type": "string"
    },
    "schema": {
      "type": "string"
    },
    "signals": {
      "additionalProperties": true,
      "type": "object"
    },
    "target_url": {
      "type": "string"
    },
    "trust_score": {
      "type": "number"
    }
  },
  "required": [
    "schema",
    "preview",
    "trust_score",
    "paid_upgrade"
  ],
  "additionalProperties": true
}
⚪ontario_agent-trust-scan(_x402_payment, agent_id, target_url)

Use when an agent needs a structured trust report for a public agent card or A2A endpoint before routing money or user work to it. This is a paid point-in-time scan, not an endpoint-readiness check. Agent payment guidance: run free can-pay and readiness checks first; pay only when policy allows base 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 and 0.01 USDC is inside the agent budget. [PAID: 0.01 USDC via x402 on Base. Two-step flow: call without payment to receive MCP PaymentRequired, then retry with params._meta['x402/payment'] containing the signed PaymentPayload. The legacy _x402_payment base64 argument is also supported. Sign only after explicit budget and policy approval.]

입력 스키마

{
  "type": "object",
  "properties": {
    "_x402_payment": {
      "description": "base64 x402 PaymentPayload (USDC on Base); obtain the requirements by calling this tool without it first.",
      "type": "string"
    },
    "agent_id": {
      "description": "Optional stable agent identifier to include in the report.",
      "type": "string"
    },
    "target_url": {
      "description": "Public HTTPS agent card or A2A endpoint to inspect.",
      "format": "uri",
      "type": "string"
    }
  },
  "required": [
    "target_url"
  ]
}

출력 스키마

{
  "type": "object",
  "anyOf": [
    {
      "properties": {
        "buyer_guide": {
          "format": "uri",
          "type": "string"
        },
        "hint": {
          "type": "string"
        },
        "payment_policy": {
          "format": "uri",
          "type": "string"
        },
        "payment_required": {
          "const": true
        },
        "x402": {
          "type": [
            "object",
            "string"
          ]
        }
      },
      "required": [
        "payment_required",
        "x402",
        "hint"
      ],
      "type": "object"
    },
    {
      "additionalProperties": true,
      "properties": {
        "payment": {
          "additionalProperties": true,
          "type": "object"
        },
        "report": {
          "additionalProperties": true,
          "properties": {
            "agent_id": {
              "type": "string"
            },
            "endpoint": {
              "type": "string"
            },
            "evidence": {
              "additionalProperties": true,
              "type": "object"
            },
            "issues": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "scanned_at": {
              "type": "string"
            },
            "scanner": {
              "type": "string"
            },
            "signals": {
              "additionalProperties": {
                "type": "boolean"
              },
              "type": "object"
            },
            "trust_score": {
              "maximum": 100,
              "minimum": 0,
              "type": "integer"
            }
          },
          "required": [
            "agent_id",
            "endpoint",
            "scanned_at",
            "scanner",
            "trust_score",
            "signals",
            "issues",
            "evidence"
          ],
          "type": "object"
        }
      },
      "required": [
        "payment",
        "report"
      ],
      "type": "object"
    }
  ]
}
🟢github_x402_repo_scan(repository_url)

Free pre-deployment scan of one public GitHub repository for x402 implementation, HTTP 402 tests, payment configuration, buyer documentation, discovery metadata, CI gates, and sensitive filenames. Returns paths and remediation, never source contents.

입력 스키마

{
  "type": "object",
  "properties": {
    "repository_url": {
      "description": "Public https://github.com/owner/repo URL.",
      "format": "uri",
      "type": "string"
    }
  },
  "required": [
    "repository_url"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "checks": {
      "items": {
        "type": "object"
      },
      "type": "array"
    },
    "grade": {
      "type": "string"
    },
    "max_score": {
      "const": 100
    },
    "next_actions": {
      "items": {
        "type": "object"
      },
      "type": "array"
    },
    "repository": {
      "additionalProperties": true,
      "type": "object"
    },
    "schema": {
      "type": "string"
    },
    "score": {
      "maximum": 100,
      "minimum": 0,
      "type": "number"
    },
    "status": {
      "enum": [
        "complete",
        "complete_with_limits"
      ]
    },
    "summary": {
      "additionalProperties": true,
      "type": "object"
    }
  },
  "required": [
    "schema",
    "status",
    "repository",
    "score",
    "max_score",
    "grade",
    "summary",
    "checks",
    "next_actions"
  ],
  "additionalProperties": true
}
⚪ontario_x402-implementation-audit(_x402_payment, endpoint_url, focus, repository_url)

Use when a provider or developer needs a bounded, task-specific x402 code review for a public endpoint or GitHub repository. Returns payment, discovery, security, debugging, and launch findings without returning source contents or secret values. Agent payment guidance: run free can-pay and readiness checks first; pay only when policy allows base 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 and 0.01 USDC is inside the agent budget. [PAID: 0.01 USDC via x402 on Base. Two-step flow: call without payment to receive MCP PaymentRequired, then retry with params._meta['x402/payment'] containing the signed PaymentPayload. The legacy _x402_payment base64 argument is also supported. Sign only after explicit budget and policy approval.]

입력 스키마

{
  "type": "object",
  "properties": {
    "_x402_payment": {
      "description": "base64 x402 PaymentPayload (USDC on Base); obtain the requirements by calling this tool without it first.",
      "type": "string"
    },
    "endpoint_url": {
      "description": "Public HTTPS x402 endpoint to inspect.",
      "format": "uri",
      "type": "string"
    },
    "focus": {
      "default": "launch",
      "description": "Area of the x402 implementation to review: launch readiness, payment handling, discovery metadata, or security.",
      "enum": [
        "launch",
        "payment",
        "discovery",
        "security"
      ],
      "type": "string"
    },
    "repository_url": {
      "description": "Public GitHub repository containing the x402 implementation.",
      "format": "uri",
      "type": "string"
    }
  },
  "anyOf": [
    {
      "required": [
        "endpoint_url"
      ]
    },
    {
      "required": [
        "repository_url"
      ]
    }
  ]
}

출력 스키마

{
  "type": "object",
  "anyOf": [
    {
      "properties": {
        "buyer_guide": {
          "format": "uri",
          "type": "string"
        },
        "hint": {
          "type": "string"
        },
        "payment_policy": {
          "format": "uri",
          "type": "string"
        },
        "payment_required": {
          "const": true
        },
        "x402": {
          "type": [
            "object",
            "string"
          ]
        }
      },
      "required": [
        "payment_required",
        "x402",
        "hint"
      ],
      "type": "object"
    },
    {
      "properties": {
        "audit_id": {
          "type": "string"
        },
        "findings": {
          "items": {
            "type": "object"
          },
          "type": "array"
        },
        "schema": {
          "const": "ontario.x402_implementation_audit.v1"
        },
        "status": {
          "type": "string"
        },
        "summary": {
          "properties": {
            "blocking_findings": {
              "minimum": 0,
              "type": "integer"
            },
            "grade": {
              "type": "string"
            },
            "score": {
              "maximum": 100,
              "minimum": 0,
              "type": "integer"
            },
            "warning_findings": {
              "minimum": 0,
              "type": "integer"
            }
          },
          "required": [
            "score",
            "grade",
            "blocking_findings",
            "warning_findings"
          ],
          "type": "object"
        },
        "trust_boundary": {
          "type": "string"
        }
      },
      "required": [
        "schema",
        "status",
        "audit_id",
        "summary",
        "findings",
        "trust_boundary"
      ],
      "type": "object"
    }
  ]
}
⚪ontario_reputation(_x402_payment, agent_id)

Use when an agent already has a stable agent identifier and needs the cheapest accumulated reputation lookup. Use Agent Trust Scan instead when there is no usable history or a fresh card scan is required. Agent payment guidance: run free can-pay and readiness checks first; pay only when policy allows base 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 and 0.001 USDC is inside the agent budget. [PAID: 0.001 USDC via x402 on Base. Two-step flow: call without payment to receive MCP PaymentRequired, then retry with params._meta['x402/payment'] containing the signed PaymentPayload. The legacy _x402_payment base64 argument is also supported. Sign only after explicit budget and policy approval.]

입력 스키마

{
  "type": "object",
  "properties": {
    "_x402_payment": {
      "description": "base64 x402 PaymentPayload (USDC on Base); obtain the requirements by calling this tool without it first.",
      "type": "string"
    },
    "agent_id": {
      "description": "Stable agent identifier used in the reputation path.",
      "minLength": 1,
      "type": "string"
    }
  },
  "required": [
    "agent_id"
  ]
}

출력 스키마

{
  "type": "object",
  "anyOf": [
    {
      "properties": {
        "buyer_guide": {
          "format": "uri",
          "type": "string"
        },
        "hint": {
          "type": "string"
        },
        "payment_policy": {
          "format": "uri",
          "type": "string"
        },
        "payment_required": {
          "const": true
        },
        "x402": {
          "type": [
            "object",
            "string"
          ]
        }
      },
      "required": [
        "payment_required",
        "x402",
        "hint"
      ],
      "type": "object"
    },
    {
      "properties": {
        "payment": {
          "type": "object"
        },
        "reputation": {
          "properties": {
            "agent_id": {
              "type": "string"
            },
            "attestation_count": {
              "type": "integer"
            },
            "attestations": {
              "items": {
                "type": "object"
              },
              "type": "array"
            },
            "trust_score": {
              "type": [
                "integer",
                "null"
              ]
            }
          },
          "required": [
            "agent_id",
            "trust_score",
            "attestation_count",
            "attestations"
          ],
          "type": "object"
        }
      },
      "required": [
        "payment",
        "reputation"
      ],
      "type": "object"
    }
  ]
}
🟢ontario_agent-pay-query-v2(_x402_payment, agent_policy, endpoint, max_usdc, query)

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 payment to receive MCP PaymentRequired, then retry with params._meta['x402/payment'] containing the signed PaymentPayload. The legacy _x402_payment base64 argument is also supported. Sign only after explicit budget and policy approval.]

입력 스키마

{
  "type": "object",
  "properties": {
    "_x402_payment": {
      "description": "base64 x402 PaymentPayload (USDC on Base); obtain the requirements by calling this tool without it first.",
      "type": "string"
    },
    "agent_policy": {
      "default": "strict",
      "description": "Policy posture used to produce the allow or deny decision.",
      "enum": [
        "strict",
        "standard",
        "permissive"
      ],
      "type": "string"
    },
    "endpoint": {
      "description": "Public x402 paid API URL to probe and verify before an autonomous agent pays.",
      "format": "uri",
      "type": "string"
    },
    "max_usdc": {
      "description": "Optional maximum endpoint price allowed by the buyer policy.",
      "type": "string"
    },
    "query": {
      "description": "Optional task context for the payment decision. When omitted, Ontario performs a general live x402 endpoint readiness check.",
      "maxLength": 500,
      "minLength": 1,
      "type": "string"
    }
  },
  "required": [
    "endpoint"
  ]
}

출력 스키마

{
  "type": "object",
  "anyOf": [
    {
      "properties": {
        "buyer_guide": {
          "format": "uri",
          "type": "string"
        },
        "hint": {
          "type": "string"
        },
        "payment_policy": {
          "format": "uri",
          "type": "string"
        },
        "payment_required": {
          "const": true
        },
        "x402": {
          "type": [
            "object",
            "string"
          ]
        }
      },
      "required": [
        "payment_required",
        "x402",
        "hint"
      ],
      "type": "object"
    },
    {
      "oneOf": [
        {
          "properties": {
            "buyer_guide": {
              "format": "uri",
              "type": "string"
            },
            "hint": {
              "type": "string"
            },
            "payment_policy": {
              "format": "uri",
              "type": "string"
            },
            "payment_required": {
              "const": true
            },
            "x402": {
              "type": [
                "object",
                "string"
              ]
            }
          },
          "required": [
            "payment_required",
            "x402",
            "hint"
          ],
          "type": "object"
        },
        {
          "properties": {
            "answer": {
              "type": "string"
            },
            "created_at": {
              "type": "string"
            },
            "data": {
              "type": "object"
            },
            "endpoint": {
              "type": [
                "string",
                "null"
              ]
            },
            "evidence_receipt": {
              "type": "object"
            },
            "payment": {
              "type": "object"
            },
            "pricing": {
              "type": "object"
            },
            "query": {
              "type": "string"
            },
            "query_id": {
              "type": "string"
            },
            "schema": {
              "const": "ontario.agent_pay_query.v1"
            }
          },
          "required": [
            "schema",
            "query_id",
            "answer",
            "data",
            "evidence_receipt"
          ],
          "type": "object"
        }
      ]
    }
  ]
}
⚪ontario_x402-demand-authenticity(_x402_payment, expected_recipient, related_addresses, tx_hashes)

Use when an agent, marketplace, provider, or investor needs to separate observable Base USDC settlement evidence from unsupported independent-demand claims. Detects direct self-payments, classifies disclosed related-party and unattributed receipts, measures payer concentration, and does not call unknown wallets customers. Agent payment guidance: run free can-pay and readiness checks first; pay only when policy allows base 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 and 0.02 USDC is inside the agent budget. [PAID: 0.02 USDC via x402 on Base. Two-step flow: call without payment to receive MCP PaymentRequired, then retry with params._meta['x402/payment'] containing the signed PaymentPayload. The legacy _x402_payment base64 argument is also supported. Sign only after explicit budget and policy approval.]

입력 스키마

{
  "type": "object",
  "properties": {
    "_x402_payment": {
      "description": "base64 x402 PaymentPayload (USDC on Base); obtain the requirements by calling this tool without it first.",
      "type": "string"
    },
    "expected_recipient": {
      "description": "Optional recipient wallet address expected for these settlement receipts.",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "type": "string"
    },
    "related_addresses": {
      "description": "Disclosed provider-controlled or related wallet addresses; omission does not establish independence.",
      "items": {
        "pattern": "^0x[0-9a-fA-F]{40}$",
        "type": "string"
      },
      "maxItems": 50,
      "type": "array"
    },
    "tx_hashes": {
      "description": "One to twenty public Base settlement transaction hashes to classify.",
      "items": {
        "pattern": "^0x[0-9a-fA-F]{64}$",
        "type": "string"
      },
      "maxItems": 20,
      "minItems": 1,
      "type": "array"
    }
  },
  "required": [
    "tx_hashes"
  ]
}

출력 스키마

{
  "type": "object",
  "anyOf": [
    {
      "properties": {
        "buyer_guide": {
          "format": "uri",
          "type": "string"
        },
        "hint": {
          "type": "string"
        },
        "payment_policy": {
          "format": "uri",
          "type": "string"
        },
        "payment_required": {
          "const": true
        },
        "x402": {
          "type": [
            "object",
            "string"
          ]
        }
      },
      "required": [
        "payment_required",
        "x402",
        "hint"
      ],
      "type": "object"
    },
    {
      "additionalProperties": true,
      "properties": {
        "evidence_digest": {
          "type": "string"
        },
        "schema": {
          "type": "string"
        },
        "summary": {
          "additionalProperties": true,
          "type": "object"
        },
        "transactions": {
          "items": {
            "type": "object"
          },
          "type": "array"
        }
      },
      "required": [
        "schema",
        "summary",
        "transactions",
        "evidence_digest"
      ],
      "type": "object"
    }
  ]
}
🟡ontario_list-agent(_x402_payment, agent_card_url, description, name, owner_contact, ...)

Use only when the caller owns the agent and wants to submit a public directory listing. Validate the payload for free first; payment does not guarantee approval, traffic, ranking, or safety. 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 payment to receive MCP PaymentRequired, then retry with params._meta['x402/payment'] containing the signed PaymentPayload. The legacy _x402_payment base64 argument is also supported. Sign only after explicit budget and policy approval.]

입력 스키마

{
  "type": "object",
  "properties": {
    "_x402_payment": {
      "description": "base64 x402 PaymentPayload (USDC on Base); obtain the requirements by calling this tool without it first.",
      "type": "string"
    },
    "agent_card_url": {
      "description": "Public HTTPS agent card URL for the listing.",
      "format": "uri",
      "type": "string"
    },
    "description": {
      "description": "Public description of the agent's capabilities.",
      "type": "string"
    },
    "name": {
      "description": "Public name of the agent being listed.",
      "minLength": 1,
      "type": "string"
    },
    "owner_contact": {
      "description": "Optional owner contact supplied for the listing; do not include secrets.",
      "type": "string"
    },
    "owner_url": {
      "description": "Optional public owner website.",
      "format": "uri",
      "type": "string"
    },
    "tags": {
      "description": "Capability tags describing the agent.",
      "items": {
        "type": "string"
      },
      "type": "array"
    }
  },
  "required": [
    "name",
    "agent_card_url"
  ]
}

출력 스키마

{
  "type": "object",
  "anyOf": [
    {
      "properties": {
        "buyer_guide": {
          "format": "uri",
          "type": "string"
        },
        "hint": {
          "type": "string"
        },
        "payment_policy": {
          "format": "uri",
          "type": "string"
        },
        "payment_required": {
          "const": true
        },
        "x402": {
          "type": [
            "object",
            "string"
          ]
        }
      },
      "required": [
        "payment_required",
        "x402",
        "hint"
      ],
      "type": "object"
    },
    {
      "properties": {
        "listing": {
          "type": "object"
        },
        "payment": {
          "type": "object"
        }
      },
      "required": [
        "payment",
        "listing"
      ],
      "type": "object"
    }
  ]
}
⚪ontario_validate-agent(agent_card_url, description, name, owner_contact, owner_url, ...)

Validate an agent listing payload for free before publication. Never publishes, signs or spends.

입력 스키마

{
  "type": "object",
  "properties": {
    "agent_card_url": {
      "description": "Public HTTPS agent card URL for the listing.",
      "format": "uri",
      "type": "string"
    },
    "description": {
      "description": "Public description of the agent's capabilities.",
      "type": "string"
    },
    "name": {
      "description": "Public name of the agent being listed.",
      "minLength": 1,
      "type": "string"
    },
    "owner_contact": {
      "description": "Optional owner contact supplied for the listing; do not include secrets.",
      "type": "string"
    },
    "owner_url": {
      "description": "Optional public owner website.",
      "format": "uri",
      "type": "string"
    },
    "tags": {
      "description": "Capability tags describing the agent.",
      "items": {
        "type": "string"
      },
      "type": "array"
    }
  },
  "required": [
    "name",
    "agent_card_url"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "errors": {
      "items": {
        "type": "object"
      },
      "type": "array"
    },
    "ok": {
      "type": "boolean"
    }
  },
  "required": [
    "ok",
    "errors"
  ],
  "additionalProperties": true
}
🟢ontario_validate-refresh(listing_id, paid_refresh_tx)

Check an existing paid provider profile's refresh eligibility for free, including cooldown. Never refreshes, signs or spends.

입력 스키마

{
  "type": "object",
  "properties": {
    "listing_id": {
      "description": "Existing paid provider profile id.",
      "pattern": "^lst_[A-Za-z0-9_-]+$",
      "type": "string"
    },
    "paid_refresh_tx": {
      "description": "One-use retry reference only when a settled refresh could not complete.",
      "type": "string"
    }
  },
  "required": [
    "listing_id"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "errors": {
      "items": {
        "type": "object"
      },
      "type": "array"
    },
    "ok": {
      "type": "boolean"
    }
  },
  "required": [
    "ok",
    "errors"
  ],
  "additionalProperties": true
}
🟢x402_verification_reports(limit)

Public ledger of recent x402 readiness reports.

입력 스키마

{
  "type": "object",
  "properties": {
    "limit": {
      "default": 25,
      "description": "Maximum recent public readiness reports to request.",
      "type": "integer"
    }
  }
}

출력 스키마

{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer"
    },
    "reports": {
      "items": {
        "type": "object"
      },
      "type": "array"
    },
    "stats": {
      "type": "object"
    }
  },
  "required": [
    "count",
    "reports",
    "stats"
  ]
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 21개
검증됨버전이 기록되지 않음도구 9개