
Arcadia Finance
Connects Claude to Arcadia Finance's concentrated liquidity platform on Uniswap and Aerodrome. Exposes read tools for account health, PnL, LP strategy recommendations, lending pool APYs, and points leaderboards. Write tools return unsigned transactions for the full lifecycle: approve tokens, create accounts, deposit collateral, add liquidity with optional leverage, borrow against positions, rebalance, deleverage, and atomic close operations. Includes flash-action composability like deposit-swap-mint-leverage in one transaction. Useful when you need an agent to manage leveraged LP positions or analyze DeFi portfolio health without leaving the chat.
- tools
- 38
- auth
- Secret needed
- transport
- STDIO, HTTP
- env vars
- 8
- last updated
- Nov 12, 2026
Install
From registry metadata$ npx add-mcp https://mcp.arcadia.finance/mcp --name arcadia-financeRun in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.
Review the command, arguments and environment values before installing. MCP servers run with your local permissions.
Other ways
Claude Code
$ claude mcp add --transport http arcadia-finance https://mcp.arcadia.finance/mcpRun in your terminal. Add --scope user to make it available in every project.
Tools
Verified live · 38 toolsVerified live against the running server on Nov 6, 2026.
read_account_infoGet full overview of an Arcadia account: health factor, collateral value, debt, deposited assets, liquidation price, and automation status. Health factor = 1 - (used_margin / liquidation_value): 1 = no debt (safest), >0 = healthy, 0 = liquidation threshold, <0 = past liquidati...2 params
Get full overview of an Arcadia account: health factor, collateral value, debt, deposited assets, liquidation price, and automation status. Health factor = 1 - (used_margin / liquidation_value): 1 = no debt (safest), >0 = healthy, 0 = liquidation threshold, <0 = past liquidati...
account_address*stringchain_idnumberread_account_historyGet an Arcadia account's historical net value over time. Returns a time series of snapshots, oldest first, each `{ timestamp, net_value }` — `timestamp` is unix seconds and `net_value` is USD (human-readable, not raw units). Useful for charting account performance over a perio...3 params
Get an Arcadia account's historical net value over time. Returns a time series of snapshots, oldest first, each `{ timestamp, net_value }` — `timestamp` is unix seconds and `net_value` is USD (human-readable, not raw units). Useful for charting account performance over a perio...
account_address*stringchain_idnumberdaysnumberread_account_pnlGet PnL (cost basis) and yield earned for an Arcadia account. Returns lifetime totals: cost basis vs current value (negative cost_basis = net profit withdrawn), net transfers per token, total yield earned in USD and per token. cost_basis, current_value, cost_diff are in USD (h...2 params
Get PnL (cost basis) and yield earned for an Arcadia account. Returns lifetime totals: cost basis vs current value (negative cost_basis = net profit withdrawn), net transfers per token, total yield earned in USD and per token. cost_basis, current_value, cost_diff are in USD (h...
account_address*stringchain_idnumberread_pool_listList all Arcadia lending pools: TVL, utilization, available liquidity. Key fields: interest_rate = current borrow cost, lending_apy = lender yield. All rates are decimal fractions (1.0 = 100%, 0.06 = 6%). For APY history on a specific pool, use read_pool_info.1 params
List all Arcadia lending pools: TVL, utilization, available liquidity. Key fields: interest_rate = current borrow cost, lending_apy = lender yield. All rates are decimal fractions (1.0 = 100%, 0.06 = 6%). For APY history on a specific pool, use read_pool_info.
chain_idnumberread_pool_infoGet detailed info for a single lending pool including APY history over time. Useful for analyzing rate trends and comparing pools. Use read_pool_list to discover pool addresses.3 params
Get detailed info for a single lending pool including APY history over time. Useful for analyzing rate trends and comparing pools. Use read_pool_list to discover pool addresses.
chain_idnumberdaysnumberpool_address*stringread_asset_listList supported collateral assets on Arcadia. Returns compact list (address, symbol, decimals, type). Use search to filter by symbol substring. For USD prices, use read_asset_prices.2 params
List supported collateral assets on Arcadia. Returns compact list (address, symbol, decimals, type). Use search to filter by symbol substring. For USD prices, use read_asset_prices.
chain_idnumbersearchstringread_asset_pricesGet USD prices for one or more asset addresses. Pass a single address or comma-separated addresses. Returns a price map keyed by address.2 params
Get USD prices for one or more asset addresses. Pass a single address or comma-separated addresses. Returns a price map keyed by address.
asset_addresses*stringchain_idnumberread_strategy_listGet Arcadia LP strategies. Use featured_only=true for curated top strategies (recommended first call). Returns a paginated list with 7d avg APY for each strategy's default range. Increase limit or use offset for pagination. All APY values are decimal fractions (1.0 = 100%, 0.0...4 params
Get Arcadia LP strategies. Use featured_only=true for curated top strategies (recommended first call). Returns a paginated list with 7d avg APY for each strategy's default range. Increase limit or use offset for pagination. All APY values are decimal fractions (1.0 = 100%, 0.0...
chain_idnumberfeatured_onlybooleanlimitnumberoffsetnumberread_strategy_infoGet full detail for a specific LP strategy by ID: includes APY per range width (narrower range = higher APY but more rebalancing cost/risk), pool info, and configuration. Use read_strategy_list to discover strategy IDs. All APY values are decimal fractions (1.0 = 100%, 0.05 =...2 params
Get full detail for a specific LP strategy by ID: includes APY per range width (narrower range = higher APY but more rebalancing cost/risk), pool info, and configuration. Use read_strategy_list to discover strategy IDs. All APY values are decimal fractions (1.0 = 100%, 0.05 =...
chain_idnumberstrategy_id*numberread_strategy_recommendationGet a rebalancing recommendation for an Arcadia account: suggests asset changes to optimize yield. Uses 1d APY (not 7d like read_strategy_list), so recommended strategies may differ from the list ranking. APY values are decimal fractions (0.05 = 5%). weekly_earning_difference...2 params
Get a rebalancing recommendation for an Arcadia account: suggests asset changes to optimize yield. Uses 1d APY (not 7d like read_strategy_list), so recommended strategies may differ from the list ranking. APY values are decimal fractions (0.05 = 5%). weekly_earning_difference...
account_address*stringchain_idnumberread_point_leaderboardGet the Arcadia points leaderboard (paginated). For a specific wallet's points balance, use read_wallet_points.2 params
Get the Arcadia points leaderboard (paginated). For a specific wallet's points balance, use read_wallet_points.
limitnumberoffsetnumberread_guidesGet Arcadia workflow guides and reference documentation. Call this before multi-step workflows (opening LP positions, enabling automation, closing positions) or when you need contract addresses, asset manager addresses, or strategy parameters. Topics: overview (addresses + too...1 params
Get Arcadia workflow guides and reference documentation. Call this before multi-step workflows (opening LP positions, enabling automation, closing positions) or when you need contract addresses, asset manager addresses, or strategy parameters. Topics: overview (addresses + too...
topicstringoverview · automation · strategies · selectionread_wallet_balancesGet native ETH and ERC20 token balances for a wallet address. Reads directly from chain via RPC multicall. Use before write_account_add_liquidity or write_account_deposit to verify the wallet has sufficient tokens. Returns both raw balance (smallest unit/wei) and formatted (hu...3 params
Get native ETH and ERC20 token balances for a wallet address. Reads directly from chain via RPC multicall. Use before write_account_add_liquidity or write_account_deposit to verify the wallet has sufficient tokens. Returns both raw balance (smallest unit/wei) and formatted (hu...
chain_idnumbertoken_addresses*arraywallet_address*stringread_wallet_allowancesCheck ERC20 token allowances for a spender address. Use before write_wallet_approve to avoid redundant approvals: skip approving if the current allowance is already sufficient.4 params
Check ERC20 token allowances for a spender address. Use before write_wallet_approve to avoid redundant approvals: skip approving if the current allowance is already sufficient.
chain_idnumberowner_address*stringspender_address*stringtoken_addresses*arrayread_wallet_accountsList all Arcadia accounts owned by a wallet address. Returns a summary of each account (address, name). Call read_account_info with a specific account_address for full details like health factor, collateral, and debt.2 params
List all Arcadia accounts owned by a wallet address. Returns a summary of each account (address, name). Call read_account_info with a specific account_address for full details like health factor, collateral, and debt.
chain_idnumberwallet_address*stringread_wallet_pointsGet Arcadia points balance for a specific wallet address.1 params
Get Arcadia points balance for a specific wallet address.
wallet_address*stringread_asset_manager_intentsList the automation intents Arcadia supports, with the parameters each one accepts. Pass account_address to also get per-account availability: which intents can be enabled right now and, for any that cannot, the compatibility rule blocking it. Pass position_id as well to scope...3 params
List the automation intents Arcadia supports, with the parameters each one accepts. Pass account_address to also get per-account availability: which intents can be enabled right now and, for any that cannot, the compatibility rule blocking it. Pass position_id as well to scope...
account_addressstringchain_idnumberposition_idintegerread_asset_manager_currentRead which asset managers are currently enabled on an account, with their decoded on-chain configuration. Returns the active managers (address, protocol, initiator, decoded strategy metadata, slippage and value-loss caps, fee recipient), the intents they map to, and Merkl clai...2 params
Read which asset managers are currently enabled on an account, with their decoded on-chain configuration. Returns the active managers (address, protocol, initiator, decoded strategy metadata, slippage and value-loss caps, fee recipient), the intents they map to, and Merkl clai...
account_address*stringchain_idnumberread_account_aero_upgradeWhich Arcadia accounts have something to upgrade to Aero (MetadexCL V1): Slipstream V1 to V3 positions (Aerodrome on Base, Velodrome on Optimism, staked or not) and old AERO. Pass wallet_address for every account of a wallet, or account_address for one. Per account: status (re...3 params
Which Arcadia accounts have something to upgrade to Aero (MetadexCL V1): Slipstream V1 to V3 positions (Aerodrome on Base, Velodrome on Optimism, staked or not) and old AERO. Pass wallet_address for every account of a wallet, or account_address for one. Per account: status (re...
account_addressstringchain_idnumberwallet_addressstringwrite_account_createBuild an unsigned transaction to create a new Arcadia account via the Factory contract. account_version: 3 with creditor → V3 margin account (can borrow/leverage). account_version: 0 or 4 → V4 spot account (no borrowing, creditor is ignored, any ERC20 allowed). Returns the pre...5 params
Build an unsigned transaction to create a new Arcadia account via the Factory contract. account_version: 3 with creditor → V3 margin account (can borrow/leverage). account_version: 0 or 4 → V4 spot account (no borrowing, creditor is ignored, any ERC20 allowed). Returns the pre...
account_versionnumberchain_idnumbercreditorstringsalt*numberwallet_address*stringwrite_account_depositBuild an unsigned transaction to deposit assets into an Arcadia account as collateral. Supports ERC20 tokens and ERC721 NFTs (LP positions). NOT needed before write_account_add_liquidity: that tool deposits from wallet atomically. Ensure the account is approved first (call rea...7 params
Build an unsigned transaction to deposit assets into an Arcadia account as collateral. Supports ERC20 tokens and ERC721 NFTs (LP positions). NOT needed before write_account_add_liquidity: that tool deposits from wallet atomically. Ensure the account is approved first (call rea...
account_address*stringaccount_versionnumberasset_addresses*arrayasset_amounts*arrayasset_idsarrayasset_typesarraychain_idnumberwrite_account_withdrawBuild an unsigned transaction to withdraw assets from an Arcadia account to the owner's wallet. Only the account owner can withdraw. Will revert if the account has debt and withdrawal would make it undercollateralized. Does not support max_uint256: pass exact amounts from read...7 params
Build an unsigned transaction to withdraw assets from an Arcadia account to the owner's wallet. Only the account owner can withdraw. Will revert if the account has debt and withdrawal would make it undercollateralized. Does not support max_uint256: pass exact amounts from read...
account_address*stringaccount_versionnumberasset_addresses*arrayasset_amounts*arrayasset_idsarrayasset_typesarraychain_idnumberwrite_account_borrowBuild an unsigned transaction to borrow from an Arcadia lending pool against account collateral. NOT needed for leveraged LP: write_account_add_liquidity handles borrowing internally when leverage > 0. Only works with margin accounts (created with a creditor/lending pool). Spo...5 params
Build an unsigned transaction to borrow from an Arcadia lending pool against account collateral. NOT needed for leveraged LP: write_account_add_liquidity handles borrowing internally when leverage > 0. Only works with margin accounts (created with a creditor/lending pool). Spo...
account_address*stringamount*stringchain_idnumberpool_address*stringto*stringwrite_account_repayRepay debt to an Arcadia lending pool using tokens from the wallet (requires ERC20 allowance). To repay using account collateral instead (no wallet tokens needed), use write_account_deleverage. Check allowance first (read_wallet_allowances), then approve the pool if needed (wr...4 params
Repay debt to an Arcadia lending pool using tokens from the wallet (requires ERC20 allowance). To repay using account collateral instead (no wallet tokens needed), use write_account_deleverage. Check allowance first (read_wallet_allowances), then approve the pool if needed (wr...
account_address*stringamount*stringchain_idnumberpool_address*stringwrite_account_add_liquidityMulti-step flash-action: atomically combines [deposit from wallet] + [use account collateral] + [swap to optimal ratio] + [mint LP] + [borrow if leveraged] in ONE transaction. Do NOT call write_account_deposit separately. Capital sources: wallet tokens (deposits array), existi...9 params
Multi-step flash-action: atomically combines [deposit from wallet] + [use account collateral] + [swap to optimal ratio] + [mint LP] + [borrow if leveraged] in ONE transaction. Do NOT call write_account_deposit separately. Capital sources: wallet tokens (deposits array), existi...
accept_price_checksarrayaccount_address*stringchain_idnumberdepositsarrayleveragenumberpositions*arrayslippagenumberuse_account_assetsbooleanwallet_address*stringwrite_account_remove_liquidityFlash-action: PARTIALLY decreases liquidity from an LP position. The position remains open with reduced liquidity; underlying tokens stay in the account. For FULL position exit (burn LP + swap + repay + withdraw), use write_account_close instead: it batches everything into one...5 params
Flash-action: PARTIALLY decreases liquidity from an LP position. The position remains open with reduced liquidity; underlying tokens stay in the account. For FULL position exit (burn LP + swap + repay + withdraw), use write_account_close instead: it batches everything into one...
account_address*stringadjustment*stringasset_address*stringasset_id*numberchain_idnumberwrite_account_swapFlash-action: swaps assets within an Arcadia account in one atomic transaction. The backend finds the optimal swap route. NOTE: If you are closing a position (swap + repay + withdraw), prefer write_account_close which batches everything atomically. Only use this tool for stand...6 params
Flash-action: swaps assets within an Arcadia account in one atomic transaction. The backend finds the optimal swap route. NOTE: If you are closing a position (swap + repay + withdraw), prefer write_account_close which batches everything atomically. Only use this tool for stand...
account_address*stringamount_in*stringasset_from*stringasset_to*stringchain_idnumberslippagenumberwrite_account_deleverageMulti-step flash-action: sells account collateral to the debt token and repays in one atomic transaction: no wallet tokens needed. To repay from wallet tokens instead, use write_account_repay. NOTE: If you are closing a position (remove LP + swap + repay + withdraw), prefer wr...7 params
Multi-step flash-action: sells account collateral to the debt token and repays in one atomic transaction: no wallet tokens needed. To repay from wallet tokens instead, use write_account_repay. NOTE: If you are closing a position (remove LP + swap + repay + withdraw), prefer wr...
account_address*stringamount_in*stringasset_from*stringchain_idnumbercreditor*stringnumeraire*stringslippagenumberwrite_account_stakeFlash-action: stake, unstake, or claim rewards for an LP position in one atomic transaction. Use the `action` parameter to select the operation. `asset_address` is the position manager contract: pass the non-staked PM address when staking, or the staked PM address when unstaki...5 params
Flash-action: stake, unstake, or claim rewards for an LP position in one atomic transaction. Use the `action` parameter to select the operation. `asset_address` is the position manager contract: pass the non-staked PM address when staking, or the staked PM address when unstaki...
account_address*stringaction*stringstake · unstake · claimasset_address*stringasset_id*numberchain_idnumberwrite_account_closeAtomic flash-action that closes an Arcadia account position in ONE transaction. Combines up to 3 steps atomically: [burn LP position] + [swap all tokens to a single target asset] + [repay debt]. Tokens remain in the account after closing: use write_account_withdraw to send the...6 params
Atomic flash-action that closes an Arcadia account position in ONE transaction. Combines up to 3 steps atomically: [burn LP position] + [swap all tokens to a single target asset] + [repay debt]. Tokens remain in the account after closing: use write_account_withdraw to send the...
account_address*stringassets*arraychain_idnumberclose_lp_onlybooleanreceive_assetsarrayslippagenumberwrite_account_aero_upgradeUpgrade one Arcadia account to Aero (MetadexCL V1) in one flashAction: every Slipstream V1/V2/V3 position (dex_protocol slipstream*, staked or not, see read_account_info) moves to the Aero CL pool with the same pair and variant at the same range and tick spacing (when Aero has...6 params
Upgrade one Arcadia account to Aero (MetadexCL V1) in one flashAction: every Slipstream V1/V2/V3 position (dex_protocol slipstream*, staked or not, see read_account_info) moves to the Aero CL pool with the same pair and variant at the same range and tick spacing (when Aero has...
account_addressstringaccountsarraychain_idnumberchoicesarraymin_blockintegerslippageintegerwrite_wallet_approveBuild an unsigned approval transaction. For ERC20 tokens: generates approve(spender, amount). For ERC721/ERC1155 NFTs (e.g. LP positions): generates setApprovalForAll(operator, true). Required before write_account_deposit or write_account_add_liquidity (when depositing from wa...5 params
Build an unsigned approval transaction. For ERC20 tokens: generates approve(spender, amount). For ERC721/ERC1155 NFTs (e.g. LP positions): generates setApprovalForAll(operator, true). Required before write_account_deposit or write_account_add_liquidity (when depositing from wa...
amountstringasset_typestringerc20 · erc721 · erc1155default: erc20chain_idnumberspender_address*stringtoken_address*stringwrite_wallet_upgrade_veloUpgrade VELO held in a wallet on Optimism to the new AERO on Base: ordered unsigned wallet transactions from owner_address, an approve when the allowance is short, then depositLiquid on the Velodrome migration with the Hyperlane fee as value. 0.044 new AERO per VELO arrives at...3 params
Upgrade VELO held in a wallet on Optimism to the new AERO on Base: ordered unsigned wallet transactions from owner_address, an approve when the allowance is short, then depositLiquid on the Velodrome migration with the Hyperlane fee as value. 0.044 new AERO per VELO arrives at...
amountstringchain_idnumberowner_address*stringwrite_pool_depositBuild an unsigned deposit transaction into an Arcadia lending tranche (ERC-4626). Lenders deposit the pool's underlying asset (USDC/WETH/cbBTC) and receive tranche shares that accrue interest from borrowers. Requires prior ERC-20 approval to the tranche (see write_wallet_appro...4 params
Build an unsigned deposit transaction into an Arcadia lending tranche (ERC-4626). Lenders deposit the pool's underlying asset (USDC/WETH/cbBTC) and receive tranche shares that accrue interest from borrowers. Requires prior ERC-20 approval to the tranche (see write_wallet_appro...
assets*stringchain_idnumberreceiver*stringtranche_address*stringwrite_pool_redeemBuild an unsigned redeem transaction to withdraw from an Arcadia lending tranche (ERC-4626). Burns tranche shares and returns the corresponding amount of underlying asset, including accrued interest. The owner must be the shares holder; receiver is where the underlying asset i...5 params
Build an unsigned redeem transaction to withdraw from an Arcadia lending tranche (ERC-4626). Burns tranche shares and returns the corresponding amount of underlying asset, including accrued interest. The owner must be the shares holder; receiver is where the underlying asset i...
chain_idnumberowner*stringreceiver*stringshares*stringtranche_address*stringwrite_account_automationsConfigure an account's automations from a list of intents and return the unsigned setAssetManagers transaction. The backend resolves which asset managers each intent needs, validates that the combination is compatible, encodes the metadata and builds the calldata, so you descr...11 params
Configure an account's automations from a list of intents and return the unsigned setAssetManagers transaction. The backend resolves which asset managers each intent needs, validates that the combination is compatible, encodes the metadata and builds the calldata, so you descr...
account_address*stringchain_idnumberintents*arrayis_stakedbooleanmodestringsave · previewdefault: saveownerstringposition_idintegerprotocolstringslipstream_v1 · slipstream_v2 · slipstream_v3 · uniswap_v3 · uniswap_v4 · metadexcl_v1reward_tokensarraytoken0stringtoken1stringwrite_account_automations_deltaApply an explicit change to an account's automations and return the unsigned setAssetManagers transaction. Unlike write_account_automations this is a delta, not a full desired state: automations you do not mention are left untouched. Use it to switch one automation on or off w...11 params
Apply an explicit change to an account's automations and return the unsigned setAssetManagers transaction. Unlike write_account_automations this is a delta, not a full desired state: automations you do not mention are left untouched. Use it to switch one automation on or off w...
account_address*stringchain_idnumberdisablearrayenablearrayis_stakedbooleanownerstringposition_idintegerprotocolstringslipstream_v1 · slipstream_v2 · slipstream_v3 · uniswap_v3 · uniswap_v4 · metadexcl_v1reward_tokensarraytoken0stringtoken1stringdev_sendDEV ONLY: Sign and broadcast an unsigned transaction using a local private key (PK env var). For production, use a dedicated wallet MCP server (Fireblocks, Safe, Turnkey, etc.) instead of this tool. Takes the transaction object returned by any write_* tool and submits it onchain.4 params
DEV ONLY: Sign and broadcast an unsigned transaction using a local private key (PK env var). For production, use a dedicated wallet MCP server (Fireblocks, Safe, Turnkey, etc.) instead of this tool. Takes the transaction object returned by any write_* tool and submits it onchain.
chain_idnumberdata*stringto*stringvaluestringSponsors
Configuration
RPC_URL_BASEsecretRPC URL for Base (8453). Falls back to public RPC if not set.
RPC_URL_UNICHAINsecretRPC URL for Unichain (130). Falls back to public RPC if not set.
RPC_URL_OPTIMISMsecretRPC URL for Optimism (10). Falls back to public RPC if not set.
RPC_URL_ROBINHOODsecretRPC URL for Robinhood (4663). Falls back to public RPC if not set.
TRANSPORTTransport mode: stdio (default) or http.
PORTHTTP listen port (default 3000). Only used when TRANSPORT=http.
ALLOWED_ORIGINSComma-separated allowed Origin headers for CORS and DNS rebinding protection. Only used when TRANSPORT=http.
RATE_LIMIT_RPMMax requests per minute per client IP (default 600). Only used when TRANSPORT=http.
Readme
Details
- Repository
- github.com/arcadia-finance/mcp-server
- Website
- arcadia.finance
- Package
@arcadia-finance/mcp-server- Transport
- STDIO, HTTP
- Auth
- Required
- Registry
- MCP registry, active
- Resources
- 4
- Prompts
- 4
- Tools verified
- Nov 6, 2026