CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Arcadia Finance

arcadia-finance/mcp-server
38 toolsauthSTDIO, HTTPregistry active
Summary

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.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

Public tool metadata for what this MCP can expose to an agent.

38 tools
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
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
account_addressstring
Arcadia account address
read.account.historyGet historical collateral and debt values for an Arcadia account over time. Returns a time series of snapshots (timestamp, collateral_value, debt_value, net_value). Each value is the account's net value in USD (human-readable, not raw units). Useful for charting account perfor...3 params

Get historical collateral and debt values for an Arcadia account over time. Returns a time series of snapshots (timestamp, collateral_value, debt_value, net_value). Each value is the account's net value in USD (human-readable, not raw units). Useful for charting account perfor...

Parameters* required
daysnumber
Number of days of history (default 14)default: 14
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
account_addressstring
Arcadia account address
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
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
account_addressstring
Arcadia account address
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) or 130 (Unichain)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
daysnumber
Number of days of APY historydefault: 14
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
pool_addressstring
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
searchstring
Filter assets by symbol (case-insensitive substring match)
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
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
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
asset_addressesstring
Single address or comma-separated addresses for price lookup
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
limitnumber
Max strategies to return (default 25)default: 25
offsetnumber
Skip first N strategies for paginationdefault: 0
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
featured_onlyboolean
Return only featured/curated strategies (recommended)default: false
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) or 130 (Unichain)default: 8453
strategy_idnumber
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
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
account_addressstring
Arcadia account address
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 = rebalancer/compounder/claimer 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) or 130 (Unichain)default: 8453
wallet_addressstring
Wallet address to check balances for
token_addressesarray
ERC20 token contract addresses to check
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) or 130 (Unichain)default: 8453
owner_addressstring
Token owner address (the wallet granting approval)
spender_addressstring
Spender address to check allowance for (e.g. Arcadia account address)
token_addressesarray
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) or 130 (Unichain)default: 8453
wallet_addressstring
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_addressstring
Wallet address to get points for
read.asset_manager.intentsList all available automation intents with their tool names, required parameters, and supported chains. Use this to discover which automations can be configured and what each one does. Each intent has a corresponding write.asset_manager.{id} tool that returns encoded args. To...1 params

List all available automation intents with their tool names, required parameters, and supported chains. Use this to discover which automations can be configured and what each one does. Each intent has a corresponding write.asset_manager.{id} tool that returns encoded args. To...

Parameters* required
chain_idnumber
Filter to automations available on this chain. Omit to see all.
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
saltnumber
Unique salt (uint32) for deterministic account address
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
creditorstring
Lending pool address for V3 margin account. Ignored for V4 spot accounts (version 0 or 4).
wallet_addressstring
Wallet address that will send the transaction (tx.origin, needed for address prediction)
account_versionnumber
Account version: 0 = latest (V4 spot), 3 = margin (can borrow). 1/2 = legacy.default: 0
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 re...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 re...

Parameters* required
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
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).
asset_amountsarray
Amounts in raw units/wei, one per asset
account_addressstring
Arcadia account address
account_versionnumber
Override account version (3 or 4). Auto-detected on-chain if omitted.
asset_addressesarray
Token contract addresses to deposit
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 rea...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 rea...

Parameters* required
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
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).
asset_amountsarray
Amounts in raw units/wei, one per asset
account_addressstring
Arcadia account address
account_versionnumber
Override account version (3 or 4). Auto-detected on-chain if omitted.
asset_addressesarray
Token contract addresses to withdraw
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). Sp...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). Sp...

