{"apiVersion":"v1","directorySlug":"xoxno-mcp-5fd677de54","title":"Stellar Lending & DeFi Protocol: Earn, Borrow | XOXNO","description":"XOXNO is the money market on Stellar: lend and borrow XLM, USDC and stablecoins, earn DeFi yield, and multiply, all non-custodial and on-chain.","pageUrl":"https://www.mcpbundles.com/skills/xoxno-mcp-5fd677de54","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.xoxno.com/mcp","hostedMcpUrl":null,"toolCount":29,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.xoxno/xoxno-mcp-5fd677de54","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"get_markets","description":"List XOXNO Lending markets on Stellar: each asset in each hub with live supply and borrow APY (percent), USD price, and the risk profiles (spokes) it is listed on, with LTV, permissions and remaining cap headroom in whole tokens. Use marketId, hubId and asset from this output in prepare_action; never invent them.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"hubId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"symbol":{"type":"string"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"title":"List lending markets","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_markets","displayName":"List lending markets"},{"name":"get_positions","description":"Every XOXNO Lending account owned by a Stellar address: health factor (liquidatable below 1), borrow limit and headroom in USD, net APY, and each supplied and borrowed asset in whole tokens with its APY and USD value.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["owner"],"properties":{"owner":{"type":"string"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"title":"Get a wallet’s lending positions","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_positions","displayName":"Get a wallet’s lending positions"},{"name":"get_wallet_balances","description":"Soroban token balances of a Stellar wallet, in whole tokens and base units, with USD value. Use before supplying or repaying.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["owner"],"properties":{"owner":{"type":"string"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"title":"Get wallet token balances","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_wallet_balances","displayName":"Get wallet token balances"},{"name":"prepare_action","description":"Build and simulate an unsigned Soroban transaction for supply, borrow, repay or withdraw, and check that its authorizations cover only this call. Returns base64 XDR for the user to sign in their own wallet; this server never signs. Take hubId and asset from get_markets (or get_positions), accountId from get_positions, and spokeId from the market’s spokes. Supply with accountId \"0\" opens a new account on spokeId.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["action","sender","hubId","asset","amount"],"properties":{"to":{"type":"string"},"asset":{"type":"string"},"hubId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"action":{"enum":["supply","borrow","repay","withdraw"],"type":"string"},"amount":{"anyOf":[{"type":"string","pattern":"^(?:\\d+)(?:\\.\\d+)?$"},{"type":"string","const":"max"}]},"sender":{"type":"string"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"spokeId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"accountId":{"type":"string","default":"0","pattern":"^\\d{1,20}$"}}},"title":"Prepare a lending transaction","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"prepare_action","displayName":"Prepare a lending transaction"},{"name":"submit_signed_transaction","description":"Relay a transaction the user already signed in their wallet to the Stellar network. Only submit XDR the user signed for this action. Returns the hash and send status.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["signedXdr"],"properties":{"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"signedXdr":{"type":"string","minLength":1}}},"title":"Submit a signed transaction","logicalName":"submit_signed_transaction","displayName":"Submit a signed transaction","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_transaction_status","description":"Status of a submitted Stellar transaction: SUCCESS (with the decoded return value), FAILED (with the decoded XOXNO error), or NOT_FOUND (still pending or unknown). On SUCCESS, indexed says whether the XOXNO API (get_positions and the analytics tools) already includes it: true, false or unknown.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["hash"],"properties":{"hash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"title":"Get transaction status","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_transaction_status","displayName":"Get transaction status"},{"name":"get_hubs","description":"Liquidity hubs: where supplied tokens sit and interest accrues. Without hubId, every hub with USD deposits, borrows and utilization. With hubId, that hub’s markets: APYs, utilization, supplied, borrowed and available liquidity per asset.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"hubId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"title":"List liquidity hubs","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_hubs","displayName":"List liquidity hubs"},{"name":"get_spokes","description":"Spokes are risk profiles: they set which markets an account may use and their LTV, liquidation threshold, liquidation bonus, caps and halt flags. Without spokeId, every spoke with its hubs and USD totals. With spokeId, the liquidation curve, credit use per hub and every market’s risk settings.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"spokeId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}}},"title":"List spokes (risk profiles)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_spokes","displayName":"List spokes (risk profiles)"},{"name":"get_reserve_details","description":"Everything about one reserve (an asset in a hub, as listed on a spoke): APYs, utilization, spoke and hub balances, caps, LTV, liquidation threshold, bonus and fee, halt flags, flash-loan fee, and the interest-rate curve with sample points. Take spokeId, hubId and asset from get_markets.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["spokeId","hubId","asset"],"properties":{"asset":{"type":"string"},"hubId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"spokeId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}}},"title":"Reserve details","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_reserve_details","displayName":"Reserve details"},{"name":"get_apy_history","description":"Supply APY, borrow APY and utilization over time for one asset, per hub. APY is set per market (hub + asset) and is the same on every spoke. Use for \"how has the USDC rate moved\". Take asset (C…) and hubId from get_markets. Values are percent; at most 60 points per hub.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["asset"],"properties":{"asset":{"type":"string"},"hubId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"window":{"enum":["1d","7d","30d","90d","1y"],"type":"string","default":"30d"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"title":"Supply and borrow APY history","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_apy_history","displayName":"Supply and borrow APY history"},{"name":"get_market_history","description":"USD deposits, borrows, available liquidity and utilization over time for a hub, a spoke, an asset (all hubs) or a reserve. scope \"reserve\" (spokeId + hubId + asset) reports the hub-wide market of that asset, which every spoke shares; scope \"spoke\" reports what was supplied and borrowed through that spoke, with blended APYs. Ids come from get_markets, get_hubs or get_spokes.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["scope"],"properties":{"asset":{"type":"string"},"hubId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"scope":{"enum":["hub","spoke","asset","reserve"],"type":"string"},"window":{"enum":["1d","7d","30d","90d","1y"],"type":"string","default":"30d"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"spokeId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}}},"title":"Deposits, borrows and liquidity history","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_market_history","displayName":"Deposits, borrows and liquidity history"},{"name":"get_protocol_stats","description":"Protocol-wide XOXNO Lending statistics: totals, history, revenue, fees, volume, users and rate spreads. metric: \"overview\" (current totals per hub, supplier and borrower counts, position-size concentration), \"history\" (total supplied, borrowed and cumulative revenue over time), \"revenue\" (interest revenue per bin), \"fees\" (flash-loan and strategy fees), \"volume\" (supply, borrow, withdraw and repay volume), \"users\" (active and new accounts), \"rate_spread\" (borrow minus supply APY per market). hub","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"asset":{"type":"string"},"hubId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"limit":{"type":"integer","default":20,"maximum":100,"minimum":1},"metric":{"enum":["overview","history","revenue","fees","volume","users","rate_spread"],"type":"string","default":"overview"},"window":{"enum":["1d","7d","30d","90d","1y"],"type":"string","default":"30d"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"title":"Protocol statistics","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_protocol_stats","displayName":"Protocol statistics"},{"name":"get_user_activity","description":"A wallet’s XOXNO Lending actions (supply, borrow, repay, withdraw, strategies, liquidations), most recent first. Paginated: pass nextCursor from the previous page as cursor. Amounts are whole tokens; usd is valued at the time of the action.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["owner"],"properties":{"limit":{"type":"integer","default":20,"maximum":100,"minimum":1},"owner":{"type":"string"},"cursor":{"type":"string","maxLength":2048,"minLength":1},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"title":"Wallet transaction history","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_user_activity","displayName":"Wallet transaction history"},{"name":"get_user_history","description":"One lending account’s supplied and borrowed USD, net value and an estimated health factor over time. Takes an accountId from get_positions (not a wallet address); call it once per account.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["accountId"],"properties":{"window":{"enum":["1d","7d","30d","90d","1y"],"type":"string","default":"30d"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"accountId":{"type":"string","pattern":"^\\d{1,20}$"}}},"title":"Account balance history","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_user_history","displayName":"Account balance history"},{"name":"get_positions_pnl","description":"Interest PnL per position: interest earned on supplies minus interest paid on debt, in USD and token units. Price changes are not included. Pass accountId (from get_positions) for one account, or owner for every account of a wallet.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"owner":{"type":"string"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"accountId":{"type":"string","pattern":"^\\d{1,20}$"}}},"title":"Interest profit and loss","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_positions_pnl","displayName":"Interest profit and loss"},{"name":"get_top_holders","description":"Biggest supply or borrow positions in a reserve (spokeId + hubId + asset), a hub or a spoke, with each holder’s share, plus the USD size distribution (holder count, median, top-1 and top-10 share). Ids come from get_markets, get_hubs or get_spokes.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["scope","side"],"properties":{"side":{"enum":["supply","borrow"],"type":"string"},"asset":{"type":"string"},"hubId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"limit":{"type":"integer","default":10,"maximum":100,"minimum":1},"scope":{"enum":["reserve","hub","spoke"],"type":"string"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"spokeId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}}},"title":"Largest suppliers or borrowers","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_top_holders","displayName":"Largest suppliers or borrowers"},{"name":"get_liquidations","description":"Liquidations over a window (count, debt repaid and collateral seized in USD, per bin) and the liquidator leaderboard. The API reports binned totals, not individual liquidations. To find accounts close to liquidation, use get_risky_accounts.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"asset":{"type":"string"},"hubId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"limit":{"type":"integer","default":10,"maximum":100,"minimum":1},"window":{"enum":["1d","7d","30d","90d","1y"],"type":"string","default":"30d"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"title":"Liquidation history and liquidators","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_liquidations","displayName":"Liquidation history and liquidators"},{"name":"get_risky_accounts","description":"Accounts with debt, riskiest first, with health factor (liquidatable below 1), supplied and borrowed USD. Use to monitor liquidation risk or find liquidation candidates; then get_liquidation_estimate. Optionally only accounts holding one token.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"asset":{"type":"string"},"limit":{"type":"integer","default":10,"maximum":100,"minimum":1},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"title":"Accounts closest to liquidation","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_risky_accounts","displayName":"Accounts closest to liquidation"},{"name":"get_campaign","description":"The XOXNO Lending points campaign: dates, prize pool and leaderboard (score, estimated allocation, quests completed). Pass owner to also get that wallet’s rank and which quests remain.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","default":10,"maximum":100,"minimum":1},"owner":{"type":"string"},"offset":{"type":"integer","default":0,"maximum":10000,"minimum":0},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"title":"Campaign leaderboard","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_campaign","displayName":"Campaign leaderboard"},{"name":"get_governance_proposals","description":"Timelocked governance proposals on XOXNO Lending (listings, caps, risk parameters, oracles, upgrades), newest first. Each has its stage (waiting for the timelock, ready to execute, expired, executed or cancelled), a summary, and the decoded changes (e.g. LTV, liquidation threshold, caps). Use status \"pending\" for what is coming next.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"kind":{"type":"array","items":{"type":"string","minLength":1},"maxItems":10},"asset":{"type":"string"},"limit":{"type":"integer","default":10,"maximum":100,"minimum":1},"status":{"enum":["all","pending","executed","cancelled"],"type":"string","default":"all"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"title":"Governance proposals","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_governance_proposals","displayName":"Governance proposals"},{"name":"preview_action","description":"What a supply, borrow, repay or withdraw would do to an existing account before building it: health factor, borrow limit and headroom before and after, the market’s supply and borrow APY after, and the largest amount allowed (with the limiting reason). amount \"max\" previews that largest amount. Take accountId from get_positions and hubId and asset from its positions or get_markets. To open a new account use prepare_action instead.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["action","accountId","hubId","asset"],"properties":{"asset":{"type":"string"},"hubId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"action":{"enum":["supply","borrow","repay","withdraw"],"type":"string"},"amount":{"anyOf":[{"type":"string","pattern":"^(?:\\d+)(?:\\.\\d+)?$"},{"type":"string","const":"max"}],"default":"max"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"accountId":{"type":"string","pattern":"^\\d{1,20}$"}}},"title":"Preview a lending action","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"preview_action","displayName":"Preview a lending action"},{"name":"get_liquidation_estimate","description":"Simulate liquidating an account (read-only, nothing is sent): collateral seized and received after the protocol fee, debt actually repaid, refunds, bonus and estimated profit in USD. Only accounts with health factor below 1 can be liquidated; find them with get_risky_accounts.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["accountId"],"properties":{"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"accountId":{"type":"string","pattern":"^\\d{1,20}$"},"seizeMode":{"enum":["transfer","credit"],"type":"string","default":"transfer"},"debtPayments":{"type":"array","items":{"type":"object","required":["hubId","asset","amount"],"properties":{"asset":{"type":"string"},"hubId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"amount":{"type":"string","pattern":"^(?:\\d+)(?:\\.\\d+)?$"}}},"maxItems":10,"minItems":1},"creditAccountId":{"type":"string","pattern":"^\\d{1,20}$"}}},"title":"Estimate a liquidation","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_liquidation_estimate","displayName":"Estimate a liquidation"},{"name":"prepare_liquidation","description":"Build and simulate an unsigned liquidate transaction for an account below health factor 1: the sender repays debt and receives collateral plus the bonus. Check get_liquidation_estimate first. Returns base64 XDR for the liquidator to sign in their own wallet.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["accountId","sender"],"properties":{"sender":{"type":"string"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"accountId":{"type":"string","pattern":"^\\d{1,20}$"},"seizeMode":{"enum":["transfer","credit"],"type":"string","default":"transfer"},"debtPayments":{"type":"array","items":{"type":"object","required":["hubId","asset","amount"],"properties":{"asset":{"type":"string"},"hubId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"amount":{"type":"string","pattern":"^(?:\\d+)(?:\\.\\d+)?$"}}},"maxItems":10,"minItems":1},"creditAccountId":{"type":"string","pattern":"^\\d{1,20}$"}}},"title":"Prepare a liquidation","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"prepare_liquidation","displayName":"Prepare a liquidation"},{"name":"get_swap_quote","description":"Quote swapping one Stellar token for another through the XOXNO aggregator: expected output, minimum output after slippage, price impact and route. Use to size strategies (prepare_strategy re-quotes when it builds). Token ids are contract addresses (C…), for example from get_markets.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["from","to","amount"],"properties":{"to":{"type":"string"},"from":{"type":"string"},"amount":{"type":"string","pattern":"^(?:\\d+)(?:\\.\\d+)?$"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"slippagePct":{"type":"number","default":0.5,"maximum":5,"minimum":0.01}}},"title":"Get a swap quote","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_swap_quote","displayName":"Get a swap quote"},{"name":"prepare_strategy","description":"Build and simulate an unsigned strategy transaction that swaps through the XOXNO aggregator in one step. Each strategy sells `from` and buys `to`:\n- multiply: borrow `amount` of from (debt), swap it to `to` (collateral) and supply it. accountId \"0\" opens an account on spokeId in `mode`.\n- swap_debt: borrow `amount` of from (new debt) and swap it to repay `to` (existing debt); excess is refunded.\n- swap_collateral: withdraw `amount` of from (supplied) and supply the swapped `to`.\n- repay_debt_wit","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["strategy","sender","from","to","amount"],"properties":{"to":{"type":"object","required":["hubId","asset"],"properties":{"asset":{"type":"string"},"hubId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}}},"from":{"type":"object","required":["hubId","asset"],"properties":{"asset":{"type":"string"},"hubId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}}},"mode":{"enum":["multiply","long","short"],"type":"string","default":"multiply"},"amount":{"type":"string","pattern":"^(?:\\d+)(?:\\.\\d+)?$"},"sender":{"type":"string"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"spokeId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"strategy":{"enum":["multiply","swap_debt","swap_collateral","repay_debt_with_collateral"],"type":"string"},"accountId":{"type":"string","default":"0","pattern":"^\\d{1,20}$"},"slippagePct":{"type":"number","default":0.5,"maximum":5,"minimum":0.01},"closePosition":{"type":"boolean","default":false},"initialPayment":{"type":"string","pattern":"^(?:\\d+)(?:\\.\\d+)?$"}}},"title":"Prepare a strategy transaction","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"prepare_strategy","displayName":"Prepare a strategy transaction"},{"name":"get_blend_positions","description":"A wallet’s Blend V2 positions, one per pool: collateral, non-collateral supply and debt legs with symbols and amounts, whether each leg and the whole position can migrate to XOXNO Lending, and the destination spoke, hub and account. Use before prepare_migration.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["owner"],"properties":{"owner":{"type":"string"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"title":"Blend positions to migrate","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_blend_positions","displayName":"Blend positions to migrate"},{"name":"prepare_migration","description":"Build and simulate an unsigned migrate_from_blend transaction that moves one migratable Blend V2 position (from get_blend_positions) into XOXNO Lending in one step: XOXNO borrows each debt cap, repays the Blend debt, withdraws the Blend collateral and supply, and supplies it on the destination spoke and hub. Debt caps are the current debt plus debtCapMarginPct; unused funding reduces the new debt. Returns base64 XDR for the user’s own wallet to sign.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["sender"],"properties":{"index":{"type":"integer","maximum":9007199254740991,"minimum":0},"sender":{"type":"string"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"blendPool":{"type":"string"},"debtCapMarginPct":{"type":"number","default":0.1,"maximum":5,"minimum":0}}},"title":"Prepare a Blend migration","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"prepare_migration","displayName":"Prepare a Blend migration"},{"name":"get_guide","description":"Short protocol guides for agents, each ending with its docs link. Topics: overview, workflow, health-factor, amounts, accounts, risks, prices, signing, strategies, liquidations, analytics, errors, docs, hubs-and-spokes, reserves, supply, borrow, repay, withdraw, blend-migration, flash-loans, sdk, addresses, glossary, faq. Read \"workflow\" first; \"analytics\" maps questions to tools; \"docs\" lists every documentation page.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["topic"],"properties":{"topic":{"enum":["overview","workflow","health-factor","amounts","accounts","risks","prices","signing","strategies","liquidations","analytics","errors","docs","hubs-and-spokes","reserves","supply","borrow","repay","withdraw","blend-migration","flash-loans","sdk","addresses","glossary","faq"],"type":"string"}}},"title":"Read an XOXNO Lending guide","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_guide","displayName":"Read an XOXNO Lending guide"},{"name":"get_started","description":"Overview of the XOXNO Lending MCP tools, prompts and guides. Call first when unsure which tool to use.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"What this server can do","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_started","displayName":"What this server can do"}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Stellar-Lending-DeFi-Protocol-Earn-Borrow-XOXNO&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3AueG94bm8uY29tL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Stellar-Lending-DeFi-Protocol-Earn-Borrow-XOXNO%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.xoxno.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Stellar-Lending-DeFi-Protocol-Earn-Borrow-XOXNO%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.xoxno.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Stellar+Lending+%26+DeFi+Protocol%3A+Earn%2C+Borrow+%7C+XOXNO&connectorUrl=https%3A%2F%2Fmcp.xoxno.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Stellar-Lending-DeFi-Protocol-Earn-Borrow-XOXNO\" --url \"https://mcp.xoxno.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/xoxno-mcp-5fd677de54","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/xoxno-mcp-5fd677de54/tools/{tool}","mcpServerUrl":"https://mcp.xoxno.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/xoxno-mcp-5fd677de54?live=1"}