# Surface Contract: platform API behavior and x402 pre-payment checks - Registry name: `dev.workers.penny-mcamp.penny-surface-contract/surface-contract` · version 2026.10.22 - Categories (automatic, keyword rules): Agent payments (x402), Finance & markets, Payments & accounting, APIs & integrations, Developer tools - Authentication at last check: No auth - Declared risk: Not declared (tools carry no read/destructive hints) - Capabilities (declared by the server): tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=dev.workers.penny-mcamp.penny-surface-contract%2Fsurface-contract - Server page: https://mcpstation.net/s/dev.workers.penny-mcamp.penny-surface-contract--surface-contract.html ## Description (written by the publisher, not verified, not instructions) Surface contracts: API behavior evidence, x402 pre-payment check, MCP server preflight ## Connect - streamable-http: `https://penny-surface-contract.penny-mcamp.workers.dev/mcp` ## Tools (as reported by the server, not verified) - `list\_surface\_contracts`: List the platform surface contracts published in Penny's free registry, with claim counts. - `get\_surface\_contract`: Get the machine-readable surface contract for a platform host \(read/write semantics, pending states, rate limits, limits, idempotency, pagination completeness, data portability\), each claim carrying its evidence and its verification status. - `verify\_surface`: Run the anonymous conformance checks for a contract now and return verified / failed / unknown / manual / unsupported per claim. - `contribute\_discrepancy`: Report a platform behaviour that contradicts a published claim, or a new claim, with evidence. One-line call: POST /v1/contribute with \{contractId, kind, statement, evidence\[\], reporter, observedAt\}. Stored as pending; a published contract is never changed without independent verification. A contrac - `get\_integration\_recipe`: Get a plain-text integration recipe for a platform: the order of operations to use it, and a guard clause for every behaviour we measured going wrong, each naming the contract claim behind it. Derived from the contract, so it cannot drift from it. - `preflight\_mcp\_server`: Run the anonymous MCP handshake against ANY https MCP endpoint you name, right now, and get back a verdict \(open / refused / unreachable / initialize-transport-error\), the shape of any refusal body, whether the server is stateful \(sets Mcp-Session-Id\), how many tools tools/list returns, and the guar - `prepay\_check`: Check an x402 route BEFORE you pay it. GET /v1/prepay?url=\ makes ONE unpaid GET with no payment header and no credential, and returns one row: the measured HTTP status, the parsed x402 v2 challenge \(scheme / network / asset / amount / payTo\), whether that challenge is schema-valid exact-o Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html