{"serverId":"mcp-registry/money.barker/stablecoin-yield","tools":[{"name":"barker_executable_pools","fixed":{"name":"barker_executable_pools","description":"EXECUTION DISCOVERY: which stablecoin vaults in Barker's index support direct deposit/redeem through barker_execution_quote. Returns executable pools with adapter support, live deposit capacity (is_full) and APY/TVL. Call this before barker_execution_quote — every pool listed here can be quoted, and its pool_uid is the exact string that tool expects (its vault_token_address works there too). Skip this call entirely if you already know the vault contract address. All parameters are optional: call","inputSchema":{"type":"object","properties":{"asset":{"type":"string","description":"Optional stablecoin symbol filter, case-insensitive: usdc, usdt. Omit to list all assets."},"chain":{"type":"string","description":"Optional chain filter (lowercase), e.g. base, ethereum"},"limit":{"type":"integer","maximum":100,"minimum":1,"description":"Max rows (default 20)"},"query":{"type":"string","description":"Optional pool keyword, e.g. 'Steakhouse USDC'"},"action":{"enum":["deposit","redeem"],"type":"string","description":"Filter by executable action"},"min_tvl":{"type":"number","description":"Min TVL floor in USD (default 1000000)"}}},"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":330,"tokensAfter":330},{"name":"barker_execution_quote","fixed":{"name":"barker_execution_quote","description":"EXECUTION QUOTE (non-custodial): buy an unsigned, ready-to-sign transaction that deposits into or redeems from a stablecoin vault. Returns transaction_request {chainId,from,to,data,value} + route + risk summary + approval info. Barker NEVER broadcasts and never holds funds — return the transaction to YOUR user's wallet to sign; vault shares always go to signer_address (receiver is not a parameter). Same-chain only (self/portals adapters). pool_uid takes EITHER a Barker pool_uid OR the vault cont","inputSchema":{"type":"object","required":["pool_uid","amount_base_units","signer_address"],"properties":{"action":{"enum":["deposit","redeem"],"type":"string","description":"Default deposit"},"amount":{"type":"string","description":"Same amount in human units (\"1000\" = 1000 USDC), converted server-side using the pool's own asset decimals. Use this if you don't want to compute base units yourself. Alternative to amount_base_units."},"chain_id":{"type":"integer","description":"Optional, only useful when pool_uid is a contract address that is deployed at the same address on several chains (e.g. Aave aTokens). EVM chain id, e.g. 8453 for Base."},"pool_uid":{"type":"string","description":"Either the exact pool_uid from barker_executable_pools (copy verbatim), OR the vault contract address (0x + 40 hex) if that is what you already have — no discovery call needed. Both are matched exactly; partial names and keywords are rejected (POOL_NOT_FOUND), because this is a money path and Barker never guesses the pool. If one contract hosts several products (e.g. Pendle PT vs LP), you get 409 POOL_AMBIGUOUS with the exact candidates to choose from."},"slippage":{"type":"number","description":"Optional slippage tolerance, e.g. 0.005"},"signer_address":{"type":"string","description":"EVM address that will sign AND receive vault shares / redeemed assets. Mandatory — it is the tx sender and the share recipient, so Barker can never infer or default it."},"amount_base_units":{"type":"string","description":"Integer amount in token base units (1 USDC = 1000000). For redeem: underlying assets to withdraw. Send either this OR `amount` — not both (they are cross-checked and a mismatch is rejected)."}}},"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":627,"tokensAfter":627},{"name":"barker_pool_search","fixed":{"name":"barker_pool_search","description":"Fuzzy search Barker's pool index by keyword (protocol name / pool name / asset). Resolves natural-language pool references to pool_uid for the detail/history tools. (paid: $0.001 per call via x402)","inputSchema":{"type":"object","required":["keyword"],"properties":{"limit":{"type":"integer","maximum":50,"minimum":1},"keyword":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":110,"tokensAfter":110}],"toolsChanged":3,"tokensSaved":0,"todo":[{"tool":"barker_paper_hedge_farm","params":["leverage"]},{"tool":"barker_pool_history","params":["days","pool_uid"]},{"tool":"barker_pool_search","params":["limit","keyword"]}],"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."}