Skip to main content
Glama

Lido MCP 服务器

Lido 的参考 MCP 服务器 — stETH 质押、头寸管理、治理和收益金库监控,所有功能均可由任何 AI 智能体原生调用。

将 Claude、Cursor 或任何兼容 MCP 的智能体指向此服务器,即可在对话中质押 ETH。无需任何自定义集成代码。

为什么存在此项目

AI 智能体需要与 DeFi 协议交互,但将自然语言桥接到链上交易非常困难——涉及私钥、Gas 估算、协议特性(stETH 重定价)和交易安全性。此 MCP 服务器为智能体提供了一个结构化、安全的 Lido 交互界面:

  • 所有写入操作均支持试运行模拟 — 智能体在执行前可预览 Gas 成本并验证交易

  • 思维模型文档 (lido.skill.md) — 在智能体行动前教授其 Lido 概念,如重定价机制、wstETH 与 stETH 的权衡、安全的质押模式

  • 带有智能警报的实时金库监控 — 监控 Lido Earn 金库的收益变化、TVL 波动、份额价格异常以及协议分配转移(Aave、Morpho、Pendle、Gearbox、Maple),并通过 Telegram 或电子邮件以通俗语言发送警报

  • 灵活的规则引擎 — 定义如 apr < 3.0spread_vs_steth < -0.5 这样可读的警报条件,并自动与 stETH 基准进行比较

  • AI 驱动的解释 — 可选使用 Claude 将原始金库事件翻译成通俗语言消息,解释发生了什么、原因以及是否需要采取行动

  • 安全护栏 — 提供 read-only(只读)、dry-run-only(仅试运行)和 full(完全)模式,以及接收者白名单和每笔交易的 ETH 上限

MCP 服务器

70+ 个工具,涵盖质押、治理、金库监控和 L2 — 所有写入操作默认 dry_run: true

类别

工具

查询

lido_get_balances, lido_get_staking_apr, lido_get_rewards, lido_get_protocol_status, lido_convert_amounts, lido_get_withdrawal_requests, lido_get_claimable_eth, lido_get_chain_info

智能分析

lido_analyze_position, lido_estimate_withdrawal_time, lido_check_steth_rate, lido_check_gas_conditions, lido_get_swap_quote

质押 / 封装 / 提款

lido_stake_eth, lido_wrap_steth_to_wsteth, lido_wrap_eth_to_wsteth, lido_unwrap_wsteth_to_steth, lido_request_withdrawal, lido_claim_withdrawal, lido_swap_eth_for_ldo

治理

双重治理状态 + 在否决托管中锁定/解锁 stETH,Aragon DAO 投票/分析/解码,Snapshot 提案 + 投票,Easy Track 动议 + 反对,投票权 + 否决阈值 + 时间线

收益金库监控

lido_list_earn_vaults, lido_watch_vault, lido_unwatch_vault, lido_add_rule, lido_remove_rule, lido_check_vault, lido_list_watches, lido_get_vault_alerts, lido_test_notifications

stVaults V3

列出、检查、注资、提款、暂停/恢复信标存款、铸造/销毁份额、再平衡、创建金库、请求验证者退出

协议信息

TVL、费用结构、质押模块、节点运营商、合约地址

代币管理

代币信息、额度、批准、转账、撤销 stETH/wstETH/LDO 权限

提款 NFT

所有者查询、转账、批准

L2 wstETH

Base/Optimism/Arbitrum 上的余额、转账、信息 + 11 个 L2 上的跨链余额

L2 stETH

Optimism 上的重定价 stETH 余额 + 转账

6 个引导式提示词 — 用于质押 (stake-eth-safely)、头寸分析 (manage-position)、提款 (withdraw-steth)、治理审查 (review-governance)、金库管理 (manage-vault) 和治理参与 (participate-governance) 的多步工作流。

4 个实时资源lido://position/{address}, lido://protocol/status, lido://governance/state, lido://governance/votes

智能体思维模型 (lido.skill.md) — 见上文“为什么存在此项目”。

