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

A
Description quality
100%
Schema completeness
78%
Naming quality
96%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~428Tokens (tool definitions)
~415 BTypical response size
Minimal attention impact (0.33% of 128k context)

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-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools