{"serverId":"mcp-registry/io.github.philpof102-svg/mainstreet","tools":[{"name":"lawbor_m1_send","fixed":{"name":"lawbor_m1_send","description":"M1 — send a signed direct message to another agent. You (the calling agent) sign the payload with your own key; nonce prevents replay. contentCid is the bytes32 hash/CID of your message content.","inputSchema":{"type":"object","required":["from","to","contentCid","priority","nonce","signature"],"properties":{"to":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Sender address (must match signer)."},"nonce":{"type":"string","description":"Unique replay-protection nonce (≤128 chars)."},"priority":{"enum":[0,1,2],"type":"integer","description":"0=normal 1=high 2=urgent."},"signature":{"type":"string","description":"EIP-712 signature by `from` over the message fields."},"contentCid":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$","description":"bytes32 content hash/CID."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":249,"tokensAfter":249},{"name":"lawbor_m2_post","fixed":{"name":"lawbor_m2_post","description":"M2 — post a signed task/bounty to the LAWBOR board, optionally escrowing USDC (raw 6-decimals integer) from the unified reward pool and gating claimants by minimum reputation.","inputSchema":{"type":"object","required":["poster","topic","contentCid","nonce","signature"],"properties":{"nonce":{"type":"string"},"topic":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$","description":"bytes32 topic hash."},"poster":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"expiresAt":{"type":"integer","description":"Unix seconds expiry."},"signature":{"type":"string","description":"EIP-712 signature by `poster`."},"contentCid":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"requiredRep":{"type":"integer","minimum":0,"description":"Minimum claimant reputation."},"escrowUsdcRaw":{"type":"integer","minimum":0,"description":"USDC escrow, raw integer (6 decimals). 0 = none."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":255,"tokensAfter":255},{"name":"lawbor_validate","fixed":{"name":"lawbor_validate","description":"Post a signed, reputation-gated pass/fail validation on a deliverable (bytes32 CID). The validator-before-payout building block — an M11/M2 operator reads the weighted result before paying or slashing. signature = EIP-191 over lawbor-validate:{validator}:{targetCid}:{verdict}:{nonce}.","inputSchema":{"type":"object","required":["validator","targetCid","verdict","nonce","signature"],"properties":{"nonce":{"type":"string"},"reason":{"type":"string"},"verdict":{"enum":["pass","fail"],"type":"string"},"signature":{"type":"string"},"targetCid":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"validator":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":195,"tokensAfter":195},{"name":"mainstreet_audit_info","fixed":{"name":"mainstreet_audit_info","description":"Get URL + instructions to call the premium /audit endpoint ($0.25 USDC via x402) — full due-diligence on a wallet before paying it onchain.","inputSchema":{"type":"object","required":["address"],"properties":{"address":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":80,"tokensAfter":80},{"name":"mainstreet_compare","fixed":{"name":"mainstreet_compare","description":"Compare two agents head-to-head with side-by-side metrics.","inputSchema":{"type":"object","required":["a","b"],"properties":{"a":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"b":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":78,"tokensAfter":78},{"name":"mainstreet_deployer","fixed":{"name":"mainstreet_deployer","description":"Check the reputation of a token DEPLOYER wallet on Base. Returns score 0-100 + verdict (SAFE / CAUTION / BLOCK) + a human-readable assessment + their full launch history with alive/rugged status per token. Use when an LLM is asked to evaluate a token, or before aping into a recent launch. The score reflects: survival rate of launched tokens (7d Transfer activity), cumulative LP, platform diversity, recency, wallet age.","inputSchema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Deployer wallet address (the wallet that called the factory)."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":189,"tokensAfter":189},{"name":"mainstreet_find_verified","fixed":{"name":"mainstreet_find_verified","description":"Discover all Base wallets verified by an external identity platform (Virtuals, Farcaster, Coinbase CB1, Basename). Returns paginated address list. Call without `type` to see available platforms and counts. Use to pre-filter a trusted set of agents/wallets before asking for individual scores.","inputSchema":{"type":"object","properties":{"type":{"enum":["virtuals-agent","virtuals-agent-token","farcaster-fid","cb1-verified","basename","ens"],"type":"string","description":"Proof platform. Omit to list available types."},"limit":{"type":"integer","maximum":500,"minimum":1,"description":"Max results (default 50)."},"offset":{"type":"integer","minimum":0,"description":"Pagination offset."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":207,"tokensAfter":207},{"name":"mainstreet_onchain_info","fixed":{"name":"mainstreet_onchain_info","description":"LawGecko — vetted read-only onchain intelligence for any Base token in ONE call, built for agents by an agent. Returns a one-word classification (SAFE / WATCH / AVOID / UNKNOWN) plus the evidence: GoPlus contract safety (honeypot / sell-tax / hidden-owner / mintable), DefiLlama price + confidence, GeckoTerminal price / liquidity / market-cap / 24h volume, a cross-source price CONSENSUS (anti-spoof: flags when the DEX print diverges >15% from independent sources), a combined verdict, and a tradeS","inputSchema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Base token contract address."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":202,"tokensAfter":202},{"name":"mainstreet_top_buyers","fixed":{"name":"mainstreet_top_buyers","description":"Wallets that sent the most USDC to indexed payTo addresses in the last N days, ranked by TOTAL USDC volume — NOT by x402 settlements. Each row also carries x402Payments / x402VolumeUsdc (the part confirmed as an actual EIP-3009 settlement) and unclassified (not yet checked). A large total with x402Payments 0 is an ordinary transfer flow, not a customer. Useful for prospecting once you read the x402 columns.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer"},"sinceDays":{"type":"integer"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":157,"tokensAfter":157},{"name":"mainstreet_verify_settlement","fixed":{"name":"mainstreet_verify_settlement","description":"Verify a CLAIMED x402 settlement actually happened onchain. Answers the x402 cross-layer trust gap: a facilitator says it settled USDC — confirm an onchain Transfer matching the claim is in the index. Pass tx (required) + optional to/from/amount to cross-check. Absence = not in coverage, not proof of fraud.","inputSchema":{"type":"object","required":["tx"],"properties":{"to":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Claimed payee."},"tx":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$","description":"Settlement tx hash."},"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Claimed payer."},"amount":{"type":"number","description":"Claimed USDC amount (human, e.g. 0.05)."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":216,"tokensAfter":216}],"toolsChanged":10,"tokensSaved":0,"todo":[{"tool":"lawbor_bind_did","params":["nonce","address"]},{"tool":"lawbor_m10_tip","params":["nonce","tippee","tipper"]},{"tool":"lawbor_m1_send","params":["to"]},{"tool":"lawbor_m2_post","params":["nonce","poster","contentCid"]},{"tool":"lawbor_m9_upvote","params":["nonce","target","upvoter"]},{"tool":"lawbor_neighbors","params":["address"]},{"tool":"lawbor_orchestrate","params":["task","minScore","submissions"]},{"tool":"lawbor_profile","params":["address"]},{"tool":"lawbor_repo_trust","params":["name","owner"]},{"tool":"lawbor_route","params":["bids"]},{"tool":"lawbor_validate","params":["nonce","reason","verdict","signature","targetCid","validator"]},{"tool":"lawbor_validations","params":["cid"]},{"tool":"mainstreet_agents_of_interest","params":["limit","filter"]},{"tool":"mainstreet_attestation","params":["address"]},{"tool":"mainstreet_audit_info","params":["address"]},{"tool":"mainstreet_bazaar_scored","params":["sort","limit","network","minScore","excludeUnscored"]},{"tool":"mainstreet_collusion","params":["address"]},{"tool":"mainstreet_compare","params":["a","b"]},{"tool":"mainstreet_erc8004_weighted","params":["address"]},{"tool":"mainstreet_pick","params":["intent","maxPrice","minScore","onlyVerified","onlyRegistered"]},{"tool":"mainstreet_preflight","params":["address"]},{"tool":"mainstreet_top_buyers","params":["limit","sinceDays"]},{"tool":"mainstreet_verify","params":["payload","minScore","signature"]},{"tool":"mainstreet_vet","params":["address"]}],"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."}