关键设计决策

  • 真实 SDK,无模拟 — 所有操作均通过 @lidofinance/lido-ethereum-sdkviem 直接与以太坊合约交互

  • 默认试运行 — 每个改变状态的工具默认 dry_run: true。智能体必须显式设置 dry_run: false 才能执行

  • 协议感知错误 — 原始区块链错误(资金不足、回滚、Nonce 冲突、质押限制、已暂停)会被翻译成人类可读的消息

  • MCP 注解 — 每个工具都声明了 readOnlyHintdestructiveHintidempotentHintopenWorldHint,以便智能体知道哪些工具可以在无需确认的情况下安全调用

  • L2 感知 — 将 LIDO_CHAIN_ID 设置为 Base、Optimism 或 Arbitrum,服务器将仅暴露 wstETH 相关工具;仅限 L1 的工具会自动排除

收益金库监控

监控 Lido Earn 金库(EarnETH, EarnUSD),并在发生值得关注的变化时通知存款人——使用通俗语言,而非原始数据。

工作原理

  1. 监控金库 — 使用金库地址调用 lido_watch_vault(使用 lido_list_earn_vaults 查找地址)

  2. 定义警报规则 — 将条件编写为针对实时金库数据评估的可读表达式

  3. 接收警报 — 当规则触发时,通过 Telegram 或电子邮件接收通知,并附带 AI 生成的解释

监控器持续运行:

  • 订阅每个金库的链上 Deposit(存款)/Withdraw(提款) 事件,以及 stETH 的 TokenRebased 事件,以实现近乎实时的反应

  • 作为后备,运行 30 秒轮询 健康检查

  • 每次检查时将金库 APR 与来自 Lido API 的 stETH SMA APR 进行比较

  • 检测协议分配转移 — 通过读取已知 Lido Earn 金库的链上子金库余额,监控底层协议(Aave、Morpho、Pendle、Gearbox、Maple)的分配变化

  • SQLite 持久化 — 所有状态(监控、快照、警报、去重)均保存在 SQLite 中,重启后依然有效

  • 6 小时去重 — 每个金库的每条规则均有 6 小时去重窗口,防止警报疲劳

警报发送

  • Telegram — 格式化的警报,包含严重程度指标、金库上下文、基准比较和可操作的建议

  • 电子邮件 — 带有相同上下文的 HTML 格式警报

  • AI 解释(可选) — 当设置了 ANTHROPIC_API_KEY 时,每个警报都会发送给 Claude,生成包含以下内容的通俗语言解释:

    1. 发生了什么 — 触发警报的具体指标

    2. 可能的原因 — 基于数据的合理推测

    3. 建议考虑事项 — 存款人应该采取行动、等待还是进一步调查

规则引擎

规则不是一组固定的预定义警报,而是你通过智能体以自然语言定义的开放式表达式。告诉 Claude “如果收益率低于 3% 就提醒我”,它会编写规则 apr < 3.0。说“如果金库表现开始落后于 stETH 超过 0.5%,且 TVL 也在下降,请通知我”,它会组合出 spread_vs_steth < -0.5 and tvl_change_pct < 0。智能体将你的意图翻译成针对实时金库指标评估的 mathjs 表达式:

变量

说明

apr / apy

当前金库 APR (%)

apr_prev / apy_prev

上次快照的 APR

apr_delta / apy_delta

快照间的 APR 变化(百分点)

tvl

总锁定价值

tvl_prev

上次快照的 TVL

tvl_change_pct

TVL 变化百分比

share_price

当前份额价格(资产/份额)

share_price_prev

上次快照的份额价格

share_price_change_pct

份额价格变化百分比

steth_apr

stETH SMA APR 基准(来自 Lido API)

spread_vs_steth

金库 APR 减去 stETH APR(正数表示表现优于基准)

max_alloc_shift

快照间最大的协议分配变化(百分点)

num_protocols

具有活跃分配的协议数量

top_alloc_pct

单一协议的最大分配比例 (%)

规则示例:

表达式

触发条件

apr < 3.0

收益率低于 3% — 简单的收益率下限

spread_vs_steth < 0

金库表现落后于原始 stETH 质押

spread_vs_steth < -0.5

金库表现落后于 stETH 超过 0.5 个百分点

