使用说明
Web3代理
由 Claude代理SDK持有EVM和Solana链的私钥,与外部MCP服务器交互以构建可信的事务调用数据,并在链上执行批准的事务。
每笔交易在签名前都需要明确的用户批准。
支持两个接口:
- 命令行界面 --使用环境变量中的单个钱包进行交互式stdin/stdout聊天循环
- 电报机器人 --多用户机器人自动生成每个用户的钱包(在PostgreSQL中静态加密),带有用于交易审批的内联键盘按钮。仅对DM做出响应。
建筑
web3-agent/
├── packages/
│ └── core/ # @web3-agent/core — shared crypto utilities
│ ├── evm/ # viem-based wallet, provider, transaction signing
│ ├── solana/ # @solana/web3.js keypair and transactions
│ └── utils/ # Balance queries, formatting helpers
│
└── apps/
├── agent/ # @web3-agent/agent — Claude-powered CLI + Telegram agent
│ ├── tools/ # Custom wallet tools (balance, send, execute calldata)
│ ├── telegram/ # Telegram bot: per-user wallets, inline approval, PostgreSQL store
│ ├── agent.ts # Claude Agent SDK query() setup (CLI)
│ ├── approval.ts # Human-in-the-loop transaction approval (CLI)
│ └── mcp-config.ts # External MCP server configuration loader
│
├── mcp-aave/ # @web3-agent/mcp-aave — AAVE V3 MCP server
│ ├── tools/ # 35+ tools: lending, borrowing, flash loans, governance, staking
│ ├── config/ # Chain configs and AAVE deployment addresses
│ └── http.ts # HTTP transport for remote deployments
│
├── mcp-balancer/ # @web3-agent/mcp-balancer — Balancer V3 MCP server
│ ├── tools/ # 11 tools: pools, swaps, add/remove liquidity
│ ├── api/ # Balancer GraphQL API client (api-v3.balancer.fi)
│ ├── config/ # Chain configs (Ethereum, Arbitrum, Base, Optimism, Avalanche)
│ └── http.ts # HTTP transport for remote deployments
│
├── mcp-convex/ # @web3-agent/mcp-convex — Convex Finance MCP server
│ ├── tools/ # 21 tools: pools, deposits, rewards, CVX staking, cvxCRV, vlCVX locking
│ ├── config/ # Contract addresses (Ethereum mainnet)
│ └── http.ts # HTTP transport for remote deployments
│
├── mcp-curve/ # @web3-agent/mcp-curve — Curve Finance MCP server
│ ├── tools/ # 14 tools: pools, liquidity, gauges/rewards, swaps
│ ├── config/ # Chain configs (Ethereum, Polygon, Arbitrum, Optimism, Base, Avalanche)
│ └── http.ts # HTTP transport for remote deployments
│
├── mcp-gmx/ # @web3-agent/mcp-gmx — GMX V2 perps MCP server
│ ├── tools/ # 15 tools: markets, positions, orders, collateral, TP/SL, PNL
│ ├── config/ # Chain configs and GMX deployment addresses (Arbitrum, Avalanche)
│ ├── api/ # GMX REST API client (prices, tokens)
│ └── http.ts # HTTP transport for remote deployments
│
├── mcp-hyperliquid/ # @web3-agent/mcp-hyperliquid — Hyperliquid perps MCP server
│ ├── tools/ # 16 tools: markets, positions, orders, leverage, TP/SL, PNL
│ ├── clients.ts # Hyperliquid SDK client initialization
│ └── http.ts # HTTP transport for remote deployments
│
├── mcp-morpho/ # @web3-agent/mcp-morpho — Morpho lending MCP server
│ ├── tools/ # 13 tools: markets, vaults, supply, borrow, collateral, vault deposits
│ ├── api/ # Morpho GraphQL API client
│ └── http.ts # HTTP transport for remote deployments
│
└── mcp-swap/ # @web3-agent/mcp-swap — Token swap MCP server
├── tools/ # EVM swaps (0x) and Solana swaps (Jupiter)
├── api/ # 0x and Jupiter API clients
├── config/ # Chain configs and 0x AllowanceHolder addresses
└── http.ts # HTTP transport for remote deployments
运作原理
- 用户发送消息(例如,“在以太坊上向AAVE提供100 USDC”)
- Claude对请求进行推理,并调用外部MCP服务器工具来构建事务调用数据
- MCP服务器返回原始呼叫数据(
{ chainId, transactions: [{ to, data, value }] })他们从不拿钥匙 - Claude向用户解释交易步骤,然后调用
wallet_execute_calldata(EVM)或wallet_execute_solana_transaction(索拉纳) - 这
canUseTool回调拦截并显示交易详细信息,提示用户批准 - 在获得批准后,交易将使用代理的私钥进行签名,并按顺序在链上发送
先决条件
- Node.js>=20
- pnpm >= 10
- 人类API密钥
设置
# Install dependencies
pnpm install
# Copy and configure environment variables
cp .env.example .env
# Edit .env with your API key, private keys, and RPC URLs
构建
# Build all packages
pnpm build
# Build a specific package
pnpm --filter @web3-agent/core build
pnpm --filter @web3-agent/agent build
pnpm --filter @web3-agent/mcp-aave build
pnpm --filter @web3-agent/mcp-balancer build
pnpm --filter @web3-agent/mcp-convex build
pnpm --filter @web3-agent/mcp-curve build
pnpm --filter @web3-agent/mcp-gmx build
pnpm --filter @web3-agent/mcp-hyperliquid build
pnpm --filter @web3-agent/mcp-morpho build
pnpm --filter @web3-agent/mcp-swap build
运行和使用
代理人是 交互式CLI聊天 它通过Docker Compose运行。您在终端中键入消息,Claude会根据需要使用钱包工具和MCP服务器进行响应。
1.配置MCP服务器
代理连接到MCP服务器进行DeFi协议交互。捆绑服务器包括 mcp-aave (借贷), mcp-balancer (平衡器V3池/掉期/流动性), mcp-convex (凸产量提升), mcp-curve (曲线池/交换), mcp-gmx (GMX V2垂直), mcp-hyperliquid (永久交易), mcp-morpho (Morpho贷款),以及 mcp-swap (代币互换)。创建您的配置:
cp mcp-servers.example.json mcp-servers.json
使用Docker Compose运行时,请使用 HTTP传输 要连接到同级容器,请执行以下操作:
{
"mcpServers": {
"aave": {
"type": "http",
"url": "http://mcp-aave:3000/mcp"
},
"balancer": {
"type": "http",
"url": "http://mcp-balancer:3007/mcp"
},
"convex": {
"type": "http",
"url": "http://mcp-convex:3005/mcp"
},
"curve": {
"type": "http",
"url": "http://mcp-curve:3004/mcp"
},
"gmx": {
"type": "http",
"url": "http://mcp-gmx:3003/mcp"
},
"hyperliquid": {
"type": "http",
"url": "http://mcp-hyperliquid:3002/mcp"
},
"morpho": {
"type": "http",
"url": "http://mcp-morpho:3006/mcp"
},
"swap": {
"type": "http",
"url": "http://mcp-swap:3001/mcp"
}
}
}
对于没有Docker的本地开发,请使用 stdio传输 相反:
{
"mcpServers": {
"aave": {
"command": "node",
"args": ["apps/mcp-aave/build/index.js"],
"env": {
"ETHEREUM_RPC_URL": "https://eth.llamarpc.com"
}
},
"balancer": {
"command": "node",
"args": ["apps/mcp-balancer/build/index.js"],
"env": {
"ETHEREUM_RPC_URL": "https://eth.llamarpc.com",
"ARBITRUM_RPC_URL": "https://arb1.arbitrum.io/rpc",
"BASE_RPC_URL": "https://mainnet.base.org",
"OPTIMISM_RPC_URL": "https://mainnet.optimism.io",
"AVALANCHE_RPC_URL": "https://api.avax.network/ext/bc/C/rpc"
}
},
"convex": {
"command": "node",
"args": ["apps/mcp-convex/build/index.js"],
"env": {
"ETHEREUM_RPC_URL": "https://eth.llamarpc.com"
}
},
"curve": {
"command": "node",
"args": ["apps/mcp-curve/build/index.js"],
"env": {
"ETHEREUM_RPC_URL": "https://eth.llamarpc.com",
"POLYGON_RPC_URL": "https://polygon.llamarpc.com",
"ARBITRUM_RPC_URL": "https://arb1.arbitrum.io/rpc",
"OPTIMISM_RPC_URL": "https://mainnet.optimism.io",
"BASE_RPC_URL": "https://mainnet.base.org",
"AVALANCHE_RPC_URL": "https://api.avax.network/ext/bc/C/rpc"
}
},
"gmx": {
"command": "node",
"args": ["apps/mcp-gmx/build/index.js"],
"env": {
"ARBITRUM_RPC_URL": "https://arb1.arbitrum.io/rpc",
"AVALANCHE_RPC_URL": "https://api.avax.network/ext/bc/C/rpc"
}
},
"hyperliquid": {
"command": "node",
"args": ["apps/mcp-hyperliquid/build/index.js"],
"env": {
"EVM_PRIVATE_KEY": "0x..."
}
},
"morpho": {
"command": "node",
"args": ["apps/mcp-morpho/build/index.js"],
"env": {
"ETHEREUM_RPC_URL": "https://eth.llamarpc.com",
"BASE_RPC_URL": "https://mainnet.base.org",
"ARBITRUM_RPC_URL": "https://arb1.arbitrum.io/rpc"
}
},
"swap": {
"command": "node",
"args": ["apps/mcp-swap/build/index.js"],
"env": {
"ZEROX_API_KEY": "your-0x-api-key",
"ETHEREUM_RPC_URL": "https://eth.llamarpc.com"
}
}
}
}
2.构建图像
# Build all services
docker compose build
# Build a specific service
docker compose build agent
docker compose build mcp-aave
docker compose build mcp-balancer
docker compose build mcp-convex
docker compose build mcp-curve
docker compose build mcp-gmx
docker compose build mcp-hyperliquid
docker compose build mcp-morpho
docker compose build mcp-swap
3.启动服务
# Start MCP servers in the background
docker compose up -d mcp-aave mcp-balancer mcp-convex mcp-curve mcp-gmx mcp-hyperliquid mcp-morpho mcp-swap
# Option A: Run the Telegram bot (recommended — no interactive terminal needed)
docker compose up telegram-bot
# Option B: Run the CLI agent interactively (requires stdin attached)
docker compose run agent
Telegram机器人作为标准后台服务运行。CLI代理需要 docker compose run (不是 up)为交互式聊天循环附加终端的stdin。
4.与客服聊天
启动时,代理会打印您的钱包地址,然后进入聊天循环:
Web3 Agent
────────────────────────────────────
EVM: 0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18
Solana: 7xKX...b3Qp
────────────────────────────────────
MCP: wallet [connected]
MCP: aave [connected]
MCP: balancer [connected]
MCP: convex [connected]
MCP: curve [connected]
MCP: gmx [connected]
MCP: hyperliquid [connected]
MCP: morpho [connected]
MCP: swap [connected]
Type your message (or 'exit' to quit):
> What are my balances across all chains?
Claude实时响应,根据需要调用工具。对于任何交易,在签署任何内容之前,您都会看到一个审批提示:
═══════════════════════════════════════════
TRANSACTION APPROVAL REQUIRED
═══════════════════════════════════════════
Chain: Ethereum
To: 0xA0b8...
Amount: 0.1 ETH
═══════════════════════════════════════════
Approve this transaction? (y/n):
类型 exit 或按 Ctrl+C 退出。
电报机器人
Telegram机器人在多用户Telegram DM界面中提供相同的钱包代理体验。每个用户都有自己的自动生成的EVM+Solana钱包,交易审批使用内联键盘按钮。
1.创建一个机器人
消息 @植物学家 在Telegram上创建一个新的机器人。复制令牌。
2.配置环境
将这些添加到您的 .env:
TELEGRAM_BOT_TOKEN=your-bot-token-from-botfather
WALLET_ENCRYPTION_KEY=a-strong-random-passphrase
DATABASE_URL=postgres://agentwallet:agentwallet@localhost:5432/agentwallet
WALLET_ENCRYPTION_KEY 用于在PostgreSQL(AES-256-GCM)中加密每个用户的静态私钥。选择一个强密码——丢失它意味着存储的密钥无法恢复。
3.运行机器人
# Local
pnpm --filter @web3-agent/agent start:telegram
# Docker Compose (starts MCP servers too)
docker compose up -d mcp-aave mcp-balancer mcp-convex mcp-curve mcp-gmx mcp-hyperliquid mcp-morpho mcp-swap
docker compose up telegram-bot
4.与机器人聊天
在Telegram上DM你的机器人。在第一条消息中,会生成并存储一个新钱包:
/start--显示您的钱包地址/addresses--显示您的钱包地址- 任何消息——由Claude代理根据您的钱包上下文处理
当交易被触发时,机器人会发送一个内嵌键盘 批准 / 拒绝 按钮。5分钟后批准超时。
机器人会忽略组、超级组和通道中的所有消息——它只对私有DM做出响应。
示例提示
- “我的钱包地址是什么?”
- “显示我的所有余额”
- “我在以太坊上的USDC余额是多少?”(需要USDC合约地址——克劳德会查找或询问)
- “在以太坊上向AAVE提供100美元”(需要配置mcp-AAVE)
- “显示以太坊上的所有平衡器V3池”(需要配置mcp平衡器)
- “在平衡器上获取1000 USDC到WETH的掉期报价”(需要配置mcp平衡器)
- “向Arbitrum上的平衡器加权池添加流动性”(需要配置mcp平衡器)
- “我的平衡器LP在Base上的位置是什么?”(需要配置mcp平衡器)
- “显示所有凸池及其APY”(需要mcp凸配置)
- “将我的Curve LP代币存入Converx以获得奖励”(需要配置mcp凸)
- “从Converx领取我的CRV和CVX奖励”(需要配置mcp凸)
- “抵押我的CVX代币”(需要mcp凸配置)
- “将CVX锁定为vlCVX以进行治理投票”(需要配置mcp凸)
- “显示以太坊上的所有Curve池”(需要配置mcp曲线)
- “用1000美元为曲线3池添加流动性”(需要配置mcp曲线)
- “我的Curve LP头寸和可领取的奖励是什么?”(需要配置mcp曲线)
- “将我的Curve LP代币抵押在仪表中以赚取CRV”(需要配置mcp曲线)
- “显示Arbitrum上所有可用的GMX市场”(需要配置mcp-GMX)
- “我在Arbitrum上的未平仓GMX头寸是什么?”(需要配置mcp-GMX)
- “在GMX Arbitrum上以100 USDC开立10倍长的ETH头寸”(需要配置mcp-GMX)
- “关闭我在GMX上的ETH多头头寸”(需要配置mcp-GMX)
- “在我的GMX ETH多头上设置4000美元的止盈”(需要配置mcp-GMX)
- “向我的GMX ETH头寸再存入50美元的USDC抵押品”(需要配置mcp-GMX)
- “显示所有可用的超级液体市场”(需要配置mcp超级液体)
- “我在Hyperliquit上的空缺职位是什么?”(需要配置mcp-Hyperliquid)
- “用0.01 BTC开立5倍长的BTC头寸”(需要配置mcp超液体)
- “将我的BTC头寸的止盈设置为110000美元,止损设置为90000美元”(需要配置mcp超液体)
- “显示USDC的Morpho市场”(需要配置mcp-Morpho)
- “Morpho保险库的最佳产量是多少?”(需要配置mcp-Morpho)
- “向以太坊上最好的Morpho市场供应1000美元”(需要配置mcp-Morpho)
- “将500美元存入基地的Morpho保险库”(需要配置mcp-Morpho)
- “在以太坊上将100 USDC兑换为ETH”(需要配置mcp掉期)
- “获取将1 SOL兑换为USDC的报价”(需要配置mcp掉期)
- “向0x发送0.01 ETH…”
直接构建图像
docker build -f apps/agent/Dockerfile -t web3-agent . # CLI + Telegram (same image, different entrypoint)
docker build -f apps/mcp-aave/Dockerfile -t mcp-aave .
docker build -f apps/mcp-balancer/Dockerfile -t mcp-balancer .
docker build -f apps/mcp-convex/Dockerfile -t mcp-convex .
docker build -f apps/mcp-curve/Dockerfile -t mcp-curve .
docker build -f apps/mcp-gmx/Dockerfile -t mcp-gmx .
docker build -f apps/mcp-hyperliquid/Dockerfile -t mcp-hyperliquid .
docker build -f apps/mcp-morpho/Dockerfile -t mcp-morpho .
docker build -f apps/mcp-swap/Dockerfile -t mcp-swap .
MCP服务器:平衡器(mcp-balancer)
提供11个工具用于与 平衡器V3 --领先的AMM协议,支持加权池、稳定池、增强池(ERC-4626)、陀螺仪池等。通过Balancer GraphQL API查询池数据,并使用 @balancer/sdk 用于以太坊、Arbitrum、Base、Optimism和Avalanche上的掉期路由和流动性操作。
这 mcp-balancer 服务器构建事务调用数据(从不保存密钥)。不需要API密钥-使用公共平衡器API。
只读工具(API+链上)
| 工具 | 说明 |
|---|---|
balancer_get_pools |
列出V3池,包括TVL、交易量、APR、代币、权重、掉期费 |
balancer_get_pool_info |
详细的池信息:带有余额/价格/权重的代币,APR细分 |
balancer_get_user_positions |
用户跨池的BPT余额,估计为美元价值 |
balancer_swap_quote |
通过智能订单路由器(SOR)获得最佳掉期报价 |
balancer_add_liquidity_quote |
增加流动性的报价(不平衡或单一代币) |
balancer_remove_liquidity_quote |
移除流动性的报价(按比例或单一代币) |
事务处理工具(构建调用数据)
| 工具 | 说明 |
|---|---|
balancer_swap_build |
使用SOR路由和滑点保护构建掉期交易 |
balancer_add_liquidity_build |
通过代币审批建立添加流动性交易 |
balancer_remove_liquidity_build |
建立移除流动性交易 |
MCP服务器:Converx(mcp-convex)
提供21个工具用于与 融合金融 --曲线顶部的增产层。存款曲线LP代币,以获得增强的CRV+CVX奖励,持有CVX,转换和持有cvxCRV,并将CVX锁定为vlCVX进行治理。仅限以太坊主网。
这 mcp-convex 服务器构建事务调用数据(从不保存密钥)。
只读工具
| 工具 | 说明 |
|---|---|
convex_get_pools |
所有带有LP代币、奖励合约和状态的Converx池 |
convex_get_pool_info |
详细的池信息:总赌注、奖励率、额外奖励代币 |
convex_get_user_positions |
用户的质押余额、未决CRV和跨池的额外奖励 |
convex_get_claimable_rewards |
池中用户的待定CRV和额外奖励代币 |
convex_get_cvx_staking_info |
用户的CVX质押头寸和待定的cvxCRV奖励 |
convex_get_cvxcrv_staking_info |
用户的cvxCRV质押位置、奖励权重和余额 |
convex_get_vlcvx_info |
用户的vlCVX位置:锁定余额、投票权、锁定时间表、奖励 |
存款工具(构建calldata)
| 工具 | 说明 |
|---|---|
convex_deposit |
将Curve LP代币存入Converx,以提高CRV+CVX奖励 |
convex_withdraw |
从Converx中提取Curve LP令牌 |
convex_unstake_and_withdraw |
在一笔交易中解锁+提取LP代币(可选择领取奖励) |
奖励工具(构建通话数据)
| 工具 | 说明 |
|---|---|
convex_claim_rewards |
未决索赔CRV+CVX+池中的额外奖励 |
convex_earmark_rewards |
从Curve量表中获取一个池的CRV(任何人都可以打电话,赚取奖励费) |
CVX打桩工具(构建calldata)
| 工具 | 说明 |
|---|---|
convex_stake_cvx |
抵押CVX代币以获得cvxCRV奖励(平台费用) |
convex_unstake_cvx |
取消CVX,可选择领取待定奖励 |
cvxCRV工具(构建调用数据)
| 工具 | 说明 |
|---|---|
convex_convert_crv_to_cvxcrv |
将CRV转换为cvxCRV(不可逆——CRV锁定为veCRV) |
convex_stake_cvxcrv |
抵押cvxCRV以获得CRV、CVX和crvUSD奖励 |
convex_unstake_cvxcrv |
从质押包装器中取出cvxCRV |
convex_claim_cvxcrv_rewards |
cvxCRV质押的未决CRV、CVX和crvUSD索赔 |
vlCVX锁定工具(构建调用数据)
| 工具 | 说明 |
|---|---|
convex_lock_cvx |
将CVX锁定为vlCVX(16+周),用于治理投票+平台费用奖励 |
convex_process_expired_locks |
重新锁定或撤回过期的vlCVX锁 |
convex_claim_vlcvx_rewards |
向vlCVX申请未决平台费用奖励 |
MCP服务器:曲线(mcp-curve)
提供14个工具用于与 曲线金融 --最大的稳定币和类似资产DEX。查询池,提供流动性,持有CRV奖励的指标,并在以太坊、Polygon、Arbitrum、Optimism、Base和Avalanche上交换代币。
这 mcp-curve 服务器构建事务调用数据(从不保存密钥)。
只读工具
| 工具 | 说明 |
|---|---|
curve_get_pools |
带有TVL、令牌、CRV APY、仪表地址的链上的所有池 |
curve_get_pool_info |
详细的池信息:TVL、APY、有余额的代币、虚拟价格、费用、放大倍数 |
curve_get_pool_apy |
APY细分:基础(交易费)、CRV奖励(最小/最大提升)、奖金奖励 |
curve_get_user_positions |
用户的LP余额(钱包+质押仪表)、可申领奖励、美元价值 |
流动性工具(构建calldata)
| 工具 | 说明 |
|---|---|
curve_add_liquidity |
将代币存入池中以接收LP代币(单面或平衡) |
curve_remove_liquidity |
通过燃烧LP代币按比例提取所有代币 |
curve_remove_liquidity_one_coin |
通过燃烧LP代币提取单个代币 |
curve_calc_token_amount |
估算为存款或取款而铸造/燃烧的LP代币 |
测量工具(构建调用数据)
| 工具 | 说明 |
|---|---|
curve_stake_lp |
将LP代币抵押在一个仪表中,以获得CRV+奖金奖励 |
curve_unstake_lp |
从仪表中取出LP令牌 |
curve_claim_rewards |
从仪表中索赔未决CRV和奖金奖励代币 |
curve_get_claimable_rewards |
检查用户的待处理CRV和奖励令牌金额 |
交换工具(构建调用数据)
| 工具 | 说明 |
|---|---|
curve_swap_quote |
从特定的Curve池获取掉期报价 |
curve_swap_build |
在特定的Curve池上构建掉期交易 |
MCP服务器:GMX(mcp-gmx)
提供15个工具用于与 GMX V2 Arbitrum和Avalanche上的去中心化永久交换。
这 mcp-gmx 服务器构建事务调用数据(从不保存密钥)。它回来了 ExchangeRouter.multicall() 代理钱包在用户批准的情况下签名和发送的呼叫数据。GMX使用两步执行模型——用户事务创建一个挂单,然后管理员在几秒钟内以oracle价格执行它。
只读工具
| 工具 | 说明 |
|---|---|
gmx_get_markets |
所有提供指数/多头/空头代币的perp市场 |
gmx_get_market_info |
详细的市场数据:价格、OI、可用流动性 |
gmx_get_prices |
所有代币的当前oracle价格(最低/最高) |
gmx_get_positions |
具有杠杆、PNL、入场/标记/清算价格的未平仓头寸 |
gmx_get_position_pnl |
详细的PNL细分:基本PNL、借款费、融资费、价格影响、收盘费 |
gmx_get_orders |
挂单(TP/SL、限价单) |
事务处理工具(构建调用数据)
| 工具 | 说明 |
|---|---|
gmx_open_position |
使用抵押品、杠杆、可选TP/SL开立/增加头寸 |
gmx_close_position |
关闭或部分关闭头寸 |
gmx_set_take_profit |
在现有头寸上设置止盈触发顺序 |
gmx_set_stop_loss |
在现有头寸上设置止损触发顺序 |
gmx_update_order |
更新挂单的触发价格或大小 |
gmx_cancel_order |
取消待处理订单(退还执行费) |
gmx_deposit_collateral |
在不改变头寸规模的情况下为头寸添加抵押品 |
gmx_withdraw_collateral |
在不改变规模的情况下从头寸中移除抵押品 |
MCP服务器:超液体(mcp-hyperliquid)
提供16个工具,用于与 超液体 去中心化的永久交换。
注: 与AAVE/swap服务器(为代理生成要签名的调用数据)不同,Hyperliquid使用签名的API请求。这 mcp-hyperliquid 服务器持有 EVM_PRIVATE_KEY 并通过Hyperliquid API直接执行操作。调用时立即执行写入工具。
只读工具
| 工具 | 说明 |
|---|---|
hl_get_markets |
所有价格、交易量、OI、融资率的市场 |
hl_get_market_price |
特定硬币的价格详情 |
hl_get_orderbook |
L2订单簿快照 |
hl_get_positions |
具有杠杆、PNL、入场/标记/清算价格的未平仓头寸 |
hl_get_open_orders |
当前未结订单 |
hl_get_account_summary |
账户价值、保证金、可提取余额 |
hl_get_balances |
现货代币余额 |
hl_get_pnl_summary |
未实现PNL明细 |
hl_get_fills |
最近的交易充满了费用和关闭的PNL |
编写工具(立即执行)
| 工具 | 说明 |
|---|---|
hl_place_order |
下达市价单或限价单(多头/空头) |
hl_close_position |
关闭或减少头寸 |
hl_cancel_order |
取消特定订单 |
hl_cancel_all_orders |
取消所有未结订单(可选通过硬币) |
hl_update_leverage |
设置杠杆(交叉或孤立) |
hl_update_margin |
添加/删除孤立边距 |
hl_set_tp_sl |
设置止盈和/或止损触发订单 |
hl_cancel_tp_sl |
取消TP/SL订单 |
MCP服务器:Morpho(mcp-morpho)
提供13个工具用于与 摩菲 -通用借贷网络。通过Morpho-GraphQL API查询市场数据,并为以太坊、Base和Arbitrum上的供应、借贷、抵押品和保险库操作构建交易调用数据。
这 mcp-morpho 服务器构建事务调用数据(从不保存密钥)。不需要API密钥-使用公共Morpho-GraphQL API。
只读工具(GraphQL API)
| 工具 | 说明 |
|---|---|
morpho_get_markets |
列出供应/借用APY、TVL、利用率的市场 |
morpho_get_market_details |
按唯一密钥列出的详细市场信息 |
morpho_get_vaults |
列出带有APY、TVL和标的资产的保险库 |
morpho_get_vault_details |
按地址列出的详细保险库信息 |
morpho_get_user_market_position |
特定市场中的用户地位 |
morpho_get_user_vault_position |
用户在特定保险库中的位置 |
morpho_get_user_positions |
跨市场和保险库的所有用户头寸 |
事务处理工具(构建调用数据)
| 工具 | 说明 |
|---|---|
morpho_supply |
向市场提供(出借)代币以赚取利息 |
morpho_withdraw |
从市场中提取供应资产 |
morpho_supply_collateral |
向市场提供抵押品(借款前需要) |
morpho_withdraw_collateral |
从市场上撤回抵押品 |
morpho_borrow |
根据提供的抵押品借入代币 |
morpho_repay |
偿还借来的代币 |
morpho_vault_deposit |
存入Morpho保险库(ERC4626) |
morpho_vault_withdraw |
从Morpho保险库中取出(ERC4626) |
支撑链
EVM
- 以太坊,多边形,Arbitrum,乐观主义,基础,雪崩
索拉纳
- 主,Devnet。
平衡器V3
- 以太坊、Arbitrum、Base、乐观主义、雪崩
凸
- 以太坊
曲线
- 以太坊,多边形,Arbitrum,乐观主义,基础,雪崩
GMX V2
- Arbitrum,雪崩
超液体
- 主网(默认)、测试网(设置
HYPERLIQUID_TESTNET=true)
摩菲
- 以太坊、base、arbitrum
发展
# Watch mode (all packages)
pnpm dev
# Watch a specific package
pnpm --filter @web3-agent/core dev
pnpm --filter @web3-agent/agent dev
测试
要测试代理:
- 基本:启动代理并询问“我的钱包地址是什么?”
- 平衡:问“我在以太坊上的ETH余额是多少?”
- MCP集成:连接MCP服务器并询问协议数据(例如,AAVE供应速率)
- 交易(测试网):配置Sepolia/devnet RPC并测试小型本地令牌发送——验证是否出现批准提示
环境变量
| 变量 | 描述 |
|---|---|
ANTHROPIC_API_KEY |
无烟煤API密钥(必需) |
CLAUDE_MODEL |
要使用的Claude模型(默认值: claude-sonnet-4-5-20250929) |
EVM_PRIVATE_KEY |
EVM钱包私钥(0x-前缀十六进制) |
SOLANA_PRIVATE_KEY |
Solana钱包私钥(base58编码) |
ETHEREUM_RPC_URL |
以太坊RPC URL |
POLYGON_RPC_URL |
多边形RPC URL |
ARBITRUM_RPC_URL |
仲裁RPC URL |
OPTIMISM_RPC_URL |
乐观RPC URL |
BASE_RPC_URL |
基本RPC URL |
AVALANCHE_RPC_URL |
雪崩RPC URL |
SOLANA_MAINNET_RPC_URL |
Solana主网RPC URL |
SOLANA_DEVNET_RPC_URL |
Solana devnet RPC URL |
MCP_SERVERS_CONFIG_PATH |
MCP服务器配置文件的路径(默认: ./mcp-servers.json) |
MAX_TURNS |
每个查询的最大对话次数(默认值: 50) |
LOG_LEVEL |
日志记录级别(默认值: info) |
ZEROX_API_KEY |
用于EVM交换的0x API密钥(对于mcp-swap是必需的) |
JUPITER_API_KEY |
Jupiter API密钥用于索拉纳互换(可选,不适用但有费率限制) |
HYPERLIQUID_TESTNET |
设置为 true 使用Hyperliquit测试网(默认:主网) |
PORT |
MCP服务器HTTP端口(默认值: 3000 对于mcp-aave, 3007 对于mcp平衡器, 3005 对于mcp凸, 3004 对于mcp曲线, 3003 对于mcp-gmx, 3002 对于mcp超液体, 3006 对于mcp-morpho, 3001 用于mcp交换) |
API_KEY |
MCP服务器承载令牌身份验证(可选,留空以供开放访问) |
TELEGRAM_BOT_TOKEN |
来自@BotFather的Telegram机器人令牌(Telegram机器人需要) |
WALLET_ENCRYPTION_KEY |
用于加密数据库中每个用户钱包密钥的密码短语(Telegram机器人需要) |
DATABASE_URL |
PostgreSQL连接字符串(例如。 postgres://user:pass@host:5432/db) |