arcadia-finance avatar

Arcadia Finance

arcadia-finance/mcp-server

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-finance

Run 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/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 38 tools

Verified 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...

Parameters* required
account_address*string
Arcadia account address
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
read_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...

Parameters* required
account_address*string
Arcadia account address
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
daysnumber
Number of days of history (default 14)default: 14
read_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...

Parameters* required
account_address*string
Arcadia account address
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
read_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.

Parameters* required
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
read_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.

Parameters* required
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
daysnumber
Number of days of APY historydefault: 14
pool_address*string
Pool address
read_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.

Parameters* required
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
searchstring
Filter assets by symbol (case-insensitive substring match)
read_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.

Parameters* required
asset_addresses*string
Single address or comma-separated addresses for price lookup
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
read_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...

Parameters* required
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
featured_onlyboolean
Return only featured/curated strategies (recommended)default: false
limitnumber
Max strategies to return (default 25)default: 25
offsetnumber
Skip first N strategies for paginationdefault: 0
read_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 =...

Parameters* required
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
strategy_id*number
Strategy ID
read_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...

Parameters* required
account_address*string
Arcadia account address
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
read_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.

Parameters* required
limitnumber
Max leaderboard entries to return (default 25)default: 25
offsetnumber
Skip first N leaderboard entries for paginationdefault: 0
read_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...

Parameters* required
topicstring
overview = addresses + tool catalog, automation = intent-based automation setup, strategies = step-by-step LP templates, selection = pool evaluation + leverage sizingone of overview · automation · strategies · selection
read_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...

Parameters* required
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
token_addresses*array
ERC20 token contract addresses to check
wallet_address*string
Wallet address to check balances for
read_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.

Parameters* required
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
owner_address*string
Token owner address (the wallet granting approval)
spender_address*string
Spender address to check allowance for (e.g. Arcadia account address)
token_addresses*array
ERC20 token contract addresses to check
read_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.

Parameters* required
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
wallet_address*string
Wallet address to list accounts for
read_wallet_pointsGet Arcadia points balance for a specific wallet address.1 params

Get Arcadia points balance for a specific wallet address.

Parameters* required
wallet_address*string
Wallet address to get points for
read_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...

Parameters* required
account_addressstring
Arcadia account address. Include it to get live per-account availability.
chain_idnumber
Chain id: 8453 Base, 130 Unichain, 10 Optimismdefault: 8453
position_idinteger
LP position (NFT) id to scope availability to. Requires account_address.
read_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...

Parameters* required
account_address*string
Arcadia account address
chain_idnumber
Chain id: 8453 Base, 130 Unichain, 10 Optimismdefault: 8453
read_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...

Parameters* required
account_addressstring
One Arcadia account to check
chain_idnumber
Chain ID: 8453 (Base), 10 (Optimism) or 4663 (Robinhood, nothing to upgrade)default: 8453
wallet_addressstring
Wallet whose accounts to check. Pass this or account_address, not both.
write_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...

Parameters* required
account_versionnumber
Account version: 0 = latest (V4 spot), 3 = margin (can borrow). 1/2 = legacy.default: 0
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
creditorstring
Lending pool address for V3 margin account. Ignored for V4 spot accounts (version 0 or 4).
salt*number
Unique salt (uint32) for deterministic account address
wallet_address*string
Wallet address that will send the transaction (tx.origin, needed for address prediction)
write_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...

Parameters* required
account_address*string
Arcadia account address
account_versionnumber
Override account version (3 or 4). Auto-detected on-chain if omitted.
asset_addresses*array
Token contract addresses to deposit
asset_amounts*array
Amounts in raw units/wei, one per asset
asset_idsarray
Token IDs: 0 for ERC20, NFT token ID for ERC721
asset_typesarray
V4 only. Asset types per asset: 1=ERC20, 2=ERC721, 3=ERC1155. If omitted, inferred from asset_ids (non-zero → ERC721).
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
write_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...

Parameters* required
account_address*string
Arcadia account address
account_versionnumber
Override account version (3 or 4). Auto-detected on-chain if omitted.
asset_addresses*array
Token contract addresses to withdraw
asset_amounts*array
Amounts in raw units/wei, one per asset
asset_idsarray
Token IDs: 0 for ERC20, NFT token ID for ERC721
asset_typesarray
V4 only. Asset types per asset: 1=ERC20, 2=ERC721, 3=ERC1155. If omitted, inferred from asset_ids (non-zero → ERC721).
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
write_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...