tvl_change_pct < -10

检查间 TVL 下降 >10% — 资本外逃

share_price_change_pct < -0.1

份额价格下跌 — 可能存在漏洞或脱钩

apr < 3.0 and tvl_change_pct < -5

收益率下降且资本流出

abs(apr_delta) > 2.0

APR 出现大幅波动

apr < steth_apr - 1.0

落后于 stETH 基准超过 1 个百分点

apr > apr_prev * 1.5

APR 飙升至之前值的 1.5 倍

max_alloc_shift > 10

协议分配变动超过 10 个百分点

top_alloc_pct > 80

单一协议持有超过 80% 的金库资本

支持 and/or/not 布尔逻辑、比较运算符 (<, >, <=, >=, ==, !=)、算术运算 (+, -, *, /) 以及安全数学函数 (abs, min, max, round, floor, ceil, sqrt)。

每条规则都包含一个带有 {{variable}} 插值的消息模板:

APR dropped to {{apr}}%, below your 3% floor. stETH is at {{steth_apr}}%.

如果未提供消息,则会根据表达式模式自动生成。

规则引擎是沙盒化的 — 表达式被解析为 AST,并根据变量、函数和节点类型的白名单进行验证。无任意代码执行风险。

协议分配检测

对于已知的 Lido Earn 金库(strETH/EarnETH),监控器会读取每个金库子金库的链上余额,以确定资本如何在底层协议(Aave、Morpho、Pendle、Gearbox、Maple 等)之间分配。每次健康检查都会将当前分配与上次快照进行比较并检测变化。

分配数据出现在:

  • 健康报告 (lido_check_vault) — 显示各协议的百分比明细

  • 警报上下文 — 当任何规则触发时,警报包含分配转移详情(协议名称、变动前后的百分比、差值)

  • AI 解释 — LLM 接收分配转移数据,并能以通俗语言解释再平衡事件

  • 规则变量max_alloc_shiftnum_protocolstop_alloc_pct 允许你编写如 max_alloc_shift > 10 的规则(当任何协议的份额变动超过 10 个百分点时发出警报)

MCP 可调用的金库健康状况

其他智能体可以以编程方式查询金库健康状况 — 监控器不仅是一个通知服务,还是一个构建模块:

  • lido_check_vault — 针对任何 ERC-4626 金库的按需健康检查(无需监控)。返回 APR、TVL、份额价格和 stETH 基准差值

  • lido_list_earn_vaults — 从实时 API 发现可用的 Mellow 收益金库

  • lido_get_vault_alerts — 以编程方式查询警报历史

目标用例

1. 开发者通过 Claude 质押 ETH — 无需集成代码

User: "Stake 1 ETH with Lido"

Claude: Let me walk you through this safely.
  → Checks protocol status (not paused, limits ok)
  → Checks your balance (1.5 ETH available)
  → Shows current APR (3.4%, 7-day SMA 3.3%)
  → Dry-runs the transaction (gas: 0.002 ETH)
  → "Ready to stake 1 ETH. Gas cost ~0.002 ETH. Confirm?"

User: "Yes"

Claude: → Executes stake
  → "Done. TX: 0xabc... You received 1.0 stETH."

2. 存款人收到 Telegram 消息,解释 EarnETH 收益率隔夜下降的原因

User: "Watch the EarnETH vault. Alert me if yield drops below 4%
       or it falls behind raw stETH staking."

Claude: → Discovers vault via lido_list_earn_vaults
  → Calls lido_watch_vault with rules:
    - apr < 4.0 [warning]
    - spread_vs_steth < 0 [critical]
  → "Watching EarnETH (0x...). APR: 5.2%, TVL: 12,450 ETH.
     You'll get a Telegram alert if APR drops below 4%
     or the vault underperforms stETH."

[Overnight, APR drops to 3.6%]

Telegram: 🚨 EarnETH — Warning

  APR dropped to *3.60%*, down from 5.20%.

  The vault's yield fell 1.6pp since the last check. This likely
  reflects a rotation in the underlying strategy or temporary
  market conditions. The vault is still outperforming direct stETH
  staking (3.40%) by 0.20pp, so no immediate action is needed —
  but worth monitoring if the trend continues.

  • Current APR: 3.60%
  • Previous APR: 5.20%
  • stETH benchmark: 3.40%
  • Spread vs stETH: 0.20pp above

  View on Etherscan