Parameters* required
tostring
Address to receive borrowed tokens
amountstring
Amount in raw units
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
pool_addressstring
Lending pool: LP_WETH=0x803ea69c7e87D1d6C86adeB40CB636cC0E6B98E2, LP_USDC=0x3ec4a293Fb906DD2Cd440c20dECB250DeF141dF1, LP_CBBTC=0xa37E9b4369dc20940009030BfbC2088F09645e3B
account_addressstring
Arcadia account address used as collateral
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
amountstring
Amount in raw units, or 'max_uint256' to repay all debt in full
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
pool_addressstring
Lending pool address. Base: LP_WETH=0x803ea69c7e87D1d6C86adeB40CB636cC0E6B98E2, LP_USDC=0x3ec4a293Fb906DD2Cd440c20dECB250DeF141dF1, LP_CBBTC=0xa37E9b4369dc20940009030BfbC2088F09645e3B
account_addressstring
Arcadia account address with debt
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...8 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
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)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
slippagenumber
Basis points, 100 = 1%default: 100
positionsarray
LP positions to mint. For a single position, pass one entry.
wallet_addressstring
Wallet address of the account owner
account_addressstring
Arcadia account address
use_account_assetsboolean
If true, use ALL existing account collateral for LP minting. Fetched automatically.default: false
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 on...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 on...

Parameters* required
asset_idnumber
NFT token ID
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
adjustmentstring
Liquidity amount to remove (raw uint128 value as string). Must be less than total liquidity — for full removal use write.account.close.
asset_addressstring
Position manager contract
account_addressstring
Arcadia account address
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
asset_tostring
Token address to swap to
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
slippagenumber
Basis points, 100 = 1%default: 100
amount_instring
Raw units
asset_fromstring
Token address to swap from
account_addressstring
Arcadia account address
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 w...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 w...

Parameters* required
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
creditorstring
Lending pool address
slippagenumber
Basis points, 100 = 1%default: 100
amount_instring
Collateral amount to sell (raw units)
numerairestring
Debt token address
asset_fromstring
Collateral token to sell
account_addressstring
Arcadia account address
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 unstak...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 unstak...

Parameters* required
actionstring
Action to performone of stake · unstake · claim
asset_idnumber
NFT token ID of the LP position
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
asset_addressstring
Position manager contract address
account_addressstring
Arcadia account address
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 th...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 th...

Parameters* required
assetsarray
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 token ID. For ERC20 tokens: asset_id = 0, amount = full balance in raw units, decimals = real token decimals. Get all values from read.account.info.
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
slippagenumber
Basis points, 100 = 1%default: 100
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.
account_addressstring
Arcadia account address
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
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
asset_typestring
Token type: 'erc20' (default) for fungible tokens, 'erc721' or 'erc1155' for NFTs (LP positions)one of erc20 · erc721 · erc1155default: erc20
token_addressstring
Token contract address to approve
spender_addressstring
Address being approved — use the Arcadia account address for deposits
write.asset_manager.rebalancerEncode args for the rebalancer automation. When the LP position goes out of range, Arcadia's bot repositions it centered on the current price. All pending fees and staking rewards are claimed and compounded into the new position. Strategy config: 'default' (all params at defau...10 params

Encode args for the rebalancer automation. When the LP position goes out of range, Arcadia's bot repositions it centered on the current price. All pending fees and staking rewards are claimed and compounded into the new position. Strategy config: 'default' (all params at defau...

Parameters* required
enabledboolean
True to enable, false to disabledefault: true
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
dex_protocolstring
DEX protocol of the LP position — used to resolve the correct asset manager address.one of slipstream · slipstream_v2 · staked_slipstream · staked_slipstream_v2 · uniV3 · uniV4
strategy_hookstring
Strategy hook address. Defaults to minimal hook. Only override for custom hooks.
compound_leftoversstring
What to reinvest after rebalance (default "all" = compound both)one of all · none · token0 · token1default: all
max_rebalance_timeinteger
Max seconds before forced rebalance (default 1e12 = effectively disabled)default: 1000000000000
min_rebalance_timeinteger
Min seconds between rebalances (default 3600 = 1 hour)default: 3600
trigger_lower_ratiointeger
Offset from tick_lower, as a fraction of the position's tick range, scaled by 1e6. trigger_tick_lower = tick_lower - tick_range * ratio. 0 = trigger at the boundary. Positive (e.g. 50000 = 5% of tick range): trigger tick is outside the position — price must travel further beyond the range before rebalance fires (delayed). Negative (e.g. -50000 = -5%): trigger tick is inside the position — rebalance fires while price is still within range (preemptive).default: 0
trigger_upper_ratiointeger
Offset from tick_upper, as a fraction of the position's tick range, scaled by 1e6. trigger_tick_upper = tick_upper + tick_range * ratio. 0 = trigger at the boundary. Positive (e.g. 50000 = 5% of tick range): trigger tick is outside the position — price must travel further beyond the range before rebalance fires (delayed). Negative (e.g. -50000 = -5%): trigger tick is inside the position — rebalance fires while price is still within range (preemptive).default: 0
optimal_token0_ratiointeger
Target token0 composition scaled by 1e6: 500000 = 50%, 750000 = 75%default: 500000
write.asset_manager.compounderEncode args for the standalone compounder automation. Claims accumulated LP trading fees and reinvests them back into the position (compound interest). LP fees only — does NOT claim staking rewards like AERO; use write.asset_manager.compounder_staked for staked positions earni...3 params

