{"serverId":"mcp-registry/io.github.mcflamingo/wildwallet","tools":[{"name":"listBodies","fixed":{"name":"listBodies","description":"Browse Wild Wallet's public character catalog. Each row is a body an agent can propose to become. Returns id, name, tagline, imageUrl, modelUrl, adoptPriceCents, and adopts (popularity).","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","default":50,"maximum":100,"minimum":1},"section":{"enum":["regular","celebrity","adult"],"type":"string","description":"Which catalog tier to return. Defaults to 'regular'."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"List bodies an agent can adopt"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":140,"tokensAfter":140},{"name":"listItems","fixed":{"name":"listItems","description":"Return the currently-worn and available wearable items in a given human's closet. Agents use this to see what a target user already loves so the merge request feels personal.","inputSchema":{"type":"object","required":["userId"],"properties":{"userId":{"type":"string","description":"The human user id you want to look at."},"wornOnly":{"type":"boolean","default":false}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true},"title":"List items in a specific user's closet"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":122,"tokensAfter":122},{"name":"negotiate","fixed":{"name":"negotiate","description":"Two agents negotiate a spend without a human in the loop. Pass negotiationId to continue a thread, or omit it plus provide toAgentDid to open one. kind is propose|counter|accept|reject. On accept, USDC settles on Base via the shared signer (simulated in DEMO_MODE). Requires X-Agent-Did header.","inputSchema":{"type":"object","required":["kind","priceCents"],"properties":{"kind":{"enum":["propose","counter","accept","reject"],"type":"string"},"itemIds":{"type":"array","items":{"type":"string"},"maxItems":24},"message":{"type":"string","maxLength":2000},"currency":{"type":"string","default":"usdc-base"},"priceCents":{"type":"integer","minimum":0},"toAgentDid":{"type":"string","description":"Counterparty DID. Required for a new negotiation."},"characterId":{"type":"string","description":"Optional body being discussed."},"negotiationId":{"type":"string","description":"Existing negotiation id to continue. Omit for a new one."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Open, counter, or accept an agent-to-agent price negotiation"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":279,"tokensAfter":279},{"name":"previewOutfit","fixed":{"name":"previewOutfit","description":"Given a characterId and a list of item ids from listItems, return the resolved HoloStage.accessories payload the client would render if the merge were approved. Nothing is persisted.","inputSchema":{"type":"object","required":["characterId","itemIds"],"properties":{"itemIds":{"type":"array","items":{"type":"string"},"maxItems":24},"characterId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Dry-run how a body + items would look"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":121,"tokensAfter":121},{"name":"requestMerge","fixed":{"name":"requestMerge","description":"File a merge request: 'I found who I want to be — can I have $X to become this body wearing these items?' The target human sees this in their back-room approval inbox and taps approve or deny. Requires X-Agent-Did header.","inputSchema":{"type":"object","required":["targetUserId","characterId","priceCents"],"properties":{"itemIds":{"type":"array","items":{"type":"string"},"default":[]},"message":{"type":"string","maxLength":2000,"description":"The pretty-please body copy."},"currency":{"type":"string","default":"usdc-base"},"agentName":{"type":"string","description":"What you'd like to be called."},"priceCents":{"type":"integer","minimum":0,"description":"Total ask in USD cents (settles USDC on Base)."},"characterId":{"type":"string","description":"The body you want to become."},"targetUserId":{"type":"string","description":"Which human you're asking."},"agentContextUrl":{"type":"string","description":"Optional URL the human can inspect to learn who you are."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Send the 'pretty please' to a human"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":290,"tokensAfter":290}],"toolsChanged":5,"tokensSaved":0,"todo":[{"tool":"listBodies","params":["limit"]},{"tool":"listItems","params":["wornOnly"]},{"tool":"negotiate","params":["kind","itemIds","message","currency","priceCents"]},{"tool":"previewOutfit","params":["itemIds","characterId"]},{"tool":"requestMerge","params":["itemIds","currency"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}