Surface Contract: platform API behavior and x402 pre-payment checks
Surface contracts: API behavior evidence, x402 pre-payment check, MCP server preflight
| Endpoint | https://penny-surface-contract.penny-mcamp.workers.dev/mcp (streamable-http) |
|---|---|
| Registry version | 2026.10.22 |
| Now | 7 tools · grade D (52) · pin ts_e03bb7aa5a39ea5fb3421db9743a6260 · protocol 2025-06-18 |
| First / last listed | 2026-11-04 02:37 UTC / 2026-11-04 02:37 UTC |
| Grade over time | 2026-11-04: D (52), 7 tools |
Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.
Tools: list_surface_contracts get_surface_contract verify_surface contribute_discrepancy get_integration_recipe preflight_mcp_server prepay_check
list_surface_contracts | List the platform surface contracts published in Penny's free registry, with claim counts. params: none |
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. params: id* |
verify_surface | Run the anonymous conformance checks for a contract now and return verified / failed / unknown / manual / unsupported per claim. params: id* |
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 contractId no published contract serves is accepted as a NEW-PLATFORM PROPOSAL: the 202 body carries contra params: contractId*, claimId, kind*, statement*, evidence*, reporter, observedAt |
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. params: id* |
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 guard clauses that follow. Use it before wiring an MCP server into your own config. Pass `urls` (up to 5 params: url, urls |
prepay_check | Check an x402 route BEFORE you pay it. GET /v1/prepay?url=<the route> 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-on-Base, and whether its payTo and price agree with the seller's own card (pass `card` to read that c params: url*, card |
Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.