Encode args for the standalone compounder automation. Claims accumulated LP trading fees and reinvests them back into the position (compound interest). LP fees only — does NOT claim staking rewards like AERO; use write.asset_manager.compounder_staked for staked positions earni...

Parameters* required
enabledboolean
True to enable, false to disabledefault: true
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
dex_protocolstring
DEX protocol of the LP position — used to resolve the correct asset manager address.one of slipstream · slipstream_v2 · staked_slipstream · staked_slipstream_v2 · uniV3 · uniV4
write.asset_manager.compounder_stakedEncode args for compounder coupled with CowSwap for staked LP positions (e.g. staked Slipstream/Aerodrome). Staked positions earn staking emission rewards (e.g. AERO, OP, or any configured emission token) — not LP fees. Claims these staking rewards, swaps them to a target toke...5 params

Encode args for compounder coupled with CowSwap for staked LP positions (e.g. staked Slipstream/Aerodrome). Staked positions earn staking emission rewards (e.g. AERO, OP, or any configured emission token) — not LP fees. Claims these staking rewards, swaps them to a target toke...

Parameters* required
enabledboolean
True to enable, false to disabledefault: true
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
buy_tokenstring
Token address to buy — should be a major token in the pair (USDC, WETH, cbBTC)
sell_tokensarray
Token addresses to sell via CowSwap (typically [AERO] for staked positions)
dex_protocolstring
DEX protocol of the LP position — used to resolve the correct asset manager address.one of slipstream · slipstream_v2 · staked_slipstream · staked_slipstream_v2 · uniV3 · uniV4
write.asset_manager.yield_claimerEncode args for the standalone yield claimer automation. Periodically claims pending fees/emissions and sends them to a designated recipient (wallet, another account, or any address). Returns { asset_managers, statuses, datas } — pass to write.account.set_asset_managers. Combi...4 params

Encode args for the standalone yield claimer automation. Periodically claims pending fees/emissions and sends them to a designated recipient (wallet, another account, or any address). Returns { asset_managers, statuses, datas } — pass to write.account.set_asset_managers. Combi...

Parameters* required
enabledboolean
True to enable, false to disabledefault: true
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
dex_protocolstring
DEX protocol of the LP position — used to resolve the correct asset manager address.one of slipstream · slipstream_v2 · staked_slipstream · staked_slipstream_v2 · uniV3 · uniV4
fee_recipientstring
Address to receive claimed fees (wallet address or any destination)
write.asset_manager.yield_claimer_cowswapEncode args for yield claimer coupled with CowSwap. Claims LP fees, then swaps the claimed tokens to a target token via CowSwap batch auctions (MEV-protected). For staked LPs, sell_tokens is the staking reward token list (e.g. [AERO_address]). For non-staked LPs, sell_tokens i...6 params

Encode args for yield claimer coupled with CowSwap. Claims LP fees, then swaps the claimed tokens to a target token via CowSwap batch auctions (MEV-protected). For staked LPs, sell_tokens is the staking reward token list (e.g. [AERO_address]). For non-staked LPs, sell_tokens i...

