Hyperliquid Agent Gateway について
Hyperliquid Agent Gatewayは、Hyperliquidの市場・口座・HyperEVMデータを扱う、エージェント向けの読み取り専用MCPサーバーです。鍵や署名は不要で、キャッシュやレート制限を備え、推定値も明示します。
主な機能
- 01無期限先物と現物の市場概要
- 02気配値、板、ローソク足、取引データ
- 03ファンディング履歴とキャリー検索
- 04口座の清算リスクと取引分析
- 05HyperEVMのトークン送金と残高照会
- 06キャッシュ、レート制限、データ元の表示
活用シーン
- 01市場の気配値と直近取引の確認
- 02ファンディングレートの検索と履歴確認
- 03口座ポジションの清算距離の評価
- 04アドレスの取引活動とオンチェーン資金移動の追跡
MCP 対応
読み取り専用MCPサーバーとして、Hyperliquidの市場、口座、HyperEVMを照会する12個のツールをクライアントに提供します。ローカルstdioとStreamable HTTPに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
12掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| sort | string | いいえ | |
| limit | integer | いいえ |
詳細
hyperliquid-agent-gateway
Hyperliquidでは、約233の無期限先物、326のスポット取引ペア、EVMチェーン全体の情報を、すべてパブリックエンドポイントから読み取れます。このMCP サーバーは、エージェントに代わってその情報を読み取ります。市場やファンディングのデータ、アカウントごとのリスク、トレーダーの活動、HyperEVM(チェーン999)のトークン送金に対応しています。キーも署名も書き込みも不要です。すべてのリクエストはapi.hyperliquid.xyz/infoとrpc.hyperliquid.xyz/evm経由で処理され、キャッシュとレート制限により、意欲的なエージェントが上流に過剰なリクエストを送るのを防ぎます。
ユースケース
清算ツールは、利用者が最も求める機能です。任意のアドレスを渡すと、証拠金の概要、ポジションごとのレバレッジ、清算までの距離が得られます。取引所がliquidationPxを公開している場合は、実際の数値をその旨とともに返します。公開していない場合は、推定値であることを明記した推定値を返します。崖っぷちまで17.6%の距離にあった、想定元本2億900万ドル、レバレッジ25倍のショートポジションでテストしました。
ファンディング: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(デフォルト。ローカルエージェント向け):
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") | 1 回の 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 です。startTime は limit から計算されます。 |
| 6 | trades | trades(coin, limit=20) | 両サイドのアドレス(users: [maker, taker])を含む、直近の公開約定を取得します。 |
| 7 | funding_history | funding_history(coin, limit=100) | 1 時間ごとのファンディング行と、ライブのアセット 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") | 1 回の呼び出しで、すべての無期限先物をランキングします。fundingHistory は上位 topN に対してのみ取得されます(重みを節約)。 |
| 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 を 1 回送るだけで利用できます。しかし、その先には落とし穴があります。
| 生の API で得られるもの | 自分で実装する必要があるもの |
|---|---|
結果が一致しない 2 つの仲値ソース(allMids と l2Book) | [bid, ask] の範囲外にならない板ベースの仲値を徹底し、フォールバックの出所を明記すること |
ネストされたリクエストパラメーターを無視するキャッシュキーを持つ candleSnapshot | コインごとのキャッシュ分離(単純な最初のコインのキーでは、TTL の間、その後のすべてのコインが不正な結果になります) |
| 基準通貨単位の OI、時間あたりのレートとしてのファンディング | 単位の正規化(×価格)、年率換算したキャリーの計算、上位 N 件のみの履歴を取得する 1 回呼び出しのスクリーナー |
markPx を持たないライブポジション | 各行に mark_px_source タグを付けてコインごとのマーク価格を解決すること、および推定/公開済みの清算距離フラグ |
| 生の HyperEVM RPC | 適応型ウィンドウの eth_getLogs、および decimals_source の出所情報を伴う decimals の解決 |
レート制限
上流サービスを保護するため、独立した2つの予算をローカルで適用しています。
/info - ローリング60秒あたり1200ウェイト(Hyperliquidが公開しているウェイト料金)。リクエストの種類ごとに追跡されます。
| 種類 | ウェイト |
|---|---|
allMids | 2 |
l2Book | 2 |
meta、metaAndAssetCtxs、spotMeta、spotMetaAndAssetCtxs | 20 |
recentTrades、clearinghouseState、userFills、userFunding、spotClearinghouseState | 20 |
fundingHistory | 基本20 + 最初の20件を超える分について追加 |
candleSnapshot | 60 |
次のリクエストで予算を超える場合、クライアントはウィンドウが更新されるまで1回だけ(最大5秒)待機し、制限を明示したエラーを発生させます。無期限にスリープしてブロックすることはありません。
HyperEVM RPC - ローリング60秒あたり100リクエスト(各リクエスト一律1)。/infoとは別に適用されます。予算超過の呼び出しは直ちにエラー(rpc-limit)を発生させます。ツールは適切なエラーディクショナリを返し、wallet_balanceは上限に達した時点でERC-20のスキャンを停止します。
TTLキャッシュでは、データの種類ごとに繰り返しの呼び出しも重複排除します。allMidsは15秒、recentTradesは15秒、l2Bookは5秒、metaAndAssetCtxsは60秒、spotMetaは3600秒、spotMetaAndAssetCtxsは60秒、candleSnapshotは300秒、fundingHistoryは300秒、アドレスごとのアカウント情報は60秒です。
データに関する注意事項
- APIからの数値はすべて、上流ではSTRINGです。ゲートウェイは例外を発生させないヘルパーで解析します。
nullは常に「利用不可」を意味し、ゼロを意味することはありません。 - 上流でのエラーはすべて、トレースバックではなく、エラーディクショナリ
{"error": ..., "source": ..., "reason": ...}を返します。部分的なデータはフィールドごとに劣化し、warnings[]に記録されます。 liquidation_riskは清算価格を捏造しません。取引所が清算価格を公開していない場合、liq_pxはnullのままで、距離は推定値であることを明示します(計算式はツールの注記を参照)。Mark価格も捏造しません。ライブポジションには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ゲートウェイが4つあります。いずれも同じ設計方針で、キー不要、キャッシュ対応、データの劣化を正直に示します。
| ゲートウェイ | 対象 |
|---|---|
| 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時間365日取引可能なTradFi無期限先物を含む)、資金調達の上限/下限 |
4つすべてがglama.aiとPyPIで公開されています。どれもuvx <name>でインストールできます。
ライセンス
MIT。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。