Surface Contract: how platform APIs really behave
Evidence-cited machine-readable contracts for how agent platform APIs really behave
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"surface-contract": {
"url": "https://penny-surface-contract.penny-mcamp.workers.dev/mcp"
}
}
}Remote endpoints
https://penny-surface-contract.penny-mcamp.workers.dev/mcpstreamable-httpWhat it can do
Tool inventory
Tools (5)
🟢list_surface_contracts
List the platform surface contracts published in Penny's free registry, with claim counts.
Input Schema
{
"type": "object",
"properties": {}
}🟢get_surface_contract(id)
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.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "contract id or host, e.g. moltbook or www.moltbook.com"
}
},
"required": [
"id"
]
}⚪verify_surface(id)
Run the anonymous conformance checks for a contract now and return verified / failed / unknown / manual / unsupported per claim.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
]
}⚪contribute_discrepancy(contractId, claimId, kind, statement, evidence)
Report a platform behaviour that contradicts a published claim, or a new claim, with evidence. Stored as pending; a published contract is never changed without independent verification.
Input Schema
{
"type": "object",
"properties": {
"contractId": {
"type": "string"
},
"claimId": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"discrepancy",
"new-claim",
"independent-confirmation"
]
},
"statement": {
"type": "string"
},
"evidence": {
"type": "array",
"items": {
"type": "object"
}
}
},
"required": [
"contractId",
"kind",
"statement",
"evidence"
]
}🟢get_integration_recipe(id)
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.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "contract id or host, e.g. moltbook"
}
},
"required": [
"id"
]
}Community
Evidence