Parameters* required
enabledboolean
True to enable, false to disabledefault: true
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
buy_tokenstring
Token address to receive after swap
sell_tokensarray
Token addresses to sell. Staked LP: [AERO]. Non-staked: [token0, token1] minus buy_token.
dex_protocolstring
DEX protocol of the LP position — used to resolve the correct asset manager address.one of slipstream · slipstream_v2 · staked_slipstream · staked_slipstream_v2 · uniV3 · uniV4
fee_recipientstring
Address to receive claimed fees
write.asset_manager.cow_swapperEncode args for standalone direct CowSwap mode. Enables the CowSwapper to swap any ERC20 → ERC20 via CoW Protocol batch auctions (MEV-protected). Unlike compounder_staked or yield_claimer_cowswap, this is NOT coupled to any other automation — each swap requires an additional s...2 params

Encode args for standalone direct CowSwap mode. Enables the CowSwapper to swap any ERC20 → ERC20 via CoW Protocol batch auctions (MEV-protected). Unlike compounder_staked or yield_claimer_cowswap, this is NOT coupled to any other automation — each swap requires an additional s...

Parameters* required
enabledboolean
True to enable, false to disabledefault: true
chain_idnumber
Chain ID: 8453 (Base)default: 8453
write.asset_manager.merkl_operatorEncode args for the Merkl operator automation. Claims external Merkl protocol incentive rewards into the account — additional rewards paid by token teams on top of regular LP fees. Enable when the pool has active Merkl campaigns (check APY breakdown in read.strategy.list). Alw...3 params

Encode args for the Merkl operator automation. Claims external Merkl protocol incentive rewards into the account — additional rewards paid by token teams on top of regular LP fees. Enable when the pool has active Merkl campaigns (check APY breakdown in read.strategy.list). Alw...

Parameters* required
enabledboolean
True to enable, false to disabledefault: true
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
reward_recipientstring
Address to receive Merkl rewards
write.account.set_asset_managersBuild an unsigned setAssetManagers transaction from encoded intent args. Takes the { asset_managers, statuses, datas } arrays returned by write.asset_manager.* intent tools and builds a single unsigned tx targeting the account. To combine multiple automations in one tx, concat...5 params

Build an unsigned setAssetManagers transaction from encoded intent args. Takes the { asset_managers, statuses, datas } arrays returned by write.asset_manager.* intent tools and builds a single unsigned tx targeting the account. To combine multiple automations in one tx, concat...

Parameters* required
datasarray
Encoded callback data from intent tools (hex strings)
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453
statusesarray
Enable/disable flags from intent tools
asset_managersarray
Asset manager addresses from intent tools
account_addressstring
Arcadia account address (V3 or V4)
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 onch...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 onch...

Parameters* required
tostring
Target contract address
datastring
Encoded calldata (hex)
valuestring
Value in wei (default '0')default: 0
chain_idnumber
Chain ID: 8453 (Base) or 130 (Unichain)default: 8453

Arcadia Finance MCP Server

npm npm downloads License: AGPL-3.0 TypeScript MCP smithery badge MCP Badge arcadia-finance-mcp-server MCP server

MCP server for Arcadia Finance, a platform for concentrated liquidity on Uniswap and Aerodrome with automated rebalancing, compounding, yield optimization, and leverage, or single-sided liquidity into lending pools. Read protocol data and build unsigned transactions for LP management, borrowing, deposits, and more.

Designed for AI agents (Claude, Cursor, etc.) to interact with Arcadia onchain.

Install

Install in VS Code Install in Cursor

Tools

Read Tools

