dev.workers.penny-mcamp.penny-surface-contract/surface-contract

Surface Contract: platform API behavior and x402 pre-payment checks

Surface contracts: API behavior evidence, x402 pre-payment check, MCP server preflight

Endpointhttps://penny-surface-contract.penny-mcamp.workers.dev/mcp (streamable-http)
Registry version2026.10.22
Now7 tools · grade D (52) · pin ts_e03bb7aa5a39ea5fb3421db9743a6260 · protocol 2025-06-18
First / last listed2026-11-04 02:37 UTC / 2026-11-04 02:37 UTC
Grade over time2026-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.

Timeline

First listing · 2026-11-04 02:37 UTC
7 tools, grade D (52)

Tools: list_surface_contracts get_surface_contract verify_surface contribute_discrepancy get_integration_recipe preflight_mcp_server prepay_check

Current tools (7)

list_surface_contractsList the platform surface contracts published in Penny's free registry, with claim counts.
params: none
get_surface_contractGet 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_surfaceRun the anonymous conformance checks for a contract now and return verified / failed / unknown / manual / unsupported per claim.
params: id*
contribute_discrepancyReport 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_recipeGet 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_serverRun 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_checkCheck 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.