Arcadia Finance

Manage Uniswap and Aerodrome liquidity positions with automated rebalancing and leverage.

Arcadia Finance MCP Server

npm npm downloads smithery badge License: AGPL-3.0 TypeScript MCP MCP Badge Glama

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 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.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 infrastructure (recommended for production): Use your existing wallet setup — MPC wallets (Fireblocks, Dfns, Turnkey), smart accounts (Safe, Biconomy), or embedded wallets (Privy, Dynamic). 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).
PKNoBothPrivate key (hex) for dev-only dev.send tool.
TRANSPORTNostdioTransport 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)

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

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

Related Servers