ToolDescription
read.account.infoAccount overview: health factor, collateral, debt, positions, liquidation price, automation status.
read.account.historyHistorical account value over time.
read.account.pnlPnL and yield data for an account.
read.wallet.accountsList all Arcadia accounts owned by a wallet address.
read.wallet.balancesOn-chain ERC20 balances and native ETH for a wallet address.
read.wallet.allowancesCheck ERC20 token allowances for a spender. Use before write.wallet.approve to avoid redundant approvals.
read.wallet.pointsPoints balance for a specific wallet address.
read.asset.listSupported collateral assets with addresses, types, decimals.
read.asset.pricesUSD prices for one or more asset addresses.
read.pool.listAll lending pools: TVL, APY, utilization, liquidity.
read.pool.infoSingle pool detail with APY history over time.
read.point_leaderboardPaginated Arcadia points leaderboard.
read.strategy.listLP strategies with APY, underlyings, pool info. Supports featured filter and pagination.
read.strategy.infoFull detail for a specific LP strategy: APY per range width, pool config.
read.strategy.recommendationRebalancing recommendation for an account.
read.guidesReference guides: automation setup, strategy selection, strategy templates.
read.asset_manager.intentsAvailable automation intents with tool names, required params, and supported chains.

Write Tools

All write tools return unsigned transactions as { to, data, value, chainId }.

ToolDescription
write.wallet.approveApprove an ERC20 token for spending. Required before depositing into an account. Call read.wallet.allowances first to check if already approved.
write.pool.depositLend the pool's underlying asset into an ERC-4626 tranche to earn interest. Mints tranche shares to the receiver.
write.pool.redeemRedeem tranche shares back into the underlying asset (lender exit).
write.account.createCreate a new Arcadia account via Factory.
write.account.depositDeposit ERC20 tokens into an account.
write.account.withdrawWithdraw assets from an account.
write.account.borrowBorrow from a lending pool.
write.account.repayRepay debt to a lending pool from wallet.
write.account.add_liquidityFlash-action: deposit + swap + mint LP + optional leverage, atomically.
write.account.remove_liquidityRemove/decrease LP position liquidity.
write.account.swapSwap assets within an account (backend-routed).
write.account.deleverageRepay debt by selling collateral (swap + repay in one tx).
write.account.closeAtomic close: burn LP + swap + repay debt in one tx.
write.account.stakeStake, unstake, or claim rewards for LP positions.
write.asset_manager.rebalancerEncode rebalancer automation args (strategy config, triggers, compound mode).
write.asset_manager.compounderEncode standalone compounder args.
write.asset_manager.compounder_stakedEncode compounder + CowSwap coupled args (sell rewards, buy target token).
write.asset_manager.yield_claimerEncode yield claimer args (claim fees to recipient).
write.asset_manager.yield_claimer_cowswapEncode yield claimer + CowSwap coupled args.
write.asset_manager.cow_swapperEncode direct CowSwap mode args (Base only).
write.asset_manager.merkl_operatorEncode Merkl operator args (claim external rewards).
write.account.set_asset_managersBuild unsigned setAssetManagers tx from encoded intent args. Combine multiple intents by merging arrays.

Dev Tools

Always registered but requires PK env var to function.

ToolDescription
dev.sendSign and broadcast an unsigned transaction using a local private key (PK env var). Not for production — use a dedicated wallet MCP server instead.

Transaction Signing

All write tools return unsigned transactions as { to, data, value, chainId }. This server does NOT sign or broadcast — your agent or application is responsible for that.

Options

Wallet MCP servers (recommended for production): Pair this server with a wallet MCP server that handles signing:

Wallet MCPProviderModel
MCP Wallet SignerCommunityNon-custodial, routes to browser wallet (MetaMask, Rabby)
Coinbase AgentKitCoinbaseWallet-agnostic, supports multiple providers
Phantom MCPPhantomEmbedded wallet
Privy MCPPrivyWallet infrastructure
Safe MCPCommunityMulti-sig via Safe

Or use your existing wallet setup (Fireblocks, Dfns, Turnkey, Biconomy, Dynamic) and pass the unsigned tx object to your provider's signing method.

viem/ethers in your agent:

import { createWalletClient, http } from "viem";
import { privateKeyToAccount } from "viem/accounts";
import { base } from "viem/chains";

const account = privateKeyToAccount("0x...");
const client = createWalletClient({ account, chain: base, transport: http() });

// tx = result from any write.* tool
const hash = await client.sendTransaction(tx);

Built-in dev.send tool (development only): The server includes a dev-only signing tool that reads a private key from the PK environment variable. Set PK via a .env file or your MCP client config:

