Ekubo Protocol
Token and pool data, swap quotes, and unsigned transaction plans for Ekubo and other DeFi protocols.
What it does
Ekubo Protocol is an MCP server, a connector that lets an AI assistant use it as a tool. It is hosted: an assistant connects to it over the internet, nothing to install.
No capability identified yet from its description.
Facts come from the Official MCP Registry, as declared by the publisher. Capabilities are matched automatically (low confidence). None of this is a test of the tool.
At a glance
How to connect
As declared in the Official MCP Registry · hosted endpoint tested by Electra Index 1h ago (live check)Hosted endpoint
https://mcp.ekubo.org/mcpstreamable-http
In Claude Code: claude mcp add --transport http ekubo-protocol https://mcp.ekubo.org/mcp
MCP settings (Claude Desktop, Cursor and other MCP clients)
{
"mcpServers": {
"ekubo-protocol": {
"url": "https://mcp.ekubo.org/mcp"
}
}
}Live check
Electra Index connected to the hosted endpoint 1h agoONLINE Ekubo Protocol answered an MCP connection on 04 Nov 2026 and introduced itself as ekubo 0.54.0 (MCP protocol 2025-06-18).
99 tools offered to AI assistants
list_tokens· First step for symbol-based swaps, including tokenized stocks and stablecoins: list canonical Ekubo tokens by descending visibility_priority, so the preferred token wins an ambiguous symbol. Use search for a symbol prefix or suffix and min_export_tokens· Return a token_list_reference envelope (chain ID, address, symbol, name, decimals) and its count, with no entries, so a wallet can import token names; pass it unchanged as the wallet tool's reference argument. complete=false means the exporget_token· Fetch canonical token metadata for an exact chain and address.get_tokens· Fetch canonical metadata for up to 1,000 token identifiers in one batch request, preserving input order; identifiers absent from the canonical list are omitted.get_quotes_with_plans· A quote, execution plan, simulation or wallet approval is not permission to trade. Robinhood Stock Tokens are tokenised debt securities subject to issuer restrictions and applicable law. Before requesting signatures or submitting approvalsget_value_transfer_status· Report whether an executed LayerZero or LI.FI transfer has been delivered; its origin receipt alone does not mean the user has the funds. Poll every 15 to 30 seconds while settled is false (it draws on the quote budget). UNKNOWN or NOT_FOUNprepare_ve33_vote· Compile one actively voted ve-token into multiple allocations. Unconditionally claims its current pool first, then splits and changes votes in one atomic batch of decodable VeToken steps. Nothing is burned, withdrawn, or transferred: the soprepare_ve33_extend· Prepare a direct extension for an unvoted VeToken or an atomic claim-and-extend call when current_pool_key identifies an active vote, so pending voter fees are preserved. Extending moves the stake to a later end time and clears its vote — tprepare_ve33_stake· Create a new VeToken stake with an exact stake-token approval. Max duration is the safe default for new stakes; an explicit shorter duration is optional and no existing NFT, vote, fee balance, or ownership is changed.prepare_ve33_split· Split a source ve-token with an explicit salt and return the deterministic child token ID; the source vote is preserved with reduced weight and the child starts unvoted with the same lock end. Non-destructive: no stake leaves the wallet, noprepare_ve33_claim_fees· Generate one call, or an atomic batch of decodable VeToken steps, claiming voter fees from one or more ve-tokens. Fees only: votes, stake amounts, lock ends, and NFT ownership are all unchanged, so this is always safe to run before any otheprepare_ve33_reinvest· Build the safe phased workflow for 'reinvest my fees': automatically claim all active voter fees, prepare one exact-input swap per claimed non-stake token, then increase one VeToken or every existing active allocation without changing owner
Show 87 more
prepare_ve33_claim_all_fees· Discover every active vote on VeTokens owned by the sender and generate one atomic batch of decodable VeToken steps claiming all indexed pool fees, with ownerOf and voteState validation calldata. Fees only: votes, stake amounts, lock ends,prepare_ve33_clear_vote· Remove the active vote from one or more ve-tokens, claiming each stake's current pool fees immediately before its clearVote in one atomic batch. Use this instead of raw clearVote calldata: Ve33 discards pending voter fees when a stake's weiget_ve33_allocations· Use for requests such as 'show all my Ekubo STONX allocations'. The production Ekubo ve(3,3) deployment is the STONX voting system, so pass only owner to select its production chain and canonical VeToken automatically. Returns every pool, sget_stonx_allocation_recommendation· Return a provider-neutral STONX allocation recommendation with an emissions_efficiency KPI per pool and an executable target list (exactly 10,000 bps, at most 25 Ve33 pools). The snapshot refreshes daily; read snapshot_age_seconds. voter wiprepare_ve33_reallocation· Compile a reviewed current allocation into at most 25 target pool-weight shares as one atomic batch of decodable VeToken steps. The default path only claims, splits, and votes: nothing is burned, no lock is extended, and nothing is withdrawget_positions_by_owner· Enumerate an owner's indexed Ekubo position NFTs with pool keys, bounds, liquidity, indexed pool state and rewards. For fresh onchain state, pass each current_state_reads[].read_calls_reference to wallet_batch_eth_call as a value in the samget_pool· Resolve a chain/core/pool ID to its verified PoolKey, decoded config and indexed pool state. For fresh sqrtRatio, tick and liquidity, pass current_state_query.read_calls_reference unchanged to wallet_batch_eth_call.get_pool_liquidity· Return tick-level net liquidity deltas for one exact chain/core/pool ID. Accumulate the deltas in ascending tick order to reconstruct active liquidity depth.list_pool_keys· Discover initialized pools for one chain and Core deployment, ordered by pool_id with keyset pagination, optionally filtered by token, pair or extension. Each pool_id is re-derived from its PoolKey and each row carries the indexed state (nuderive_pool_id· Pack or accept an exact PoolKey config and derive pool_id = keccak256(abi.encode(PoolKey)). The uint64 Q64 fee is string-only so JavaScript cannot silently round it.decode_pool_config· Decode the packed bytes32 extension, exact uint64 Q64 fee, concentrated/stableswap discriminator, and tick spacing or stableswap parameters. The fee is never returned as a JSON number.get_position· Hydrate one owner position: pool key, bounds, liquidity, pool state, NFT metadata, history, rewards, token prices, and a pending read of current principal, fees or Ve33 rewards and owner. Pass current_state_query.read_calls_reference as a vget_position_pool_candidates· List indexed pools for a token pair with verified PoolKeys and pool IDs, Core generation, pool type, extension, 24-hour TVL/volume/fee stats and the right Positions or Ve33Positions manager.prepare_lp_position_deposit· Prepare a v3 position mint or add_liquidity, initializing a new pool at initial_tick when requested, with every approval, refund and cleanup step. Ekubo ticks use base 1.000001, so tick = ln(price in base units) x 10^6 and a Uniswap-style 1prepare_lp_position_earnings_claim· Prepare collection of all accrued fees from an owned standard position or rewards from an owned Ve33 position, keeping its liquidity and NFT. Run its current_state_query first: require every inner call to succeed and the decoded owner to eqprepare_lp_position_withdraw· Prepare partial or full withdrawals from one or more owned positions in one plan, collecting fees or Ve33 rewards and keeping the NFTs. Read each position's current_state_query first and request no more liquidity than it decodes; require evprepare_wrap_unwrap· Prepare a direct wrapped-native deposit or withdrawal on a chain with a verified wrapped native token. The response names the wrapped token, which is not WETH everywhere (BNB Chain wraps BNB, Polygon POL, Monad MON).prepare_transfers· Prepare one atomic-capable plan of 1 to 4,096 ordered native, ERC-20, ERC-721 and ERC-1155 transfers on one EVM chain, mixed freely. Returns a compact summary and the execution_plan_reference.prepare_lp_position_transfer· Prepare the exact safeTransferFrom transaction for an owned LP position and include pending ownership validation. The position, liquidity, and unclaimed earnings move together.prepare_fix_pool_price· Run the interface-equivalent phased fix-price workflow: provide exact pending pool-price read calldata, then exact router quote calldata, then approvals and target-price execution calldata. The wallet never constructs a route or transactionprepare_twamm_order· Prepare one or more TWAMM order splits with approvals and native value as one atomic batch. details.token_id is the order's id before anything is sent: keep it, because prepare_twamm_order_collection and prepare_twamm_order_stop are keyed bprepare_twamm_order_collection· Prepare collection of every selected order key through the exact current or legacy Orders manager, as one atomic batch of decodable steps, with pending owner validation.prepare_twamm_order_stop· Prepare the interface's complete stop flow: collect every selected order and decrease every still-active sale rate in one atomic batch of decodable steps.prepare_twamm_virtual_orders· Prepare the permissionless lockAndExecuteVirtualOrders maintenance call for a current or legacy TWAMM pool.prepare_auction_create· Pack the exact interface auction config and prepare mint plus sellAmountByAuction, including approval or native value and deterministic token ID.prepare_auction_complete· Prepare permissionless auction completion and, when necessary, graduation-pool initialization in the same atomic batch.prepare_auction_creator_proceeds· Prepare collection of creator proceeds for an auction NFT with pending owner validation.prepare_manual_pool_boost· Compute the exact Q32 boost rates and prepare all token approvals, native value, and boost calldata used by the interface.prepare_oracle_capacity_expansion· Prepare the interface's permissionless Oracle expandCapacity call for one ERC-20 token.prepare_approval_revocations· Prepare every approve(spender,0) as an exact ordered multi-transaction execution plan. The wallet must not discover or construct the transaction list.get_rewards_claims_by_owner· Fetch canonical reward-claim records and supply the exact per-chain isClaimed/isAvailable eth_call list used by the interface before preparing claim transactions.prepare_rewards_claim· Prepare one Incentives claim or the interface's allow-failure Multicall3 aggregate for multiple claims.prepare_revenue_buybacks· Prepare the exact selected ended-order collections, protocol-fee withdrawals, and token rolls in interface order within one atomic batch of decodable steps.prepare_ve33_increase_stake· Prepare the exact approval/native value and increaseStakeAmount call while preserving the existing vote and fee accounting. Non-destructive: the vote is resized rather than cleared, no fees are discarded, and no NFT is burned. The added staprepare_ve33_merge· Prepare fee-safe merging of one or more source NFTs into a destination, including required claims and the selected resulting vote in one atomic batch of decodable steps. Destructive to the sources: each source's stake moves to the destinatiprepare_ve33_withdraw· Prepare fee-safe withdrawal of an expired ve-token stake, claiming the active pool first when voted and returning pending owner/stake validation. Ends the position: the stake leaves Ve33 and returns to the owner and the vote is cleared. Onlget_liquidity_opportunities· Return the interface's boosted-fee, incentive and projected ve(3,3)-emission opportunities ranked by APR, with actionable pools or pool-discovery handoffs, freshness and risk context. Call this before asking the user to choose a pair. APR iprepare_pool_initialization· Prepare one permissionless maybeInitializePool transaction for a v3 PoolKey and initial tick; prepare_lp_position_deposit with pool_initialized=false does the same atomically with the mint.get_aave_v3_markets· Locally return six major Aave V3 core deployments and a bounded set of popular reserve, aToken, and variable-debt-token addresses from a pinned official Aave address-book snapshot. This tool makes no RPC, indexer, API, or other network requprepare_aave_v3_supply· Prepare a fixed-market Aave V3 Pool supply with an exact ERC-20 approval, supply calldata, and allowance cleanup as one atomic wallet plan. No live balance, allowance, reserve, cap, pause, or rate data is queried.prepare_aave_v3_withdraw· Prepare a direct Aave V3 Pool withdrawal for a supported fixed reserve. Pass uint256 maximum as amount to request the available aToken balance. The wallet establishes balance, health-factor, collateral, and liquidity validity by exact simulprepare_aave_v3_borrow· Prepare a direct Aave V3 variable-rate borrow from a supported fixed reserve, including optional on-behalf-of credit delegation. This server does not query collateral, delegation, health factor, caps, or available liquidity.prepare_aave_v3_repay· Prepare variable-debt repayment with underlying tokens or sender-owned aTokens. Underlying repayment carries an exact ERC-20 approval and cleanup in one atomic plan; uint256 maximum requests all available debt.prepare_aave_v3_collateral· Prepare setUserUseReserveAsCollateral for a supported fixed reserve. Disabling collateral can reduce health factor or revert when open debt needs it, so exact wallet simulation is mandatory.prepare_aave_v3_emode· Prepare setUserEMode with a caller-supplied current uint8 category ID; zero disables eMode. Discover live category configuration through Aave's public GraphQL API directly, because this server makes no data or RPC request.get_morpho_vaults· Locally return a bounded, pinned catalog of listed Morpho Vault V2 deployments plus official direct-discovery guidance. This tool makes no API, RPC, indexer, or other network request. The agent must query Morpho's public GraphQL API and curprepare_morpho_vault_deposit· Prepare an exact-approval Morpho Vault V2 deposit through the official SDK's VaultBundlesV1 route. The caller supplies a fresh RAY-scaled max share price, which is enforced onchain against ERC-4626 share-price inflation; shares are minted tprepare_morpho_vault_withdraw· Prepare a direct Morpho Vault V2 withdrawal for an exact underlying-asset amount from a fixed vault. Current shares, liquidity, permissions, and vault state are established by direct agent discovery and exact wallet simulation.prepare_morpho_vault_redeem· Prepare a direct Morpho Vault V2 redemption for an exact share amount. Prefer redeem for full exits so the user's complete fresh share balance can be bound without asset/share rounding dust.get_sky_savings_deployment· Locally return the canonical Ethereum USDS and sUSDS addresses and direct wallet-read guidance. This server does not proxy Sky, an RPC, an indexer, or any third-party API.prepare_sky_savings_deposit· Prepare an exact USDS approval, ERC-4626 sUSDS deposit, and allowance cleanup as one atomic wallet plan. The direct vault interface has no minimum-shares or deadline field, so a fresh preview and exact wallet simulation are mandatory.prepare_sky_savings_withdraw· Prepare a direct sUSDS ERC-4626 withdrawal for an exact USDS amount. The server does not query current exchange rate, capacity, balance, allowance, or preview state.prepare_sky_savings_redeem· Prepare a direct sUSDS ERC-4626 redemption for an exact share amount. Use a fresh wallet/RPC balance and preview, then require exact wallet simulation before authorization.get_merkl_deployment· Locally return the Merkl Distributor address, the chains it is verified on, and how Merkl's reward fields behave; preparation is limited to those chains. No Merkl API, RPC, or indexer request.prepare_merkl_claim· Prepare one Distributor claim for every Merkl reward token the sender holds on a chain, from amounts and proofs fetched from https://api.merkl.xyz/v4/users/{address}/rewards/summary. The proofs are folded into their Merkle root here, and thget_aerodrome_deployment· Locally return Aerodrome's Base contracts (AERO, veAERO, Voter, Router, v2 factory, RewardsDistributor, Slipstream, Sugar lenses), derived on chain from the Voter, plus the protocol behaviour an agent must respect. No API or RPC request. Aeprepare_aerodrome_sugar_reads· Build the eth_call bundle and decode plan for one Sugar dataset (pools, positions, veNFTs, epochs, rewards) for the wallet to run against the user's RPC; Sugar has no API. The pool, gauge, fee and bribe addresses and veNFT ids it returns arprepare_aerodrome_liquidity_deposit· Prepare a v2 addLiquidity through Aerodrome's Router with exact approvals and allowance cleanup. The read bundle quotes the actual split and resolves the pool, so a pair with no pool is caught before a deposit sets its price. LP tokens earnprepare_aerodrome_liquidity_withdraw· Prepare a v2 removeLiquidity that burns LP tokens back into the underlying pair, with the LP-token approval the router needs and an allowance cleanup after. Phased, because the token being approved is the pool and this server resolves Aerodprepare_aerodrome_gauge_deposit· Stake v2 LP tokens into a pool's gauge to earn AERO emissions, with the LP-token approval the gauge needs and an allowance cleanup after. Phased, because which token the gauge pulls is its own stakingToken: call it without lp_token to get tprepare_aerodrome_gauge_withdraw· Unstake v2 LP tokens from a gauge. This returns the LP token, not the underlying pair, and it does not claim AERO: the read bundle reports what is still earned so it is not silently left behind.prepare_aerodrome_gauge_claim· Claim accrued AERO from a gauge. getReward credits its account argument rather than the sender, so a claim can pay a different address than the one paying gas; the plan states which. A claim with nothing earned succeeds and transfers nothinprepare_aerodrome_lock· Build one veAERO escrow action: create a lock, add AERO to one, extend it, switch permanent locking on or off, or withdraw an expired one. Durations are measured from now and floored to a week boundary, so anything under a week is refused rprepare_aerodrome_vote· Cast one veNFT's gauge vote, or reset it. Weights are relative shares of voting power, not amounts, and the allocation replaces any previous vote entirely — a pool left out is voted zero. A veNFT may vote once per weekly epoch and reverts oprepare_aerodrome_incentive_claim· Claim a veNFT's voting rewards — trading fees, bribes, or both — and optionally the RewardsDistributor rebase, as one plan. The fee and bribe contract addresses are required inputs because they are per-pool contracts that only a Sugar rewardecode_uniswap_v4_position_info· Decode the packed PositionInfo returned by wallet reads into signed tick bounds, subscriber flag and the truncated pool-ID prefix. This is local integer decoding, not a state query.quote_uniswap_liquidity· Calculate V3/V4 range liquidity, rounded mint/burn amounts and explicit token bounds from a current sqrt-price snapshot and raw token budgets, or an exact liquidity amount. Fees are excluded. Obtain current state using prepare_uniswap_readsget_uniswap_deployments· Canonical V2/V3/V4 contracts on Ethereum, Optimism, Base, Arbitrum, Unichain and Robinhood, including Permit2 and wrapped native addresses.discover_uniswap_pools· Fetch indexed V2, V3 or V4 pools ranked by TVL from Uniswap's interface API. Filter by chain and token; paginate using the last pool's TVL as tvl_cursor. Returns token symbols and decimals, liquidity and daily volume.get_uniswap_pool· Fetch indexed pool details, currencies, fee, TVL, volume and supplies. V4 takes a bytes32 pool ID; V2/V3 take an address. Use prepare_uniswap_reads for current chain state.get_uniswap_pool_ticks· Fetch paginated initialized ticks and exact liquidityNet/liquidityGross strings for V3/V4 liquidity depth charts. first/skip bound each request; combine with current pool liquidity and tick from prepare_uniswap_reads. Indexer data can lag.get_uniswap_charts· Fetch timestamped token0/token1 prices and USD volume history over the requested duration from the same GraphQL fields as the open source Uniswap interface. Empty series means no indexed data, never zero volume.prepare_uniswap_reads· Return exact wallet read bundles for pool state, reserves, positions and ownership. V3 supports bounded owner-index enumeration. V4 requires known token IDs. Verify returned tokens, fee, factory/pool key, tick spacing and owner before prepaprepare_uniswap_v2_add_liquidity· Add liquidity or create a V2 pair with exact token approvals and cleanup. Amounts are raw units; sorted token0/token1 and explicit minimum outputs are required. use_native pays ETH for the wrapped-native side. Execute atomically through theprepare_uniswap_v2_remove_liquidity· Burn an exact LP amount through the canonical V2 router; realize accrued fees with principal. Raw minima protect withdrawal proceeds. LP token address is derived from the factory. Optional native unwrapping. V2 has no separate fee claim. Reprepare_uniswap_v3_add_liquidity· Mint a ranged NFT or increase token_id with raw desired amounts and minima. First verify factory fee tick spacing and position tokens/range. Optional initialize_sqrt_price_x96 creates the pool; use_native pays ETH and refunds excess. Exactprepare_uniswap_v3_remove_liquidity· Decrease exact uint128 liquidity, collect principal and all accrued fees, and optionally burn a fully emptied NFT. Raw minima protect withdrawal proceeds. Optional unwrap_native requires verified position currencies.prepare_uniswap_v3_collect_fees· Collect all owed fees without removing liquidity, optionally unwrapping WETH. Verify NFT ownership and currencies first. V3 collect has no onchain deadline; regenerate and simulate before execution.prepare_uniswap_v4_add_liquidity· Mint or increase an exact liquidity amount using raw uint128 token maxima. Zero token0 means native ETH. Uses exact ERC20 and Permit2 approvals with cleanup, settles both signs of accrued-fee deltas on increase, and refunds native surplus.prepare_uniswap_v4_remove_liquidity· Remove liquidity and take principal plus fees to the sender. Optional burn:true requires liquidity:0 and withdraws the entire NFT with minima applied to the full position. Requires exact pool currencies and hook data; uint128 minima bound pprepare_uniswap_v4_collect_fees· Poke a V4 position with zero liquidity decrease then take both currencies to the sender. Principal remains invested. Verify ownership, pool key and hook behavior first.get_lido_deployment· Locally return canonical Ethereum stETH, wstETH, and WithdrawalQueueERC721 addresses plus direct wallet-read guidance. This server makes no Lido API, RPC, or indexer request.prepare_lido_stake· Prepare the canonical Lido submit call with exact native ETH value and an explicit or zero referral. The agent must read current staking pause and limit state directly; the wallet then simulates the exact transaction.prepare_lido_wrap· Prepare an exact stETH approval, wstETH wrap call, and allowance cleanup in one atomic wallet plan.prepare_lido_unwrap· Prepare a direct wstETH unwrap call for an exact share amount, returning rebasing stETH to the sender.prepare_lido_withdrawal_request· Prepare one or more bounded stETH withdrawal requests with an exact queue approval and cleanup. This irreversible asynchronous action mints unstETH NFTs, stops rewards while queued, and can settle below 1:1 after extraordinary losses; walleprepare_lido_withdrawal_claim· Prepare claimWithdrawal for one finalized, unclaimed unstETH request ID owned by the sender. The agent must verify ownership and finalization directly through the user's wallet/RPC before preparation.
What "online" means: the server answered an MCP connection at the time of the check. It is not a guarantee of security, quality or continuous uptime. How we test: we open an MCP session and ask for the tool list, as an AI assistant would. We never run a tool and never send a key. Checked every few days. Method
Is this your server? Monitoring Pro: a check every 30 minutes and an email within the hour when it stops answering. Launch offer: $39.99 once, for life.
Facts & evidence
Each fact shows where it was seen and when.| Fact | Value | Evidence | Source | Last confirmed |
|---|---|---|---|---|
| Hosted endpoint | https://mcp.ekubo.org/mcp | DECLARED | SRC-001 Official MCP Registry | 1h ago |
| Local install (package) | no | DECLARED | SRC-001 Official MCP Registry | 1h ago |
| Remote access (hosted) | yes | DECLARED | SRC-001 Official MCP Registry | 1h ago |
| Website | https://docs.ekubo.org/products/mcp-server/ | DECLARED | SRC-001 Official MCP Registry | 1h ago |
| Repository | https://github.com/EkuboProtocol/ekubo-mcp-server | DECLARED | SRC-001 Official MCP Registry | 1h ago |
| Registry status | active | DECLARED | SRC-001 Official MCP Registry | 1h ago |
| Version | 0.54.0 | DECLARED | SRC-001 Official MCP Registry | 1h ago |
| MCP server | yes | DECLARED | SRC-001 Official MCP Registry | 1h ago |
Change history
- NEW04 Nov 2026first seen in the index
Is this page accurate?
Flag it and our robot re-checks the official source. Reports never change a score.Is Ekubo Protocol still online?
Free alerts · no account▲ 0Do you run Ekubo Protocol? Know when it stops answering
For publishers · optionalIts hosted endpoint can be monitored. Monitoring Pro connects every 30 minutes like an AI assistant, emails you within the hour when it stops answering, keeps a 90-day availability history and adds your answer rate to your badge.
Monitoring never changes a score or a rank.
Questions about Ekubo Protocol
How do I connect Ekubo Protocol?
Use the hosted endpoint https://mcp.ekubo.org/mcp in your assistant's MCP settings. The exact settings are in "How to connect" above, as declared in the Official MCP Registry.
What tools does Ekubo Protocol offer?
When Electra Index connected on 04 Nov 2026, it listed 99 tools: list_tokens, export_tokens, get_token, get_tokens, get_quotes_with_plans, get_value_transfer_status, prepare_ve33_vote, prepare_ve33_extend and more. The full list is in "Live check" above.
Is Ekubo Protocol online?
Yes. Its hosted endpoint answered an MCP connection from Electra Index 1h ago.