Parameters* required
account_address*string
Arcadia account address used as collateral
amount*string
Amount in raw units
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
pool_address*string
Lending pool: LP_WETH=0x803ea69c7e87D1d6C86adeB40CB636cC0E6B98E2, LP_USDC=0x3ec4a293Fb906DD2Cd440c20dECB250DeF141dF1, LP_CBBTC=0xa37E9b4369dc20940009030BfbC2088F09645e3B
to*string
Address to receive borrowed tokens
write_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...

Parameters* required
account_address*string
Arcadia account address with debt
amount*string
Amount in raw units, or 'max_uint256' to repay all debt in full
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
pool_address*string
Lending pool address. Base: LP_WETH=0x803ea69c7e87D1d6C86adeB40CB636cC0E6B98E2, LP_USDC=0x3ec4a293Fb906DD2Cd440c20dECB250DeF141dF1, LP_CBBTC=0xa37E9b4369dc20940009030BfbC2088F09645e3B
write_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...

Parameters* required
accept_price_checksarray
The accept_price_checks list returned with the price warnings of a previous call, passed unchanged and only after the user has explicitly confirmed those warnings. Never set it on the first call.
account_address*string
Arcadia account address
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
depositsarray
Wallet tokens to deposit. Approve each token first (write_wallet_approve). Omit to use only account collateral.
leveragenumber
0 = no borrow, 2 = 2x leverage. Margin accounts only.default: 0
positions*array
LP positions to mint. For a single position, pass one entry.
slippagenumber
Basis points, 100 = 1%default: 100
use_account_assetsboolean
If true, use ALL existing account collateral for LP minting. Fetched automatically.default: false
wallet_address*string
Wallet address of the account owner
write_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...

Parameters* required
account_address*string
Arcadia account address
adjustment*string
Liquidity amount to remove (raw uint128 value as string). Must be less than total liquidity: for full removal use write_account_close.
asset_address*string
Position manager contract
asset_id*number
NFT token ID
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
write_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...

Parameters* required
account_address*string
Arcadia account address
amount_in*string
Raw units
asset_from*string
Token address to swap from
asset_to*string
Token address to swap to
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
slippagenumber
Basis points, 100 = 1%default: 100
write_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...

Parameters* required
account_address*string
Arcadia account address
amount_in*string
Collateral amount to sell (raw units)
asset_from*string
Collateral token to sell
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
creditor*string
Lending pool address
numeraire*string
Debt token address
slippagenumber
Basis points, 100 = 1%default: 100
write_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...

Parameters* required
account_address*string
Arcadia account address
action*string
Action to performone of stake · unstake · claim
asset_address*string
Position manager contract address
asset_id*number
NFT token ID of the LP position
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
write_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...

Parameters* required
account_address*string
Arcadia account address
assets*array
Assets to close/sell from the account. IMPORTANT: For LP positions (NFTs), always use amount='1' and decimals=1: do NOT pass the liquidity amount. asset_address = position manager, asset_id = NFT t...
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
close_lp_onlyboolean
true = only burn LP positions, leave underlying tokens in account. false = full close (burn + swap + repay).default: false
receive_assetsarray
Target assets to receive after closing. For a single target, pass one entry. Required when close_lp_only=false. Omit for close_lp_only=true.
slippagenumber
Basis points, 100 = 1%default: 100
write_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...

Parameters* required
account_addressstring
Arcadia account to upgrade. Pass this or accounts, not both.
accountsarray
Up to 10 Arcadia accounts of one owner: one plan and transaction each
chain_idnumber
Chain ID: 8453 (Base), 10 (Optimism) or 4663 (Robinhood, nothing to upgrade)default: 8453
choicesarray
Pool picks for positions with status choose (or waiting with a selectable option), from a previous call's options (disabled_reason null)
min_blockinteger
Block of the transaction you just confirmed, so the plan reads state at or after it
slippageinteger
Price band the mint accepts, in bps. Omit for the backend default: 150, or 500 when the owner is a contract (a Safe).
write_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...

Parameters* required
amountstring
ERC20 only: amount in raw units, or 'max_uint256' for unlimited. Ignored for NFTs.default: max_uint256
asset_typestring
Token type: 'erc20' (default) for fungible tokens, 'erc721' or 'erc1155' for NFTs (LP positions)one of erc20 · erc721 · erc1155default: erc20
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
spender_address*string
Address being approved — use the Arcadia account address for deposits
token_address*string
Token contract address to approve
write_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...

Parameters* required
amountstring
Raw units (18 decimals). Omit for the wallet's full VELO balance.
chain_idnumber
Chain ID: 10 (Optimism)default: 10
owner_address*string
Wallet holding the VELO on Optimism; receives the AERO on Base
write_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...

