{"openapi":"3.1.0","info":{"title":"ProofRail MCP Verification & Release Certification","version":"0.4.1","description":"Discover, preflight, verify, and certify public MCP servers before deployment or trust. ProofRail checks MCP reachability, protocol negotiation, tools/list, tool schemas, transport, and authentication behavior; full x402-paid certification returns a deterministic PASS, FAIL, or PARTIAL evidence receipt.","contact":{"url":"https://kaattaallaa-sketch.github.io/proofrail-mcp/"},"x-guidance":"Use /api/radar to discover public MCP endpoints from ProofRail's autonomous index; over MCP, call find_mcp_servers for task-oriented discovery or mcp_radar_snapshot for advanced filtering. Search by query and filter or sort by outcome, connection, source, tool name, tool count, observation count, pass rate, stability, freshness, or relevance. Use /api/radar/changes or mcp_radar_changes to inspect changes between scans. Before deploying, upgrading, or trusting a specific MCP server, call /api/preflight over HTTP or mcp_release_preflight over MCP; it is free and needs no payment. Use /api/purchase for the buying guide. Use /api/certify or mcp_release_certify with required_tools and optional baseline_schema_hashes for paid deployment contract checks, ALLOW/BLOCK/REVIEW decisions, and the deterministic evidence receipt; paid results include a public verification_url for the settled receipt. Full certification payment uses Base mainnet USDC."},"x-discovery":{"ownershipProofs":["0x865fC95cB5B9767DAfe07AcB0E0593FB40bCC28C"]},"paths":{"/health":{"get":{"summary":"ProofRail health","security":[],"responses":{"200":{"description":"Healthy"}}}},"/api/radar":{"get":{"summary":"Find observed public MCP servers","description":"Search ProofRail's autonomous catalog of public MCP servers by capability and observed compatibility. Read-only cached observations; does not trigger a live scan.","tags":["Search","Utility"],"security":[],"parameters":[{"name":"outcome","in":"query","required":false,"schema":{"type":"string","enum":["PASS","FAIL","PARTIAL"]}},{"name":"connection","in":"query","required":false,"schema":{"type":"string","enum":["ok","auth_required","transport_error"]}},{"name":"source","in":"query","required":false,"schema":{"type":"string","enum":["official_mcp_registry","github_code_search"]}},{"name":"tool_contains","in":"query","required":false,"schema":{"type":"string"}},{"name":"min_tools","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":10000}},{"name":"min_observations","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000000}},{"name":"min_pass_rate","in":"query","required":false,"schema":{"type":"number","minimum":0,"maximum":1}},{"name":"query","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["relevance","stability","observations","tools","freshness"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20}}],"responses":{"200":{"description":"Latest cached Radar snapshot"},"503":{"description":"Radar snapshot unavailable"}}}},"/api/radar/changes":{"get":{"summary":"Track MCP server compatibility changes","description":"Read-only changes observed between the two latest autonomous MCP Radar scans, including protocol, tools, schemas, connection state, and outcome drift. Does not trigger a live scan.","tags":["Search","Utility"],"security":[],"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["NEW","NOT_SEEN","OUTCOME_CHANGED","CONNECTION_CHANGED","PROTOCOL_CHANGED","TOOLS_CHANGED","TOOL_NAMES_CHANGED","SCHEMA_ISSUES_CHANGED"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20}}],"responses":{"200":{"description":"Changes between the two latest Radar snapshots"},"503":{"description":"Radar changes unavailable"}}}},"/api/preflight":{"post":{"operationId":"preflightMcpServer","summary":"Free MCP server compatibility preflight","description":"Validate an MCP server before deployment or trust at no cost: checks reachability, protocol negotiation, tools/list, tool count, and schema issue count, then returns the paid certification next step.","tags":["Utility","AI"],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target_url":{"type":"string","description":"Public MCP Streamable HTTP endpoint URL to verify before deployment, upgrade, or trust.","examples":["https://example.com/mcp"]},"declared_protocol_version":{"type":"string","description":"Optional MCP protocol version claimed by the target; ProofRail reports a mismatch if negotiation differs.","examples":["2025-11-25"]},"check_profile":{"type":"string","enum":["basic"],"default":"basic","description":"Verification profile. basic checks connection, MCP protocol negotiation, tools/list, and tool input schemas."}},"required":["target_url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Preflight summary and paid-certification next step","content":{"application/json":{"schema":{"type":"object","required":["preflight","next_step"],"properties":{"preflight":{"type":"object","required":["outcome","protocol_compatible","connection","tools_count","tool_names","tool_names_truncated","schema_issues"],"properties":{"outcome":{"type":"string","enum":["PASS","FAIL","PARTIAL"]},"protocol_compatible":{"type":["boolean","null"]},"connection":{"type":"string","enum":["ok","auth_required","transport_error"]},"negotiated_protocol_version":{"type":"string"},"tools_count":{"type":["integer","null"]},"tool_names":{"type":["array","null"],"items":{"type":"string"}},"tool_names_truncated":{"type":"boolean"},"schema_issues":{"type":["integer","null"]}},"additionalProperties":false},"next_step":{"type":"object","description":"Exact paid-certification transition after the free preflight.","required":["mcp_tool","http_endpoint","payment_mode","price_atomic","asset","network","result"],"properties":{"mcp_tool":{"type":"string","const":"mcp_release_certify"},"http_endpoint":{"type":"string","const":"/api/certify"},"payment_mode":{"type":"string","const":"x402"},"price_atomic":{"type":"string"},"asset":{"type":"string"},"network":{"type":"string"},"result":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}}}},"503":{"description":"Preflight concurrency capacity reached"}}}},"/api/receipts/{receipt_id}":{"get":{"operationId":"verifyProofRailReceipt","summary":"Verify a ProofRail certification receipt","description":"Public read-only verification for a payment-linked ProofRail receipt. Settled receipts are immutable; pending receipts return HTTP 202.","security":[],"parameters":[{"name":"receipt_id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-f0-9]{64}$"}}],"responses":{"200":{"description":"Settled receipt verified"},"202":{"description":"Receipt exists but settlement is still pending"},"404":{"description":"Receipt not found"}}}},"/api/certify":{"post":{"operationId":"certifyMcpServerRelease","summary":"MCP server verification, compatibility preflight & release certification","description":"x402-paid MCP server verification and release certification. Validates reachability, protocol negotiation, tools/list, schemas, transport, and authentication behavior before deployment, upgrade, or trust; returns deterministic PASS, FAIL, or PARTIAL evidence with a receipt.","tags":["Utility","AI"],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.10"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target_url":{"type":"string","description":"Public MCP Streamable HTTP endpoint URL to verify before deployment, upgrade, or trust.","examples":["https://example.com/mcp"]},"declared_protocol_version":{"type":"string","description":"Optional MCP protocol version claimed by the target; ProofRail reports a mismatch if negotiation differs.","examples":["2025-11-25"]},"check_profile":{"type":"string","enum":["basic"],"default":"basic","description":"Verification profile. basic checks connection, MCP protocol negotiation, tools/list, and tool input schemas."},"required_tools":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"string","minLength":1,"maxLength":128},"description":"Paid deployment gate: tool names your integration requires."},"baseline_schema_hashes":{"type":"object","minProperties":1,"maxProperties":100,"additionalProperties":{"type":"string","pattern":"^[a-f0-9]{64}$"},"description":"Prior paid contract_baseline. Removed tools fail; changed input-schema fingerprints require review."},"fixture_id":{"type":"string","description":"Optional server-configured safe fixture id. Arbitrary remote tool arguments are never accepted from callers."}},"required":["target_url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Deterministic MCP certification result and payment-linked receipt id","content":{"application/json":{"schema":{"type":"object","required":["certification","receipt_id","verification_url"],"properties":{"certification":{"type":"object","required":["outcome","checks","evidence","verifier_version"],"properties":{"outcome":{"type":"string","enum":["PASS","FAIL","PARTIAL"],"description":"Deterministic overall compatibility verdict."},"checks":{"type":"array","description":"Individual verification checks such as connection, MCP protocol, tools/list, and schemas.","items":{"type":"object","required":["name","outcome"],"properties":{"name":{"type":"string"},"outcome":{"type":"string","enum":["PASS","FAIL","PARTIAL"]},"code":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":false}},"evidence":{"type":"object","description":"Machine-readable evidence observed from the target MCP endpoint.","additionalProperties":true},"verifier_version":{"type":"string"}},"additionalProperties":false},"receipt_id":{"type":"string","description":"Deterministic payment-linked receipt identifier for this certification execution."},"verification_url":{"type":"string","format":"uri","description":"Public URL for verifying the finalized payment-linked receipt after settlement."}},"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}}}}