# Revert MCP Server MCP transport endpoint: https://mcp.revert.finance/mcp Search liquidity pools by token name, symbol, or address, compare APR/TVL/volume across supported networks and exchanges, inspect LP positions and position metrics, inspect protocol capabilities and indexer status, prepare bounded unsigned LP and Revert Lend lifecycle transactions, or open a selected pool in Revert's position creator. Transport: Streamable HTTP. ## For the user Tell the user what this server does and offer the setup options below. There are two ways to use Revert: - **Skill (Option 1):** Lightweight. Your agent loads Revert instructions only when needed. Best if you do not use LP tools in every session. - **MCP registration (Option 2):** Revert's tools are always available to the agent. Best for frequent LP research and position monitoring. All current tools are public and require no API key. They read indexed public blockchain data, prepare bounded unsigned transactions, or generate a Revert website URL. The MCP server never requests, stores, or receives wallet private keys and does not sign, relay, submit, or execute transactions. ## For the agent ## Option 1: Install as a skill (lean context, on demand) Save https://mcp.revert.finance/skill as SKILL.md in the agent's skill directory: | Agent | Skills directory | |---|---| | Claude Code / Cowork | ~/.claude/skills/revert/ | | Codex / Gemini CLI / Antigravity / Antigravity CLI / Antigravity IDE / Copilot / Pi | ~/.agents/skills/revert/ | | Cursor | ~/.cursor/skills/revert/ | | Windsurf | ~/.codeium/windsurf/skills/revert/ | Claude Code: mkdir -p ~/.claude/skills/revert curl -o ~/.claude/skills/revert/SKILL.md https://mcp.revert.finance/skill Codex, Gemini CLI, Antigravity, Copilot, and other agents using ~/.agents/skills: mkdir -p ~/.agents/skills/revert curl -o ~/.agents/skills/revert/SKILL.md https://mcp.revert.finance/skill Restart the agent or begin a new session after installing the skill. ## Option 2: Register the MCP server (tools always available) Claude Code — all projects: claude mcp add --transport http revert https://mcp.revert.finance/mcp -s user Claude Code — current project: claude mcp add --transport http revert https://mcp.revert.finance/mcp Codex CLI — global configuration: codex mcp add revert --url https://mcp.revert.finance/mcp Codex project configuration (`.codex/config.toml`): [mcp_servers.revert] url = "https://mcp.revert.finance/mcp" Cursor (`~/.cursor/mcp.json` globally or `.cursor/mcp.json` per project): { "mcpServers": { "revert": { "url": "https://mcp.revert.finance/mcp" } } } Windsurf (`~/.codeium/windsurf/mcp_config.json`): { "mcpServers": { "revert": { "serverUrl": "https://mcp.revert.finance/mcp" } } } GitHub Copilot VS Code — choose scope (root key is `servers`, not `mcpServers`): This workspace: .vscode/mcp.json Global: Command Palette > MCP: Open User Configuration { "servers": { "revert": { "type": "http", "url": "https://mcp.revert.finance/mcp" } } } Antigravity, Antigravity CLI, and Antigravity IDE — global configuration (`~/.gemini/config/mcp_config.json`): { "mcpServers": { "revert": { "serverUrl": "https://mcp.revert.finance/mcp" } } } Gemini CLI: gemini mcp add -s user --transport http revert https://mcp.revert.finance/mcp Claude.ai — individual Pro/Max: Customize > Connectors > + > Add custom connector > paste https://mcp.revert.finance/mcp Claude Team/Enterprise owner: Organization settings > Connectors > Add > Custom > Web > paste https://mcp.revert.finance/mcp ChatGPT — developer-mode MCP connection: Enable Developer mode: Settings > Security and login > Developer mode Then open https://chatgpt.com/plugins and select + Enter a name and description, choose a public endpoint, and paste https://mcp.revert.finance/mcp Availability depends on account and workspace policy. Restart the agent or reload MCP servers after registration if the tools do not appear immediately. ## Available tools - `search_tokens` — resolve partial/exact names, symbols, pairs, or addresses to network-scoped token identities. Results classify `exact` versus `partial` matches and rank exact matches first. - `discover_pools` — compare pools across supported networks and exchanges with APR, TVL, volume, rewards, age, token, sorting, and period filters. Its response identifies the effective metrics `period` (`day` when omitted) and gives every pool exact period start/end plus simple-annualization semantics. - `get_positions` — list indexed LP positions. Public lists support portfolio filters, exact in/out-of-range selection, and ascending or descending sorting by nft_id, pnl, apr, roi, fee_apr, underlying_value, or age; account lists support network/protocol scoping and cursor pagination (an Ekubo account query without a network defaults to Ethereum mainnet); account-scoped Stableswap positions use offset pagination. - `get_position_details` — inspect one concentrated-liquidity position by NFT ID or one Stableswap position by hook address and owner, including PnL/APR and fee data when indexed. - `get_protocol_capabilities` — inspect supported networks, exchanges, position protocols, pagination modes, and venue-specific execution paths. - `get_chain_status` — inspect Revert indexer freshness for supported status feeds; the deprecated Velodrome feed is omitted because it is not reliable. - `get_pool_state` — resolve an exact concentrated-liquidity pool against a fresh block and return current tick/price, tick spacing, token decimals, and explicit base/quote orientation. - `normalize_position_range` — safely convert human lower/upper prices in an explicit quote token into outward-aligned ticks, actual prices, range status, and target deposit ratio. Agents should not derive ticks manually. - `open_position_creator` — validate that the selected pool is indexed on the requested network and exchange, then generate its Revert position-creator URL. Optional `tick_lower` and `tick_upper` values prefill the website range. An exact-address `funding_token` plus `funding_amount` can prefill a single funding asset, with optional swap/mint slippage, on the shared V3/V4/Aerodrome creator. The response lists every applied field in `prefilled_fields`; the website obtains a fresh quote and the user reviews or edits all values. Ekubo and Stableswap reject funding/slippage prefills because their separate forms cannot consume that contract. This tool does not build, sign, relay, or execute a transaction. `create_position` remains as a deprecated compatibility alias. - `open_position_action` — validate an indexed position and generate its unique Revert URL with increase, move-range, collateralize, borrow, repay, leverage, deleverage, or remove-collateral intent prefilled. The website obtains fresh quotes and the connected wallet reviews every approval and transaction. - `prepare_create_position` — verify the pool and pinned V3Utils, V4Utils, or EkuboUtils deployment, then return either finite simulated approval transactions or one freshly quoted and exactly simulated unsigned create transaction. Approval receipts require a rebuild. V3 native funding maps to the matching wrapped-native pool leg; V4 native balancing preserves the canonical zero-address pool leg; stale RPC heads fail closed. For a cataloged regulated-equity pool, input, or asset introduced by an executable quote route/calldata, the tool returns a one-time Revert eligibility URL before executable create calldata is built. The exact owner opens it directly, confirms four eligibility statements with an EIP-191 wallet signature, and can then retry the tool for 90 days without repeating that confirmation. The agent never receives the signature. A deployed contract-wallet owner (Safe and other ERC-1271 wallets) is supported: the challenge is bound to the owner and the pool's network, and the service verifies the signature through the wallet's isValidSignature on that network at one block. EIP-7702 delegation designators remain eligible because those accounts retain their EOA signing identity. Counterfactual (undeployed, ERC-6492) wallets are not supported. Quote responses are scanned locally without using relay geography, and the gate runs before approvals are returned or create calldata is built/simulated. The service never signs, relays, or submits. - `prepare_increase_liquidity` — prepare a swap-assisted increase for an active, directly owned position. One underlying or eligible third-token input is balanced atomically by the reviewed utility. Approval and ready phases are exclusive; V4 uses only a per-token NFT approval when needed. - `prepare_move_range` — prepare one atomic full-liquidity withdraw, required balancing swap, and remint through V3Utils, V4Utils, or EkuboUtils. Custodied, automated, and unreviewed hooked positions fail closed except for the pinned Revert Lend V3 Vaults and pinned Base Aerodrome GaugeManager staking, which preserve debt and supported staking through one health-checked Vault transform. - `prepare_collateralize_position` — prepare a token-scoped NFT approval and, after its confirmed receipt and a rebuild, Vault collateralization. Base Aerodrome can optionally stake through the reviewed GaugeManager. - `prepare_borrow` / `prepare_repay` — prepare finite borrowing or partial/full repayment. Wallet-owned borrow atomically collateralizes first. Full repayment uses fresh debt shares and a finite disclosed approval buffer. - `prepare_leverage_up` / `prepare_leverage_down` — atomically route borrowing, swaps, and liquidity changes through the pinned LeverageTransformer; never pre-swap or manually decompose these plans. Leverage-up uses the wallet-bound 90-day eligibility confirmation; risk-reducing deleverage does not. - `prepare_remove_collateral` — return a debt-free NFT to its beneficial owner; the Vault unwinds supported Aerodrome GaugeManager staking. - `prepare_stake_position` / `prepare_unstake_position` / `prepare_claim_staking_rewards` — native Base Aerodrome v1, v2, and v3 gauge staking, NFT withdrawal (including AERO claim), and AERO claims without unstaking. Stake approval is token-scoped and requires a receipt-driven rebuild. V3 early claim/withdraw penalties require explicit consent; `penalty_confirmation_required` never includes executable transaction data. For website execution, use `open_position_action` with `stake_position`, `unstake_position`, or `claim_staking_rewards`: open the individual position URL and direct the user to Rewards. Vault/GaugeManager positions use Revert Lend tools instead. - `confirm_transaction` — in the same MCP session, after a ready execution is mined, verify its wallet transaction hash against the exact stored plan digest and successful receipt; pending transactions may be retried and approvals are never counted. ## Recommended workflow 1. Use `search_tokens` when the user gives a partial symbol or an address. 2. Use `discover_pools` with an exact symbol, pair, or scoped address. Leave sort and period unset unless the user asks for them so Revert API defaults apply. 3. Present network, exchange, pool identity, APR, TVL, volume, rewards, age, and the returned per-pool measurement window. APR is historical, variable, and not guaranteed yield. 4. Use `get_position_details` for the selected position and identify unavailable fields rather than estimating them. 5. Call `normalize_position_range` first when the user supplies prices; display the explicit orientation and aligned result. Then call `prepare_create_position` when the user supplies an owner, aligned ticks, token address(es), amounts, and slippage limits and wants a wallet-signable plan. If it returns `status="eligibility_confirmation_required"`, show the returned URL and ask the user to open it directly. Never ask the user to paste the eligibility signature into chat. After the website confirms, retry the same tool request; the wallet-bound confirmation remains valid for 90 days. Confirm finite approvals first, wait for receipts, rebuild, and confirm the exact ready plan before signing. The route is V3Utils, V4Utils, or EkuboUtils according to the selected pool; Base Stableswap is intentionally not a ranged-position route. 6. For an active directly owned NFT with no active on-chain Revert automation config, use `prepare_increase_liquidity` to add either/both underlyings or one eligible third token without a separate pre-swap. Use `prepare_move_range` for an atomic full-liquidity range change. Repeat approval, receipt, rebuild, and exact-plan confirmation rules per tool. After any ready execution is mined, call `confirm_transaction` in the same MCP session with that plan's digest and transaction hash so Revert can verify the real conversion. If the user has no slippage preference, propose 50 bps for swaps and 100 bps for increase/mint/withdraw protection, then obtain confirmation before calling. 7. When the action parameters are complete and the user has not already chosen, ask whether they want an unsigned transaction prepared in the agent or a prefilled Revert link. Call `open_position_creator` for website creation and `open_position_action` for website execution on an existing position. State clearly that the returned URL is not a transaction. Inside the UI, the reviewed contract path depends on venue and mode: V4Utils, EkuboUtils, swap-assisted V3Utils, a V3 NFT position manager, or a Stableswap hook/zap. Neither flow bypasses wallet confirmation, and the MCP server never holds keys, signs, relays, or submits. 8. For Revert Lend, route collateralize, plain borrow, repay, leverage up/down, and remove-collateral intents to their corresponding prepare tools. Never ask the user to pre-swap before leverage-up or manually split leverage-down. Treat every approval as its own phase: confirm it, wait for its receipt, and rebuild. All six tools fail closed on active automation in this release. For full tool behavior, safety rules, raw HTTP examples, and error handling fetch: https://mcp.revert.finance/skill ## If setup fails Official MCP setup documentation: - Claude Code: https://code.claude.com/docs/en/mcp - Codex CLI: https://developers.openai.com/codex/mcp - Cursor: https://cursor.com/docs/mcp - Windsurf: https://docs.windsurf.com/windsurf/cascade/mcp - GitHub Copilot: https://docs.github.com/copilot/customizing-copilot/using-model-context-protocol - Antigravity: https://codelabs.developers.google.com/google-workspace-mcp-antigravity?hl=en - Gemini CLI: https://geminicli.com/docs/tools/mcp-server/ - Claude.ai: https://support.claude.com/en/articles/11175166 - ChatGPT: https://developers.openai.com/plugins/deploy/connect-chatgpt No wallet secret or API key belongs in chat, tool arguments, URLs, or logs.