Making stETH staking, position management, and governance natively callable
Lido MCP Server
The reference MCP server for Lido — making stETH staking, position management, and governance natively callable by any AI agent.
Point Claude, Cursor, or any MCP-compatible agent at this server and stake ETH from a conversation. No custom integration code needed.
Why This Exists
AI agents need to interact with DeFi protocols, but bridging the gap between natural language and on-chain transactions is hard. You need to handle private keys, gas estimation, protocol-specific quirks (like stETH rebasing), and transaction safety — all without the agent making a costly mistake.
This MCP server solves that by giving agents a structured, safe interface to the Lido protocol:
- Every write operation supports dry-run simulation — agents always preview gas costs and verify transactions before executing
- A mental model document (
lido.skill.md) teaches agents Lido-specific concepts before they act — rebasing mechanics, wstETH vs stETH tradeoffs, safe staking patterns - Position monitoring with bounds — agents can autonomously manage staking positions within human-set parameters
- Guided workflows via MCP prompts — pre-built multi-step workflows for staking, withdrawing, and governance review
What's Included
| Category | Tool | Description |
|---|---|---|
| Query | lido_get_balances |
ETH, stETH, wstETH balances for any address |
lido_get_staking_apr |
Current APR + N-day SMA | |
lido_get_rewards |
Historical staking rewards with configurable lookback | |
lido_get_protocol_status |
Stake limits, queue mode, withdrawal bounds | |
lido_convert_amounts |
stETH ↔ wstETH rate conversion | |
lido_get_withdrawal_requests |
All withdrawal NFTs and their status | |
lido_get_claimable_eth |
Total ETH available to claim | |
| Intelligence | lido_analyze_position |
Position analysis with bounds checking and recommendations |
lido_estimate_withdrawal_time |
Predict withdrawal finalization time from queue depth and mode | |
lido_check_steth_rate |
Share rate, pool composition, DEX discount detection | |
lido_check_gas_conditions |
Gas price tiers, operation costs, break-even analysis | |
lido_get_swap_quote |
Price quote for ETH → LDO swap via Uniswap V3 | |
| Stake | lido_stake_eth |
Stake ETH → stETH (with dry_run) |
| Wrap | lido_wrap_steth_to_wsteth |
Wrap stETH → wstETH (with dry_run) |
lido_wrap_eth_to_wsteth |
Stake + wrap in one tx (with dry_run) | |
lido_unwrap_wsteth_to_steth |
Unwrap wstETH → stETH (with dry_run) | |
| Withdraw | lido_request_withdrawal |
Request withdrawal with auto-splitting (with dry_run) |
lido_claim_withdrawal |
Claim finalized withdrawals (with dry_run) | |
| Swap | lido_swap_eth_for_ldo |
Swap ETH for LDO tokens via Uniswap V3 (with dry_run) |
| Governance | ||
| Dual Governance | lido_get_governance_state |
Dual governance state, config, veto signalling, warning status |
lido_lock_steth_governance |
Lock stETH in veto signalling escrow (with dry_run) | |
lido_unlock_steth_governance |
Unlock stETH from governance escrow (with dry_run) | |
lido_get_voting_power |
Cross-system governance power: LDO, stETH, escrow balances | |
lido_estimate_veto_impact |
Estimate impact of locking stETH in veto escrow | |
lido_get_veto_thresholds |
Veto threshold config: first/second seal, current level | |
lido_get_governance_timeline |
Unified timeline across all governance systems | |
lido_get_governance_position_impact |
Analyze how governance state affects a staking position | |
| Aragon DAO | lido_get_aragon_vote |
Query Aragon DAO votes — recent list or specific vote details |
lido_vote_on_proposal |
Cast vote on DAO proposal (with dry_run) | |
lido_analyze_aragon_vote |
Deep analysis: quorum, phase, pass/fail projection, top voters | |
lido_get_aragon_vote_script |
Decode EVM script into human-readable actions | |
lido_get_aragon_vote_timeline |
Vote timeline: phases, time remaining, projections | |
| Snapshot | lido_get_snapshot_proposals |
List governance proposals from Lido Snapshot space |
lido_get_snapshot_proposal |
Full details of a specific Snapshot proposal | |
lido_vote_on_snapshot |
Cast vote on Snapshot proposal via EIP-712 (with dry_run) | |
| Easy Track | lido_get_easytrack_motions |
List Easy Track motions with optional status filter |
lido_get_easytrack_motion |
Detailed view of a specific Easy Track motion | |
lido_get_easytrack_config |
Easy Track system config: thresholds, duration, factories | |
lido_get_easytrack_factories |
List registered EVM script factories with descriptions | |
lido_object_easytrack_motion |
Object to an active Easy Track motion (with dry_run) | |
| stVaults V3 | lido_list_vaults |
List staking vaults with connection status and value |
lido_get_vault |
Full vault details: owner, operator, health, locked ETH | |
| `l |
Tools (5)
lido_get_balancesGet ETH, stETH, and wstETH balances for any address.lido_stake_ethStake ETH to stETH with dry-run simulation.lido_request_withdrawalRequest withdrawal with auto-splitting and dry-run simulation.lido_analyze_positionAnalyze staking position with bounds checking and recommendations.lido_vote_on_proposalCast a vote on a DAO proposal with dry-run simulation.Configuration
{"mcpServers": {"lido": {"command": "npx", "args": ["-y", "@the-wunmi/lido-mcp-server"]}}}