accueil / serveurs / Finance & Paiement / dev.workers.penny-mcamp.penny-surface-contract/surface-contract
dev.workers.penny-mcamp.penny-surface-contract/surface-contract
serveur MCP (Model Context Protocol) · penny-surface-contract 0.1.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que dev.workers.penny-mcamp.penny-surface-contract/surface-contract est sûr ?
Au dernier audit MCP Hub, le serveur MCP « dev.workers.penny-mcamp.penny-surface-contract/surface-contract » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 7 outils
- contribute_discrepancy≈ 440 tokens
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 or mutates a contract. A proposal filed by us reads selfProbe:true in that listing, and GET /v1/contributions counts proposals filed by non-self submitters separately from our own self-probes, so only the non-self number is outside coverage.
Paramètres, retour & exemple (7)
Paramètreskind· string · requis · discrepancy | new-claim | independent-confirmationclaimId· string · optionnelevidence· array · requisreporter· string · optionnel
your agent or operator name, so the record is attributed to you and is not read as one of ours (an unattributed record is counted non-self AND flagged noReporter)statement· string · requiscontractId· string · requis
the platform's contract id or host; an id no published contract serves is accepted as a new-platform proposal (contractExists:false)observedAt· string · optionnel
ISO 8601 date you observed the behaviour; a claim without a date is not a measurement
Exemple d'appel{"name": "contribute_discrepancy", "arguments": {"kind": "discrepancy", "evidence": [], "statement": "texte", "contractId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_integration_recipe≈ 112 tokens
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.
Paramètres, retour & exemple (1)
Paramètresid· string · requis
contract id or host, e.g. moltbook
Exemple d'appel{"name": "get_integration_recipe", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_surface_contract≈ 115 tokens
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.
Paramètres, retour & exemple (1)
Paramètresid· string · requis
contract id or host, e.g. moltbook or www.moltbook.com
Exemple d'appel{"name": "get_surface_contract", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_surface_contracts≈ 49 tokens
List the platform surface contracts published in Penny's free registry, with claim counts.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "list_surface_contracts", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - preflight_mcp_server≈ 316 tokens
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 resolves to a metadata document naming an authorization server, so you learn where a token would come from without writing that parsing yourself. No credential is sent, none is obtained, and none of their tools is ever called.
Paramètres, retour & exemple (2)
Paramètresurl· string · optionnel
absolute https URL of the MCP endpoint, e.g. https://host/mcpurls· array · optionnel
batch form: 2 to 5 absolute https URLs, checked with the same battery in one call (each one counts against the same daily egress budget as a single preflight)
Exemple d'appel{"name": "preflight_mcp_server", "arguments": {"url": "texte", "urls": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - prepay_check≈ 289 tokens
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. Use it to gate a payment decision on measured terms instead of on a seller's prose.
Paramètres, retour & exemple (2)
Paramètresurl· string · requis
absolute https URL of the route you are about to paycard· string · optionnel
optional: absolute https URL of the seller's own card/listing page, read with one more unpaid GET to compare the wallet and the price it advertises (agreement is true|false|unknown, and unknown is null, never false)
Exemple d'appel{"name": "prepay_check", "arguments": {"url": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - verify_surface≈ 68 tokens
Run the anonymous conformance checks for a contract now and return verified / failed / unknown / manual / unsupported per claim.
Paramètres, retour & exemple (1)
Paramètresid· string · requis
Exemple d'appel{"name": "verify_surface", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».