# Arcadia

MCP server for Arcadia Finance, a platform to manage Uniswap and Aerodrome concentrated liquidity positions with built-in leverage, automated rebalancing, and yield optimization. Read protocol data a…

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y smithery mcp add arcadia-finance/mcp-server

# Browse available tools
npx -y smithery tool list arcadia-finance/mcp-server

# Get full schema for a tool
npx -y smithery tool get arcadia-finance/mcp-server read.account.info

# Call a tool
npx -y smithery tool call arcadia-finance/mcp-server read.account.info '{}'
```

## Direct MCP Connection

Endpoint: `https://mcp-server--arcadia-finance.run.tools`

**Optional config:**
- `rpcUrlBase` (query) — RPC URL for Base (8453). Falls back to public RPC if not set.
- `rpcUrlUnichain` (query) — RPC URL for Unichain (130). Falls back to public RPC if not set.

## Tools (38)

- `read.account.info` — Get full overview of an Arcadia account: health factor, collateral value, debt, deposited assets, liquidation price, an…
- `read.account.history` — Get historical collateral and debt values for an Arcadia account over time. Returns a time series of snapshots (timesta…
- `read.account.pnl` — Get PnL (cost basis) and yield earned for an Arcadia account. Returns lifetime totals: cost basis vs current value (neg…
- `read.pool.list` — List all Arcadia lending pools: TVL, utilization, available liquidity. Key fields: interest_rate = current borrow cost,…
- `read.pool.info` — Get detailed info for a single lending pool including APY history over time. Useful for analyzing rate trends and compa…
- `read.asset.list` — List supported collateral assets on Arcadia. Returns compact list (address, symbol, decimals, type). Use search to filt…
- `read.asset.prices` — Get USD prices for one or more asset addresses. Pass a single address or comma-separated addresses. Returns a price map…
- `read.strategy.list` — Get Arcadia LP strategies. Use featured_only=true for curated top strategies (recommended first call). Returns a pagina…
- `read.strategy.info` — Get full detail for a specific LP strategy by ID — includes APY per range width (narrower range = higher APY but more r…
- `read.strategy.recommendation` — Get a rebalancing recommendation for an Arcadia account — suggests asset changes to optimize yield. Uses 1d APY (not 7d…
- `read.point_leaderboard` — Get the Arcadia points leaderboard (paginated). For a specific wallet's points balance, use read.wallet.points.
- `read.guides` — Get Arcadia workflow guides and reference documentation. Call this before multi-step workflows (opening LP positions, e…
- `read.wallet.balances` — Get native ETH and ERC20 token balances for a wallet address. Reads directly from chain via RPC multicall. Use before w…
- `read.wallet.allowances` — Check ERC20 token allowances for a spender address. Use before write.wallet.approve to avoid redundant approvals — skip…
- `read.wallet.accounts` — List all Arcadia accounts owned by a wallet address. Returns a summary of each account (address, name). Call read.accou…
- `read.wallet.points` — Get Arcadia points balance for a specific wallet address.
- `read.asset_manager.intents` — List all available automation intents with their tool names, required parameters, and supported chains. Use this to dis…
- `write.account.create` — Build an unsigned transaction to create a new Arcadia account via the Factory contract. account_version: 3 with credito…
- `write.account.deposit` — Build an unsigned transaction to deposit assets into an Arcadia account as collateral. Supports ERC20 tokens and ERC721…
- `write.account.withdraw` — Build an unsigned transaction to withdraw assets from an Arcadia account to the owner's wallet. Only the account owner …
- `write.account.borrow` — Build an unsigned transaction to borrow from an Arcadia lending pool against account collateral. NOT needed for leverag…
- `write.account.repay` — Repay debt to an Arcadia lending pool using tokens from the wallet (requires ERC20 allowance). To repay using account c…
- `write.account.add_liquidity` — Multi-step flash-action: atomically combines [deposit from wallet] + [use account collateral] + [swap to optimal ratio]…
- `write.account.remove_liquidity` — Flash-action: PARTIALLY decreases liquidity from an LP position. The position remains open with reduced liquidity; unde…
- `write.account.swap` — Flash-action: swaps assets within an Arcadia account in one atomic transaction. The backend finds the optimal swap rout…
- `write.account.deleverage` — Multi-step flash-action: sells account collateral to the debt token and repays in one atomic transaction — no wallet to…
- `write.account.stake` — Flash-action: stake, unstake, or claim rewards for an LP position in one atomic transaction. Use the `action` parameter…
- `write.account.close` — Atomic flash-action that closes an Arcadia account position in ONE transaction. Combines up to 3 steps atomically: [bur…
- `write.wallet.approve` — Build an unsigned approval transaction. For ERC20 tokens: generates approve(spender, amount). For ERC721/ERC1155 NFTs (…
- `write.asset_manager.rebalancer` — Encode args for the rebalancer automation. When the LP position goes out of range, Arcadia's bot repositions it centere…
- `write.asset_manager.compounder` — Encode args for the standalone compounder automation. Claims accumulated LP trading fees and reinvests them back into t…
- `write.asset_manager.compounder_staked` — Encode args for compounder coupled with CowSwap for staked LP positions (e.g. staked Slipstream/Aerodrome). Staked posi…
- `write.asset_manager.yield_claimer` — Encode args for the standalone yield claimer automation. Periodically claims pending fees/emissions and sends them to a…
- `write.asset_manager.yield_claimer_cowswap` — Encode args for yield claimer coupled with CowSwap. Claims LP fees, then swaps the claimed tokens to a target token via…
- `write.asset_manager.cow_swapper` — Encode args for standalone direct CowSwap mode. Enables the CowSwapper to swap any ERC20 → ERC20 via CoW Protocol batch…
- `write.asset_manager.merkl_operator` — Encode args for the Merkl operator automation. Claims external Merkl protocol incentive rewards into the account — addi…
- `write.account.set_asset_managers` — Build an unsigned setAssetManagers transaction from encoded intent args. Takes the { asset_managers, statuses, datas } …
- `dev.send` — DEV ONLY — Sign and broadcast an unsigned transaction using a local private key (PK env var). For production, use a ded…

```bash
# Get full input/output schema for a tool
npx -y smithery tool get arcadia-finance/mcp-server <tool-name>
```

## Resources

- `arcadia://guides/overview` — Tool catalog, token/contract/lending pool addresses, asset manager addresses, account versions
- `arcadia://guides/automation` — Rebalancer, compounder, yield claimer, merkl operator, CoW swapper setup and addresses
- `arcadia://guides/strategies` — Step-by-step strategy templates: delta neutral leveraged LP, protocol owned liquidity, closing sequences
- `arcadia://guides/selection` — Strategy evaluation framework: pool selection, range width, leverage sizing, automation combos, exit signals

## Prompts (3)

- `analyze-account` (account_address, chain_id) — Analyze an Arcadia account: health factor, positions, PnL, automation status, and recommendations.
- `find-yield-strategy` (chain_id, deposit_token) — Evaluate LP strategies on Arcadia: compare fee APY vs borrow cost, select pool, range width, and leverage.
- `setup-automation` (account_address, chain_id) — Enable rebalancer, compounder, yield claimer, and/or merkl operator for an Arcadia account.
