加密货币钱包AI代理

一个基于Claude Agent SDK的加密货币钱包AI代理,支持EVM和Solana链的私钥管理,通过与外部MCP服务器交互构建可信交易数据,并在用户明确批准后执行链上交易。

  • by whatl3y
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 whatl3y/web3-agent

使用说明

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

运作原理

  1. 用户发送消息(例如,“在以太坊上向AAVE提供100 USDC”)
  2. Claude对请求进行推理,并调用外部MCP服务器工具来构建事务调用数据
  3. MCP服务器返回原始呼叫数据({ chainId, transactions: [{ to, data, value }] })他们从不拿钥匙
  4. Claude向用户解释交易步骤,然后调用 wallet_execute_calldata (EVM)或 wallet_execute_solana_transaction (索拉纳)
  5. 这 canUseTool 回调拦截并显示交易详细信息,提示用户批准
  6. 在获得批准后,交易将使用代理的私钥进行签名,并按顺序在链上发送

先决条件

  • 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

测试

要测试代理:

  1. 基本:启动代理并询问“我的钱包地址是什么?”
  2. 平衡:问“我在以太坊上的ETH余额是多少?”
  3. MCP集成:连接MCP服务器并询问协议数据(例如,AAVE供应速率)
  4. 交易(测试网):配置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)