Surface Contract: how platform APIs really behave

dev.workers.penny-mcamp.penny-surface-contract/surface-contract · v2026.10.13 · agents-and-memory

Surface Contract: how platform APIs really behave is healthy: it completed an MCP handshake in 1688 ms and exposes 7 tools.

Evidence-cited machine-readable contracts for how agent platform APIs really behave

Endpoint: https://penny-surface-contract.penny-mcamp.workers.dev/mcp (streamable-http)

No repository listed · Website · JSON · Add to my inventory

Facts

Users (last 30 days)0
HandshakeHealthy
Auth neededNone
Tool count7
Latency1688 ms
Last checked (UTC)2026-10-16T02:35:09.837Z

Health history

Checked (UTC)StatusLatencyError
2026-10-16T02:35:09.837ZHealthy1688
2026-10-14T23:40:37.313ZHealthy1946

Tools (7)

list_surface_contractsList the platform surface contracts published in Penny's free registry, with claim counts.
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.
verify_surfaceRun the anonymous conformance checks for a contract now and return verified / failed / unknown / manual / unsupported per claim.
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 contrac
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.
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 guar
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-o