Parameters* required
assets*string
Amount of underlying asset to deposit, in raw units (e.g. '1000000' = 1 USDC since USDC has 6 decimals).
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
receiver*string
Address that receives the minted tranche shares. Usually the depositor's own wallet.
tranche_address*string
Tranche contract address (ERC-4626 vault). Get this from read_pool_list: each pool's `tranches[0].address`.
write_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...

Parameters* required
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
owner*string
Address that owns the tranche shares being burned. Normally the signer's own wallet.
receiver*string
Address that receives the underlying asset. Usually the owner's own wallet.
shares*string
Amount of tranche shares to burn, in raw units. To redeem everything, use the owner's full share balance.
tranche_address*string
Tranche contract address (ERC-4626 vault). Get this from read_pool_list: each pool's `tranches[0].address`.
write_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...

Parameters* required
account_address*string
Arcadia account address
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
intents*array
Complete desired automation state. In save mode anything omitted is disabled, so include every automation to keep. A single intent with enabled: false disables all automations.
is_stakedboolean
Whether the LP position is staked. Implied by a staked_* protocol value.
modestring
save diffs against on-chain state and returns a signable transaction that also disables anything omitted. preview resolves and validates only, returning a plan and no transaction.one of save · previewdefault: save
ownerstring
Account owner EOA. Used to resolve wallet payout targets.
position_idinteger
LP position (NFT) id, as listed in assets[] by read_account_info. Supply this and the backend fetches protocol, staked flag, tokens and reward tokens for you. Strongly preferred over passing the po...
protocolstring
Position's DEX protocol. Only needed when position_id is omitted. Accepts the dex_protocol values the read tools return (slipstream, staked_slipstream_v3, uniV3, metadexcl_v1, staked_metadexcl_v1,...one of slipstream_v1 · slipstream_v2 · slipstream_v3 · uniswap_v3 · uniswap_v4 · metadexcl_v1
reward_tokensarray
Staking reward token addresses.
token0string
Pool token0 address.
token1string
Pool token1 address.
write_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...

Parameters* required
account_address*string
Arcadia account address
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
disablearray
Asset-manager addresses to switch off, as returned by read_asset_manager_current.
enablearray
Intents to switch on. Leave empty when only disabling. This array cannot turn anything off: an entry with enabled: false is rejected, use `disable` instead.
is_stakedboolean
Whether the LP position is staked. Implied by a staked_* protocol value.
ownerstring
Account owner EOA. Used to resolve wallet payout targets.
position_idinteger
LP position (NFT) id, as listed in assets[] by read_account_info. Supply this and the backend fetches protocol, staked flag, tokens and reward tokens for you. Strongly preferred over passing the po...
protocolstring
Position's DEX protocol. Only needed when position_id is omitted. Accepts the dex_protocol values the read tools return (slipstream, staked_slipstream_v3, uniV3, metadexcl_v1, staked_metadexcl_v1,...one of slipstream_v1 · slipstream_v2 · slipstream_v3 · uniswap_v3 · uniswap_v4 · metadexcl_v1
reward_tokensarray
Staking reward token addresses.
token0string
Pool token0 address.
token1string
Pool token1 address.
dev_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.

Parameters* required
chain_idnumber
Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)default: 8453
data*string
Encoded calldata (hex)
to*string
Target contract address
valuestring
Value in wei (default '0')default: 0

Sponsors

Configuration

RPC_URL_BASEsecret

RPC URL for Base (8453). Falls back to public RPC if not set.

RPC_URL_UNICHAINsecret

RPC URL for Unichain (130). Falls back to public RPC if not set.

RPC_URL_OPTIMISMsecret

RPC URL for Optimism (10). Falls back to public RPC if not set.

RPC_URL_ROBINHOODsecret

RPC URL for Robinhood (4663). Falls back to public RPC if not set.

TRANSPORT

Transport mode: stdio (default) or http.

PORT

HTTP listen port (default 3000). Only used when TRANSPORT=http.

ALLOWED_ORIGINS

Comma-separated allowed Origin headers for CORS and DNS rebinding protection. Only used when TRANSPORT=http.

RATE_LIMIT_RPM

Max requests per minute per client IP (default 600). Only used when TRANSPORT=http.

Readme

Arcadia Finance MCP Server

npm npm downloads License: AGPL-3.0 TypeScript MCP MCP Badge arcadia-finance-mcp-server MCP server mcptry Arcadia Finance MCP on mcprush


View the full README on GitHub

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

More from arcadia-finance