3. 智能体在决定存款前查询金库健康状况

Agent: → Calls lido_check_vault(address="0x...")

Response:
  === Vault Health: EarnETH ===
  TVL: 12,450.00 ETH
  Share Price: 1.034521 ETH/share
  APR: 5.20%

  --- Benchmark ---
  stETH APR (SMA): 3.40%
  Spread: 1.80pp above stETH benchmark

  --- Protocol Allocations ---
  Aave: 32.1%
  Morpho: 28.4%
  Pendle: 18.7%
  Gearbox: 12.3%
  Maple: 8.5%

  Last checked: 2025-03-23T14:30:00.000Z

Agent: → Diversified allocation, positive spread — decides to deposit

4. 自然语言规则配置

User: "I want to know if the vault starts doing worse than just
       holding stETH, especially if people are also pulling money out.
       And give me a heads up if the share price ever drops suddenly —
       that could mean something bad happened."

Claude: I'll set up three rules for you.
  → Calls lido_add_rule: "spread_vs_steth < 0 and tvl_change_pct < -5" [warning]
    Message: "Vault underperforming stETH (spread {{spread_vs_steth}}pp)
              while TVL dropped {{tvl_change_pct}}%"
  → Calls lido_add_rule: "share_price_change_pct < -0.1" [critical]
    Message: "Share price dropped {{share_price_change_pct}}% — investigate immediately"
  → Calls lido_add_rule: "spread_vs_steth < -1.0" [critical]
    Message: "Vault is {{spread_vs_steth}}pp behind stETH — significant underperformance"

  "Done. Three rules active:
   1. Warning if the vault trails stETH while TVL is declining
   2. Critical alert on any sudden share price drop (>0.1%)
   3. Critical if the vault falls more than 1pp behind stETH

   Dry-ran all three against current data — none would fire right now
   (APR 5.2% vs stETH 3.4%, TVL stable). You'll get alerts the
   moment any condition is met."

5. DAO 贡献者查询并投票参与治理提案

User: "Show me the latest Lido DAO votes"

Claude: → Calls lido_get_aragon_vote
  → "Vote #185: Open — Yea 15.2M LDO (92%), Nay 1.3M LDO (8%)
     Vote #184: Executed — passed with 98% support ..."

User: "Vote yes on #185"

Claude: → Calls lido_vote_on_proposal (dry_run=true)
  → "Dry run: Vote Yea on #185. You have 5,000 LDO. Gas: ~0.001 ETH. Confirm?"

User: "Yes"

Claude: → Executes vote
  → "Done. Voted Yea on #185. TX: 0xabc..."

6. 质押者通过双重治理发出反对信号

User: "I want to signal opposition to the latest proposal."

Claude: → Calls lido_get_governance_state
  → "Governance is in Normal state. Veto signalling is at 0.12%,
     well below the first seal threshold of 1%."
  → Dry-runs lock of 10 stETH in escrow
  → "Ready to lock 10 stETH for governance. Gas: ~0.003 ETH. Confirm?"

User: "Yes"

Claude: → Approves stETH for escrow + locks
  → "Done. 10 stETH locked in veto signalling escrow. TX: 0xdef..."

设置

git clone <repo-url>
cd lido-mcp-server
cp .env.example .env  # edit with your RPC URL, private key, chain ID
npm install && npm run build && npm start

查看 .env.example 获取所有配置选项(链 ID、安全模式、Telegram、SMTP、Anthropic)。

连接到 Claude / Cursor

{
  "mcpServers": {
    "lido": {
      "command": "bash",
      "args": ["/path/to/lido-mcp-server/start.sh"],
      "env": {
        "LIDO_RPC_URL": "https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY",
        "LIDO_PRIVATE_KEY": "0xYOUR_PRIVATE_KEY",
        "LIDO_CHAIN_ID": "1"
      }
    }
  }
}

许可证

MIT

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/the-wunmi/lido-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server