An MCP server that provides real-time data and insights from the Hyperliquid perp DEX for use in bots, dashboards, and analytics.
An MCP server that provides real-time data and insights from the Hyperliquid perp DEX for use in bots, dashboards, and analytics.
User Data Queries:
get_user_state
: Fetch user positions, margin, and withdrawable balance for perpetuals or spot markets.get_user_open_orders
: Retrieve all open orders for a user account.get_user_trade_history
: Get trade fill history with details like symbol, size, and price.get_user_funding_history
: Query funding payment history with customizable time ranges.get_user_fees
: Fetch user-specific fee structures (maker/taker rates).get_user_staking_summary
& get_user_staking_rewards
: Access staking details and rewards.get_user_order_by_oid
& get_user_order_by_cloid
: Retrieve specific order details by order ID or client order ID.get_user_sub_accounts
: List sub-accounts associated with a main account.Market Data Tools:
get_all_mids
: Get mid prices for all trading pairs.get_l2_snapshot
: Fetch Level 2 order book snapshots for a specific coin.get_candles_snapshot
: Retrieve candlestick data with customizable intervals and time ranges.get_coin_funding_history
: Query funding rate history for a specific coin.get_perp_dexs
: Fetch metadata about perpetual markets (using meta
).get_perp_metadata
& get_spot_metadata
: Get detailed metadata for perpetual and spot markets, with optional asset contexts.Analysis Prompt:
analyze_positions
: A guided prompt to analyze user trading activity using relevant tools.ISO 8601 Support: Time-based queries (get_candles_snapshot
, get_coin_funding_history
, get_user_funding_history
) accept ISO 8601 time strings for precise data filtering.
Clone the Repository:
git clone https://github.com/kukapay/hyperliquid-info-mcp.git
cd hyperliquid-info-mcp
Install Dependencies:
Using uv
:
uv sync
Run the server in development mode with MCP Inspector:
mcp dev main.py
Or install it for use in Claude Desktop:
mcp install main.py --name "Hyperliquid Info"
Using the MCP Inspector or Claude Desktop, you can interact with the server using natural language prompts. Below are examples of how to trigger the analyze_positions
prompt and individual tools conversationally.
Analyze Trading Positions:
analyze_positions
prompt, which uses get_user_state
, get_user_open_orders
, get_user_trade_history
, get_user_funding_history
, and get_user_fees
to fetch data and generate a risk/performance analysis.For account 0xYourAddress:
- Current Positions: 0.1 BTC long at $50,000, unrealized PNL +$500.
- Open Orders: 1 limit order to sell 0.05 BTC at $52,000.
- Recent Trades: Bought 0.1 BTC at $50,000 on 2025-05-30.
- Funding Payments: Paid $10 in funding fees last week.
- Fees: Maker fee 0.02%, taker fee 0.05%.
Recommendation: Monitor BTC price closely due to high leverage.
Fetch User State:
get_user_state(account_address="0xYourAddress", check_spot=False)
.{
"assetPositions": [
{
"position": {
"coin": "BTC",
"szi": "0.1",
"entryPx": "50000.0",
"markPx": "50500.0",
"unrealizedPnl": "500.0"
}
}
],
"marginSummary": {
"accountValue": "10000.0",
"totalMarginUsed": "2000.0"
},
"withdrawable": "8000.0"
}
Get Candlestick Data:
get_candles_snapshot(coin_name="ETH", interval="1m", start_time="2025-01-01T00:00:00Z", end_time="2025-01-02T00:00:00Z")
.[
{
"t": 1672531200000,
"o": "3000.0",
"h": "3010.0",
"l": "2995.0",
"c": "3005.0",
"v": "1000.0"
},
...
]
Check Trade History:
get_user_trade_history(account_address="0xYourAddress")
.[
{
"coin": "ETH",
"px": "3000.0",
"sz": "0.5",
"time": 1672531200000,
"tid": "123456"
},
...
]
Fetch Market Metadata:
get_perp_metadata(include_asset_ctxs=False)
.{
"universe": [
{
"name": "BTC-PERP",
"maxLeverage": 50,
"szDecimals": 4,
"tickSz": "0.1"
},
...
]
}
This project is licensed under the MIT License.