{"serverId":"mcp-registry/io.github.liquihog/hogswap-mcp","tools":[{"name":"delete_watch","fixed":{"name":"delete_watch","description":"Delete one of your watches by its client_key.","inputSchema":{"type":"object","title":"delete_watchArguments","required":["client_key"],"properties":{"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key","default":null},"client_key":{"type":"string","title":"Client Key"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":92,"tokensAfter":92},{"name":"get_balance","fixed":{"name":"get_balance","description":"Current HOGSWAP credit balance for your API key.","inputSchema":{"type":"object","title":"get_balanceArguments","properties":{"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key","default":null}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":71,"tokensAfter":71},{"name":"get_credit_offer","fixed":{"name":"get_credit_offer","description":"Create a credit top-up and get the x402 offer (HTTP 402 IS the payment instruction, not an error). Feed accepts[0] straight into pay_x402_invoice (keep the note nonce) to pay with any asset. Credits land ~1 block after payment.","inputSchema":{"type":"object","title":"get_credit_offerArguments","required":["usdc_micro"],"properties":{"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key","default":null},"usdc_micro":{"type":"integer","title":"Usdc Micro"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":145,"tokensAfter":145},{"name":"get_quote","fixed":{"name":"get_quote","description":"HOGSWAP swap quote across every Algorand DEX. Give amount (exact input) OR amount_out (exact output — minimum input is solved). Base units (µ); asset 0 = ALGO. Returns expected_out, route legs, and a quote_id for build_swap. expected_out is NET of the 5 bps routing fee; passing sender also returns router_fee_* fields and the wallet's HOG discount (hog_discount_pct, 100 = fully waived at 100 HOG). Optional sender enables HOG-holding fee discounts. Optional max_legs (1-16) caps TOTAL route legs, s","inputSchema":{"type":"object","title":"get_quoteArguments","required":["asset_in","asset_out"],"properties":{"amount":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount","default":null},"sender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender","default":null},"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key","default":null},"asset_in":{"type":"integer","title":"Asset In"},"max_legs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Legs","default":null},"asset_out":{"type":"integer","title":"Asset Out"},"amount_out":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount Out","default":null}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":334,"tokensAfter":334},{"name":"list_payable_assets","fixed":{"name":"list_payable_assets","description":"Assets accepted as payment inputs for pay_x402_invoice and credit top-ups (price-confidence gated; ALGO and USDC always included).","inputSchema":{"type":"object","title":"list_payable_assetsArguments","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":74,"tokensAfter":74},{"name":"list_watches","fixed":{"name":"list_watches","description":"List your key's active watches (spec + arming/fired state), quota, and latest event seq. Poll this from MCP to see fires; SSE at GET /watches/stream is the push alternative outside MCP.","inputSchema":{"type":"object","title":"list_watchesArguments","properties":{"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key","default":null}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":110,"tokensAfter":110},{"name":"pay_x402_invoice","fixed":{"name":"pay_x402_invoice","description":"Pay ANY Algorand-settled x402 invoice with any 1-4 routable assets you hold, even holding none of the demanded asset. Pass the `accepts` entry you picked as `invoice` (keep its note!) plus your inputs (single input with no amount = minimum solved). Returns UNSIGNED groups — sign all in one pass, submit IN ORDER (swap first; its on-chain floor guarantees the payment is funded; holding the asset already = one direct payment). HOGSWAP credit top-up offers feed this verbatim. EVM invoices unsupporte","inputSchema":{"type":"object","title":"pay_x402_invoiceArguments","required":["invoice","user_address","inputs"],"properties":{"inputs":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Inputs"},"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key","default":null},"invoice":{"type":"object","title":"Invoice","additionalProperties":true},"user_address":{"type":"string","title":"User Address"}}},"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":275,"tokensAfter":275},{"name":"set_watch","fixed":{"name":"set_watch","description":"Register a standing server-side watch (FREE, needs a key; idempotent upsert by client_key — re-registering replaces the watch and resets arming). kind='price': advisory µUSD threshold (asset_id, op gte/lte, threshold_usd_micro). kind='target': size-aware surrogate — would swapping amount_in of asset_in→asset_out deliver ≥ min_out? (margin_bps haircut, default 30; NO quote is run). Edge-triggered one-shot; re-arms after rearm_bps retreat + cooldown_s; ttl_s auto-expiry (default 86400) — refresh b","inputSchema":{"type":"object","title":"set_watchArguments","required":["client_key","kind"],"properties":{"op":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Op","default":null},"kind":{"type":"string","title":"Kind"},"ttl_s":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ttl S","default":null},"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key","default":null},"min_out":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Out","default":null},"asset_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Asset Id","default":null},"asset_in":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Asset In","default":null},"amount_in":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount In","default":null},"asset_out":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Asset Out","default":null},"rearm_bps":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rearm Bps","default":null},"client_key":{"type":"string","title":"Client Key"},"cooldown_s":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cooldown S","default":null},"margin_bps":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Margin Bps","default":null},"threshold_usd_micro":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Threshold Usd Micro","default":null}}},"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":515,"tokensAfter":515}],"toolsChanged":8,"tokensSaved":0,"todo":[{"tool":"build_swap","params":["api_key","quote_id","user_address"]},{"tool":"delete_watch","params":["api_key","client_key"]},{"tool":"get_balance","params":["api_key"]},{"tool":"get_credit_offer","params":["api_key","usdc_micro"]},{"tool":"get_quote","params":["amount","sender","api_key","asset_in","max_legs","asset_out","amount_out"]},{"tool":"list_watches","params":["api_key"]},{"tool":"pay_x402_invoice","params":["inputs","api_key","invoice","user_address"]},{"tool":"register_agent","params":["address"]},{"tool":"set_watch","params":["op","kind","ttl_s","api_key","min_out","asset_id","asset_in","amount_in","asset_out","rearm_bps","client_key","cooldown_s","margin_bps","threshold_usd_micro"]},{"tool":"value_lp_token","params":["amount","asset_id"]},{"tool":"verify_registration","params":["address","challenge","signature_b64"]}],"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."}