# .env in the server directory (never commit — already gitignored)
PK=0xYourPrivateKeyHex
RPC_URL_BASE=https://base-mainnet.g.alchemy.com/v2/your-key

The server loads .env automatically on startup. Works with any MCP client (Claude Desktop, Claude Code, VSCode, Cursor). MCP client env block settings take precedence if both are set.

Not for production — use a dedicated wallet MCP server (Fireblocks, Turnkey, Safe) instead.

Setup

Prerequisites: Node.js >= 22

yarn install
yarn build

Environment variables:

VariableRequiredDefaultTransportDescription
RPC_URL_BASENoPublic RPCBothRPC URL for Base (8453).
RPC_URL_UNICHAINNoPublic RPCBothRPC URL for Unichain (130).
RPC_URL_OPTIMISMNoPublic RPCBothRPC URL for Optimism (10).
PKNo—BothPrivate key (hex) for dev-only dev.send tool.
TRANSPORTNostdio—Transport mode: stdio or http.
PORTNo3000HTTPListen port for HTTP transport.
ALLOWED_ORIGINSNohttps://mcp.arcadia.financeHTTPComma-separated allowed Origin headers (CORS / DNS rebinding).
RATE_LIMIT_RPMNo60HTTPMax requests per minute per session.

Supported chains: Base (8453), Unichain (130), Optimism (10)

MCP Client Configuration

Remote (no install needed):

{
  "mcpServers": {
    "arcadia-finance": {
      "url": "https://mcp.arcadia.finance/mcp"
    }
  }
}

Via npx (local stdio):

{
  "mcpServers": {
    "arcadia-finance": {
      "command": "npx",
      "args": ["-y", "@arcadia-finance/mcp-server"],
      "env": {
        "RPC_URL_BASE": "https://base-mainnet.g.alchemy.com/v2/your-key"
      }
    }
  }
}

Claude Code:

# Remote
claude mcp add arcadia-finance --transport http https://mcp.arcadia.finance/mcp

# Local
claude mcp add arcadia-finance -- npx -y @arcadia-finance/mcp-server

From source (local development):

{
  "mcpServers": {
    "arcadia-finance": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-server/dist/index.js"],
      "env": {
        "RPC_URL_BASE": "https://base-mainnet.g.alchemy.com/v2/your-key"
      }
    }
  }
}

Skills

The skills/ directory contains Claude Code skills that teach AI agents how to use this MCP server effectively. To install a skill, symlink it into your Claude skills directory:

ln -s /path/to/mcp-server/skills/clamm-liquidity ~/.claude/skills/clamm-liquidity

Available skills:

SkillDescription
clamm-liquidityConcentrated liquidity management: concepts, asset managers (rebalancers, compounders), and step-by-step workflows.

Reporting Issues

Found a bug, missing feature, or unclear documentation while using this server? Open an issue: https://github.com/arcadia-finance/mcp-server/issues

For AI agents: If you hit a gap during task execution, open an issue with:

  • Tool name and parameters you used
  • What you expected vs what happened
  • The strategy or goal you were trying to execute

Pull requests for documentation fixes are welcome from agents and humans alike. All PRs require human review before merging.

Where to Find Us

  • npm: @arcadia-finance/mcp-server
  • MCP Registry: registry.modelcontextprotocol.io
  • Smithery: smithery.ai
  • MCP Servers: mcpservers.org
  • LobeHub: lobehub.com
  • PulseMCP: pulsemcp.com
  • MCP Market: mcpmarket.com
  • Glama: glama.ai
  • awesome-mcp-servers: github.com/TensorBlock/awesome-mcp-servers

Development

yarn dev          # Run with tsx (hot reload)
yarn build        # Compile TypeScript
yarn test         # Run tests
yarn lint         # Lint with ESLint
yarn format       # Check formatting with Prettier
Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

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.

PKsecret

Private key for dev-only signing (not for production).

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 session (default 60). Only used when TRANSPORT=http.

Registryactive
Package@arcadia-finance/mcp-server
TransportSTDIO, HTTP
AuthRequired
UpdatedMay 4, 2026
View on GitHub