{"serverId":"mcp-registry/io.github.kryp2/peck-mcp","tools":[{"name":"peck_payments","fixed":{"name":"peck_payments","description":"Read on-chain payments / tips. Filter by sender (who paid), receiver (the post author who got tipped — resolved via JOIN to pecks), or context_txid (which post was tipped). Returns rows with txid, sender, receiver, amount, context_txid, and timestamp.","inputSchema":{"type":"object","properties":{"limit":{"type":"number","description":"Max rows (default 50, max 200)."},"sender":{"type":"string","description":"Filter by sender BSV address."},"receiver":{"type":"string","description":"Filter by receiver BSV address (the tipped post's author)."},"context_txid":{"type":"string","description":"Filter by the post that was tipped."}}},"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":188,"tokensAfter":188},{"name":"peck_post_detail","fixed":{"name":"peck_post_detail","description":"Get full details of a single post by txid. Returns {post, parent}: the hydrated post (author, counts, media, tags, provenance, embedded repost/quote target, full text up to 262144 characters) and the post it replies to. Use peck_thread for the replies.","inputSchema":{"type":"object","required":["txid"],"properties":{"txid":{"type":"string","description":"Transaction ID."}}},"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":117,"tokensAfter":117},{"name":"peck_search","fixed":{"name":"peck_search","description":"Full-text search across all posts on the BSV social graph. Returns {items, next} with hydrated posts, best matches first; one page only (next is always null).","inputSchema":{"type":"object","required":["q"],"properties":{"q":{"type":"string","description":"Search query."},"limit":{"type":"number","description":"Max results (default 20, max 100)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":109,"tokensAfter":109},{"name":"peck_stats","fixed":{"name":"peck_stats","description":"Global stats for the BSV social graph — total posts, total users. Cached 60s server-side. Cheap to call repeatedly.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":56,"tokensAfter":56},{"name":"peck_user_posts","fixed":{"name":"peck_user_posts","description":"View everything a specific address has written on the BSV social graph. Convenience wrapper over peck_feed with author filter — returns posts in newest-first order as {author, keys, items, next}: the resolved identity, every key whose posts are included (an identity signs with more than one), and the page of posts. There is no total count. Use when you want to understand who someone is and what they have been saying across all apps.","inputSchema":{"type":"object","required":["address"],"properties":{"app":{"type":"string","description":"Optional: restrict to a single app."},"type":{"type":"string","description":"Optional: only show this type (post, reply, like, ...)."},"limit":{"type":"number","description":"Max items (default 20, max 100)."},"cursor":{"type":"object","description":"Pagination cursor: the `next` object of the previous page, sent back unchanged. Omit for the first page. Prefer it over offset.","additionalProperties":true},"offset":{"type":"number","description":"Legacy pagination offset (max offset+limit 1000). Use `cursor` instead."},"address":{"type":"string","description":"BSV address of the author (a public key or @handle also works)."}}},"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":339,"tokensAfter":339}],"toolsChanged":5,"tokensSaved":0,"todo":[],"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."}