关于 Hyperliquid Agent Gateway
Hyperliquid Agent Gateway 是面向 Agent 的只读 MCP 服务,汇总 Hyperliquid 市场、账户与 HyperEVM 数据。无需密钥或签名,并通过缓存、限流和明确标注估算值处理数据。
主要功能
- 01永续与现货市场概览
- 02报价、订单簿、K 线与成交数据
- 03资金费率历史与套利筛选
- 04账户清算风险及交易活动分析
- 05HyperEVM 代币转账与余额查询
- 06缓存、限流及数据来源标注
适用场景
- 01查看市场报价与成交动态
- 02筛选资金费率机会并观察历史
- 03评估账户仓位的清算距离
- 04追踪地址交易活动与链上代币流
MCP 相关
作为只读 MCP 服务,向客户端提供 12 项 Hyperliquid 市场、账户和 HyperEVM 查询工具。支持本地 stdio 与 Streamable HTTP 连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
12收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sort | string | 否 | |
| limit | integer | 否 |
详细介绍
hyperliquid-agent-gateway
Hyperliquid 为你提供约 233 个永续合约、326 个现货交易对,以及一整条 EVM 链,所有数据都可通过公共端点读取。这个 MCP 服务负责为你的 Agent 获取这些数据:市场和资金费率数据、账户风险、交易者活动、HyperEVM(链 999)代币转账。无需密钥、无需签名、不会写入;所有请求都通过 api.hyperliquid.xyz/info 和 rpc.hyperliquid.xyz/evm 发送,并经过缓存和速率限制,避免过于热情的 Agent 向上游发起过多请求。
使用场景
清算工具是大家最常用的功能。输入任意地址,即可获得保证金摘要、各持仓杠杆,以及距离清算的幅度;如果平台公布了 liquidationPx,就会返回真实数值并明确标注;如果没有公布,则会返回估算值并注明是估算结果。我们曾在一个名义价值 2.09 亿美元、杠杆 25 倍的空头仓位上测试,当时该仓位距离清算仅有 17.6%。
资金费率:funding_carry_screener 通过一次调用为全部 233 个永续合约排名,然后只为排名靠前的少数合约获取 168 小时的历史数据,因为 API 的权重额度(每分钟 1200)会惩罚不加节制的请求。你可以据此判断某个费率是短暂飙升还是长期趋势。
HyperEVM 转账可将链上资金流与永续合约市场联系起来;quote 返回基于订单簿计算、始终位于 [bid, ask] 之间的中间价;trader_activity 则会分析任意地址的成交、费用、胜率、资金费率拖累和未平仓头寸。
完整操作指南:examples/use-cases.md。
快速开始
Claude Code:
claude mcp add hyperliquid -- uvx hyperliquid-agent-gateway
stdio(默认,用于本地 Agent):
uvx hyperliquid-agent-gateway
或者从代码库检出版本运行:
git clone https://github.com/alekskram/hyperliquid-agent-gateway
cd hyperliquid-agent-gateway
uv sync
uv run hyperliquid-agent-gateway
Claude Desktop / Cursor 配置:
{
"mcpServers": {
"hyperliquid": {
"command": "uvx",
"args": ["hyperliquid-agent-gateway"]
}
}
}
托管模式,使用端口 8903 上的可流式 HTTP:
uvx hyperliquid-agent-gateway --http # 127.0.0.1:8903
curl http://127.0.0.1:8903/health # -> {"ok": true, "service": "hyperliquid-agent-gateway", ...}
Codex(~/.codex/config.toml)
[mcp_servers.hyperliquid]
command = "uvx"
args = ["hyperliquid-agent-gateway"]
ZCode:注册服务(复制粘贴)
# 1) start the gateway (keep it running)
uvx hyperliquid-agent-gateway --http --port 8903 &
# 2) register it (merges into ~/.zcode/cli/config.json)
python3 - <<'PY'
import json, os
p = os.path.expanduser("~/.zcode/cli/config.json")
os.makedirs(os.path.dirname(p), exist_ok=True)
cfg = json.load(open(p)) if os.path.exists(p) else {}
cfg.setdefault("mcp", {}).setdefault("servers", {})["hyperliquid"] = {
"type": "http", "url": "http://127.0.0.1:8903/mcp"}
json.dump(cfg, open(p, "w"), indent=2)
print("hyperliquid-agent-gateway registered:", p)
PY
所有 12 个工具均为只读(标注为 readOnlyHint: true, destructiveHint: false, openWorldHint: true)。
| # | 工具 | 签名 | 功能 |
|---|---|---|---|
| 1 | market_overview | market_overview(limit=20, sort="open_interest") | 通过一次 metaAndAssetCtxs 调用获取永续市场快照:每种币的标记价格、未平仓合约量、日交易量、溢价、最大杠杆及汇总数据。sort 可选值为 {open_interest, volume, premium}。 |
| 2 | spot_overview | spot_overview(limit=20) | 通过 spotMeta + ctxs 获取现货交易对,并提供 HIP-1 到 ERC-20 的链接;将 @{index} 名称解析为易读的代币名称。 |
| 3 | quote | quote(coin) | 从 l2Book 获取买价/卖价/中间价/价差 + 最优档位数量。如果买卖双方报价都存在,mid 为盘口中间价 (bid+ask)/2(mid_source: "book");只有当盘口缺少一侧时,allMids 才作为带标签的回退值(mid_source: "allMids");两者都无法识别该币时,mid_source: null。买卖双方报价都存在时,mid 始终处于 [bid, ask] 范围内。coin 是唯一参数(没有 size/limit)。未知币种会报错并提供 5 个示例。 |
| 4 | order_book | order_book(coin, depth=10) | 按方向提供盘口档位,使用 nSigFigs 聚合,并提供每侧的总流动性。 |
| 5 | candles | candles(coin, interval="1h", limit=100) | 按时间从新到旧排列的 OHLCV 行;间隔为 1m/15m/1h/4h/1d/1w/1M;根据 limit 计算 startTime。 |
| 6 | trades | trades(coin, limit=20) | 最近的公开成交记录,包含双方地址(users: [maker, taker])。 |
| 7 | funding_history | funding_history(coin, limit=100) | 每小时资金费率记录 + 来自实时资产 ctx 的 premium_now。 |
| 8 | liquidation_risk | liquidation_risk(address) | 账户级风险:保证金摘要、全仓维持保证金、每个仓位的杠杆 + 已发布时的 liquidationPx;若为 null,则根据维持保证金比率明确标记估算距离。由于实时仓位不含 markPx,因此通过 metaAndAssetCtxs 按币种解析标记价格(回退至 allMids)——请参阅每行的 mark_px_source。包含资金费率拖累。 |
| 9 | trader_activity | trader_activity(address, limit=50) | 成交盈亏/费用/交易量/胜率、资金费净额、未平仓仓位及按币种细分数据。 |
| 10 | funding_carry_screener | funding_carry_screener(topN=10, metric="premium") | 通过一次调用对所有永续合约进行排名;仅为前 topN 个获取 fundingHistory(节省权重)。 |
| 11 | token_transfers | token_transfers(contract, limit=100, from_block=None) | 通过自适应窗口 eth_getLogs 获取 HyperEVM ERC-20 Transfer 日志;各行包含 from/to/value/txHash/blockNumber/ts,以及每个代币的 decimals + decimals_source(静态映射或 assumed_18)。 |
| 12 | wallet_balance | wallet_balance(address) | 原生余额(eth_getBalance)+ 最多 20 种 ERC-20 余额(eth_call balanceOf,从 spotMeta 解析)+ Hyperliquid 现货余额;每行均包含 decimals/decimals_source。 |
为什么使用网关,而不是原始 API?
api.hyperliquid.xyz/info 是开放的,只需一次 POST 即可访问。真正的陷阱在后面:
| 原始 API 提供 | 你需要自行构建 |
|---|---|
两个相互矛盾的中间价来源(allMids 与 l2Book) | 采用盘口推导的中间价,确保其始终处于 [bid, ask] 范围内,并为回退值添加标签 |
candleSnapshot 的缓存键忽略嵌套请求参数 | 按币种隔离缓存(简单地使用首个币种作为键会污染 TTL 内后续所有币种的缓存) |
| 以基础单位表示的 OI、以每小时利率表示的资金费率 | 单位标准化(×价格)、年化持有收益计算,以及仅为排名前 N 名获取历史记录的一次调用筛选器 |
不含 markPx 的实时仓位 | 按币种解析标记价格,为每行添加 mark_px_source 标签,并标记清算距离是估算值还是已发布值 |
| 原始 HyperEVM RPC | 自适应窗口 eth_getLogs,以及带有 decimals_source 来源信息的精度解析 |
速率限制
两个相互独立、在本地执行的预算用于保护上游:
/info - 每滚动 60s 1200 权重(Hyperliquid 记录的权重定价),按请求类型跟踪:
| 类型 | 权重 |
|---|---|
allMids | 2 |
l2Book | 2 |
meta、metaAndAssetCtxs、spotMeta、spotMetaAndAssetCtxs | 20 |
recentTrades、clearinghouseState、userFills、userFunding、spotClearinghouseState | 20 |
fundingHistory | 基础权重 20 + 每超过前 20 项的额外权重 |
candleSnapshot | 60 |
当下一个请求将超出预算时,客户端会等待一次(<=5s),让时间窗口滚动,然后抛出明确指出限制的错误——绝不会无限期阻塞休眠。
HyperEVM RPC - 每滚动 60s 100 个请求(每个请求固定计为 1),独立于 /info 执行限制。超出预算的调用会立即报错(rpc-limit)——工具会返回如实的错误字典,而 wallet_balance 会在达到上限时停止扫描 ERC-20。
TTL 缓存还会按数据类型去重重复调用:allMids 15s、recentTrades 15s、l2Book 5s、metaAndAssetCtxs 60s、spotMeta 3600s、spotMetaAndAssetCtxs 60s、candleSnapshot 300s、fundingHistory 300s、按地址区分的账户类型 60s。
数据说明
- API 返回的所有数值在上游均为字符串;网关使用不会抛出异常的辅助函数解析——
null始终表示“不可用”,绝不表示零。 - 所有上游故障都会返回错误字典
{"error": ..., "source": ..., "reason": ...},绝不返回回溯信息;部分数据会按字段降级,并附带warnings[]。 liquidation_risk绝不会凭空编造清算价格:当平台未提供清算价格时,liq_px会保持为null,距离则是明确标记的估算值(公式见工具说明)。同样不会凭空编造标记价格:实时持仓不包含markPx,因此会从metaAndAssetCtxs(回退至allMids)解析,且行中的mark_px_source会注明来源;没有来源时为null。funding_drag/funding_net:平台的userFunding仅返回非零资金费事件,因此对于新地址或近期无活动的地址,实时返回null/ 空值属于预期行为,并非错误。- ERC-20 数量使用适用于标准 HyperEVM 代币的静态小数位映射(USDC/USDT 类为 6,PURR/HYPE 为 18);未知代币默认按 18 位处理,且每行都会注明
decimals_source: "assumed_18"——对于未映射的代币,不要相信 6 位小数精度。 - 缓存的响应会携带
age_seconds/fetched_at新鲜度字段。
套件中的其他项目
四个同系列的只读 MCP 网关:无需密钥、带缓存、如实降级。
| 网关 | 重点 |
|---|---|
| dydx-agent-gateway | dYdX v4:经验证的交易者 PnL、资金费 / OI 异常检测器、排行榜 |
| arcus-agent-gateway | Robinhood Chain 上的 194 种代币化美国股票:报价、持有者、大额转账 |
| hyperliquid-agent-gateway(你正在查看) | Hyperliquid:233 种永续合约 + 现货、资金费套利、账户风险、HyperEVM |
| aster-agent-gateway | Aster DEX:约 580 种期货合约,包括 24/7 TradFi 永续合约、资金费率上限 / 下限 |
这四个项目都已上架 glama.ai 和 PyPI;任何一个都可通过 uvx <name> 安装。
许可证
MIT。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。