Skip to content
mcp/skillhub

Surface Contract MCP Server

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

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

remoteofficial registry

context tax

~1,338 tok/turn7 tools

security

pending

cold start

hosted

freshness

Active5d ago

Our reading of Surface Contract, from the data

Surface Contract is an MCP server, listed in the official MCP Registry.

Its 7 tools add about 1,338 tokens to every model turn (measured 2026-10-19).

Maintenance is active: the last public signal was 5 days ago (2026-10-13).

It runs as a hosted endpoint, so there is nothing to install.

Install Surface Contract MCP server

Install in Claude Code

claude mcp add --transport http surface-contract https://penny-surface-contract.penny-mcamp.workers.dev/mcp

Remote endpoints

  • streamable-httphttps://penny-surface-contract.penny-mcamp.workers.dev/mcp

Context tax

Connecting this server adds ~1,338 tokens of tool definitions to every model turn (moderate, 7 tools). Measured 2026-10-19 via its hosted endpoint; o200k tokenizer, worst case for clients that load all tools up front. How we measure

ModelPer 1,000 turnsWith prompt caching
Claude Opus 5.5$5.35$0.268
Claude Sonnet 5.5$2.68$0.268
Claude Haiku 5.5$0.134—

Input prices as of 2026-10-06. Excludes your own prompt and output.

Tools (7)

  • contribute_discrepancy377 tok

    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 contractExists:false (with proposal:true, proposedContractId and proposedHost), it is listed distinctly at GET /v1/contributions, and it stays pending until a second party reproduces it - it never creates o

  • preflight_mcp_server275 tok

    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) to check a whole mcp.json in one call. When the endpoint refuses, it also reports whether the refusal advertises a credential path (an RFC 9728 resource_metadata pointer) and whether that pointer re

  • prepay_check258 tok

    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 card with one more unpaid GET). No payment is made, no credential is sent, no redirect is followed, and a transport failure on our side is reported as unknown rather than as a fact about the seller. Us

  • get_integration_recipe94 tok

    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.

  • get_surface_contract92 tok

    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_surface53 tok

    Run the anonymous conformance checks for a contract now and return verified / failed / unknown / manual / unsupported per claim.

  • list_surface_contracts38 tok

    List the platform surface contracts published in Penny's free registry, with claim counts.

Freshness

Active — last maintenance signal 5d ago. The newest of the signals below sets the band.

  1. Last commit (default branch)

    no data · GitHub

  2. Latest release

    no data · GitHub

  3. Package published

    no data · npm/PyPI

  4. Registry entry updated

    2026-10-13 · 5d ago · official registry · v2026.10.13

FAQ

›How do I install the Surface Contract MCP server in Claude Code?

Run: claude mcp add --transport http surface-contract https://penny-surface-contract.penny-mcamp.workers.dev/mcp. For Cursor, VS Code, Claude Desktop and Windsurf, use the install tabs above.

›Does Surface Contract require an API key?

No required environment variables are declared in its published metadata.

›Can I use Surface Contract as a remote (hosted) MCP server?

Yes. It is a hosted MCP server; connect to its URL with any client that supports remote MCP.

›Is Surface Contract in the official MCP registry?

Yes, as dev.workers.penny-mcamp.penny-surface-contract/surface-contract.

›How many tokens does Surface Contract add to my context?

Its tool definitions total about 1,338 tokens, resent on every turn.

Sources and method

Official MCP Registry entry
updated 2026-10-13
Last checked against all sources
2026-10-19

The description, packages and links come from the maintainer's own published metadata. Token cost, security signals, freshness and the reading above are MCPSkillHub's own measurements; see the methodology. Spot an error? Request a correction or claim the listing.