Hyperliquid MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Hyperliquid MCPWhat's my BTC PnL?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
π’ Hyperliquid MCP
Control your Hyperliquid perps from Claude (or any MCP client) using natural language.
"What's my BTC PnL?" β Claude fetches your positions and answers in seconds.
"Buy 0.1 ETH at market" β Claude places the order via Hyperliquid API.
Built with the Model Context Protocol β the open standard for connecting AI to external tools.
β¨ Features
Tool | Description |
| Prices for all assets |
| L2 bids/asks for any asset |
| Market info (leverage, tick size) |
| OHLCV history (1m β 1d) |
| Positions, equity, margin, PnL |
| Active orders |
| Trade history |
| Trade history filtered by coin, with win rate & PnL |
| Funding rate history |
| Predicted next-8h funding across venues |
| Mark, oracle, funding, OI, 24h change for BTC/ETH/XRP/SOL |
| Live tape with buy/sell imbalance |
| Place limit or market orders |
| Cancel specific order |
| Cancel all orders (optional: by coin) |
| Close entire position |
| Set leverage (cross or isolated) |
Related MCP server: hyperliquid-mcp
π Quick Start
1. Install
pip install hyperliquid-mcpOr run directly without installing:
uvx hyperliquid-mcp2. Configure Claude Desktop
Open ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows) and add:
Read-only mode (positions, prices, history β no private key needed):
{
"mcpServers": {
"hyperliquid": {
"command": "uvx",
"args": ["hyperliquid-mcp"],
"env": {
"HL_WALLET_ADDRESS": "0xYourWalletAddressHere"
}
}
}
}Trading mode (place orders, cancel, close positions):
{
"mcpServers": {
"hyperliquid": {
"command": "uvx",
"args": ["hyperliquid-mcp"],
"env": {
"HL_PRIVATE_KEY": "0xYourPrivateKeyHere"
}
}
}
}β οΈ Never share your private key. It stays on your machine β this server runs locally via stdio, no data is sent anywhere except Hyperliquid's official API.
3. Restart Claude Desktop and start chatting
What are my open positions?
What's the ETH funding rate this week?
Place a limit order to buy 0.5 SOL at $150π§ Manual Setup (from source)
git clone https://github.com/erscoder/hyperliquid-mcp
cd hyperliquid-mcp
pip install -e .
cp .env.example .env
# Edit .env with your wallet address or private keyThen in claude_desktop_config.json:
{
"mcpServers": {
"hyperliquid": {
"command": "python",
"args": ["-m", "hyperliquid_mcp"],
"cwd": "/path/to/hyperliquid-mcp",
"env": {
"HL_WALLET_ADDRESS": "0xYourWalletAddressHere"
}
}
}
}π Security
Your keys never leave your machine. The server runs locally via stdio transport.
Read-only by default. Set only
HL_WALLET_ADDRESSif you don't want trading enabled.Trading requires
HL_PRIVATE_KEY. Without it, all trading tools return an error.Use a dedicated trading wallet with limited funds for extra safety.
π€ Use in AI Agents
MCP is not just for chat clients. Use hyperliquid-mcp as the trading layer inside any autonomous agent.
LangChain / LangGraph
from langchain_mcp_adapters.client import MultiServerMCPClient
client = MultiServerMCPClient({
"hyperliquid": {
"command": "uvx",
"args": ["hyperliquid-mcp"],
"transport": "stdio",
"env": {"HL_WALLET_ADDRESS": "0xYourWallet"}
}
})
tools = await client.get_tools()
# tools now includes hl_get_user_state, hl_get_orderbook, etc.
# Pass them to any LangChain agent or LangGraph nodeCrewAI
from crewai import Agent
from crewai_tools import MCPTool
hl_tools = MCPTool.from_server(
command="uvx",
args=["hyperliquid-mcp"],
env={"HL_WALLET_ADDRESS": "0xYourWallet"}
)
trader = Agent(
role="Trading Analyst",
goal="Monitor Hyperliquid positions and funding rates",
tools=hl_tools
)Custom agent (MCP Python SDK)
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
server_params = StdioServerParameters(
command="uvx",
args=["hyperliquid-mcp"],
env={"HL_WALLET_ADDRESS": "0xYourWallet"}
)
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
result = await session.call_tool("hl_get_user_state", {})
print(result.content)Agent ideas:
Portfolio monitor that alerts when funding rates spike above threshold
Risk manager that auto-closes positions when drawdown exceeds limit
Arbitrage scanner comparing funding across assets
Morning briefing agent that summarizes overnight PnL and open positions
π¬ Other MCP Clients
Works with any MCP-compatible client:
Claude Desktop β see Quick Start above
VS Code (Copilot) β add to
.vscode/mcp.jsonCursor β add to MCP settings
Continue.dev β add to config
π License
MIT β free to use, fork, and contribute.
π Star History
If this saved you time, a β goes a long way!
Available Tools
13 toolshl_cancel_all_ordersA
Cancel all open orders, optionally filtered by coin. Requires HL_PRIVATE_KEY in env.
Args: coin: Optional asset symbol to filter (None cancels all)
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description carries full burden. It states cancellation of open orders and auth requirement, but lacks details on irreversibility, confirmation, or effects on partially filled orders.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short and front-loaded with purpose. The args section adds clarity but could be merged with the first sentence for tighter structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, return values need no explanation. Tool purpose, parameter, and auth are covered. Could mention error conditions or rate limits, but adequate for simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 0%, but description explains coin parameter as optional filter and default behavior (None cancels all), adding clear semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'cancel' with resource 'all open orders' and optional filtering by coin. Distinct from sibling hl_cancel_order which cancels a single order.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit prerequisite 'Requires HL_PRIVATE_KEY in env.' Implicitly when to use versus alternatives understood from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hl_cancel_orderA
Cancel a specific order by order ID. Requires HL_PRIVATE_KEY in env.
Args: coin: Asset symbol e.g. BTC oid: Order ID to cancel
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | ||
| oid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations were provided, so the description carries the burden. It adds the environment key requirement, which is valuable, but does not disclose what happens on failure (e.g., order not found, already canceled) or any side effects, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is very concise with three lines: purpose, requirement, and parameter list. No extraneous text, front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (reduces need to explain return values) and a sibling tool, the description adequately covers key aspects. However, missing details like error handling and idempotency could leave an agent underinformed for a cancellation operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description provides clear, meaningful explanations for both parameters: 'Asset symbol e.g. BTC' for coin and 'Order ID to cancel' for oid. This adds value beyond the schema's bare titles and types, though could be more precise about format constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Cancel a specific order by order ID', using a specific verb and resource. It distinguishes from sibling 'hl_cancel_all_orders' by emphasizing 'specific order'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions prerequisite 'Requires HL_PRIVATE_KEY in env', which is useful. Implicitly distinguishes from cancel-all sibling by specifying 'specific order', but does not explicitly state when not to use or provide alternative scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hl_close_positionA
Close the entire position for a specific asset using a market order. Requires HL_PRIVATE_KEY in env.
Args: coin: Asset symbol e.g. BTC, ETH
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the burden. It discloses the use of a market order and the key requirement, but lacks details on side effects (e.g., irreversibility, slippage risk, or behavior when no position exists).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, containing two sentences and an args line. Every sentence adds value, with the main action front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter and an output schema (not shown), the description is largely complete. It defines the action, precondition, and parameter adequately for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description adds meaning by explaining 'coin' as an asset symbol and providing examples (BTC, ETH). This goes beyond the schema's type declaration.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Close the entire position' using a market order for a specific asset, distinguishing it from sibling tools like hl_place_order or hl_cancel_order.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for closing an entire position but does not explicitly state when to use versus siblings or when not to use. It mentions a prerequisite (HL_PRIVATE_KEY in env).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hl_get_all_midsA
Get mid prices for all assets on Hyperliquid.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose behavioral traits such as rate limits, caching, or constancy of data; it is adequate but minimal for a read-only fetch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words, perfectly conveying the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and an output schema provided, the description is sufficient for basic understanding, though it could briefly mention output format or typical use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema description coverage is 100%, so the description need not add parameter semantics; baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'mid prices for all assets on Hyperliquid', making the tool's purpose explicit and distinguishing it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives; it is implied to be for fetching mid prices, but no explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hl_get_candlesB
Get OHLCV candles for a specific asset.
Args: coin: Asset symbol e.g. BTC, ETH, SOL interval: 1m, 5m, 15m, 30m, 1h, 4h, 8h, 1d (default 1h) limit: Number of candles to return (default 50)
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | ||
| interval | No | 1h | |
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It fails to mention any traits such as authentication requirements, rate limits, data freshness, or side effects. The only behavioral hint is the default parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: one sentence for purpose, then a parameter list. It is front-loaded with the action. However, the parameter list could be integrated into prose to be even leaner, but it is not excessively verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple data retrieval tool with an output schema (context signal), the description is minimally complete. It covers the basics of what the tool returns and required inputs, but lacks optional context like error handling or assurance of uniqueness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides clear examples for coin (e.g., BTC, ETH, SOL), enumerates valid intervals with default, and explains limit as number of candles. This adds meaning beyond raw schema types and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it gets OHLCV candles for a specific asset, using a specific verb ('Get') and resource ('OHLCV candles'). It clearly distinguishes from siblings like order management tools, as candles are a data-retrieval function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., hl_get_all_mids, hl_get_orderbook). The description only specifies what it does, not when it is appropriate or when to avoid it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hl_get_fillsA
Get your recent trade history (fills). Requires HL_WALLET_ADDRESS or HL_PRIVATE_KEY in env.
Args: limit: Number of recent trades to return (default 50)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It indicates a read operation ('get') but does not explicitly state it is non-destructive, nor does it disclose rate limits or whether it returns a list. The presence of an output schema partially compensates, but more detail on behavior would improve clarity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences and an args line, with the purpose front-loaded. Every sentence adds value, with no unnecessary content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter, an output schema (so return structure is documented elsewhere), and sibling context, the description is largely complete. It could mention maximum limit or absence of results, but it adequately supports agent selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'limit' has 0% schema description coverage, but the description fully explains it: 'Number of recent trades to return (default 50)'. This adds necessary meaning beyond the schema's type and default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get your recent trade history (fills)', which uses a specific verb ('get') and resource ('fills'), distinguishing it from sibling tools like hl_get_open_orders or hl_get_user_state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes the prerequisite of environment variables (HL_WALLET_ADDRESS or HL_PRIVATE_KEY), providing clear context. It does not explicitly state when not to use the tool or list alternatives, but the sibling list implies differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hl_get_funding_historyB
Get funding rate history for a specific asset.
Args: coin: Asset symbol e.g. BTC, ETH, SOL days: Number of days of history (default 7)
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | ||
| days | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does not disclose any behavioral traits such as authentication requirements, rate limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with two explanatory sentences for parameters, achieving high information density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with an output schema, the description adequately covers purpose and parameters, though it could mention any limits or pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema coverage, the description adds concrete examples ('BTC, ETH, SOL') for the coin parameter and explains the default for days, compensating well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('funding rate history') for a specific asset, distinguishing it from sibling tools like hl_get_candles or hl_get_orderbook.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor are there any exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hl_get_metaA
Get metadata for all markets: max leverage, tick size, lot size.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. For a parameterless, read-only metadata retrieval, the behavior is transparentβno side effects, no hidden traits. It adds no unnecessary detail but is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 8 words, front-loading the core purpose. Every word earns its place; no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no input parameters and an output schema exists, the description adequately summarizes what is retrieved. It lists key metadata items, though the output schema provides full details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so baseline is 4 per instructions. The schema coverage is 100% trivially, and the description adds no further parameter information, which is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves metadata for all markets and lists specific data points (max leverage, tick size, lot size), using a specific verb+resource pattern. It distinguishes itself from sibling tools, which deal with orders, candles, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. The context is implied but not stated, and no alternatives are mentioned. It meets minimum viability for a simple info tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hl_get_open_ordersA
Get all your open orders on Hyperliquid. Requires HL_WALLET_ADDRESS or HL_PRIVATE_KEY in env.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It explains the auth requirement (env vars) but lacks details on whether the tool is read-only, if it returns all orders at once, or any other constraints beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, no unnecessary words, and front-loads the purpose immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and an output schema, the description is mostly complete. It covers the basic purpose and auth requirements, though it could briefly mention that it returns all open orders without filtering.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the baseline is 4 per guidelines. The description adds no parameter information, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves all open orders on Hyperliquid, using a specific verb and resource. It is distinct from siblings like hl_cancel_order or hl_place_order, which handle different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells users when to use the tool (to get open orders) and specifies required environment variables. However, it does not provide explicit guidance on when not to use it or mention alternatives from sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hl_get_orderbookA
Get L2 orderbook (bids/asks) for a specific asset.
Args: coin: Asset symbol e.g. BTC, ETH, SOL depth: Number of price levels to return (default 10)
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | ||
| depth | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits beyond the basic operation, such as whether it returns a snapshot, is read-only, or any side effects. The read-only nature is implied by the verb 'Get' but not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with purpose, and every sentence adds value without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with an output schema, the description covers the key information needed to use it. Could optionally mention that it returns a snapshot, but it is still adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds meaningful examples for 'coin' (e.g., BTC, ETH, SOL) and explains 'depth' as number of price levels with a default of 10, providing context beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it gets L2 orderbook (bids/asks) for a specific asset, with a specific verb and resource. It is distinct from sibling tools that are for placing/canceling orders or getting other data like candles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. Usage is implied by the tool name and sibling context, but there is no guidance on exclusions or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hl_get_user_stateA
Get your Hyperliquid account: positions, equity, margin, unrealized PnL. Requires HL_WALLET_ADDRESS (read-only) or HL_PRIVATE_KEY (trading) in env.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses authentication requirements via env vars, but lacks details on side effects, rate limits, or whether the tool is read-only. The mention of private key implies potential write capability, but this is ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose and output components, second states prerequisite. No wasted words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and existence of output schema, description covers main purpose, output components, and required environment setup. Minor gap: could mention that call returns full account snapshot.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0 parameters with 100% coverage; baseline of 3 applies. Description adds no param-specific meaning because none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool gets the user's Hyperliquid account state including positions, equity, margin, and unrealized PnL. It differentiates from sibling tools which handle orders, positions, market data, and leverage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description specifies required environment variables (HL_WALLET_ADDRESS or HL_PRIVATE_KEY) for using the tool. It does not explicitly exclude alternatives but context makes it clear this is for reading overall account state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hl_place_orderA
Place an order on Hyperliquid. Requires HL_PRIVATE_KEY in env.
Args: coin: Asset symbol e.g. BTC, ETH, SOL is_buy: True for long/buy, False for short/sell size: Position size in coins price: Limit price (None for market order) order_type: limit or market (default limit) reduce_only: Only reduce existing position (default False)
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | ||
| is_buy | Yes | ||
| size | Yes | ||
| price | No | ||
| order_type | No | limit | |
| reduce_only | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the need for HL_PRIVATE_KEY and the reduce_only behavior, but does not explain side effects (e.g., fund deduction) or what the tool returns. With no annotations, more behavioral context would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear 'Args:' section. Each sentence serves a purpose, though the overall structure could be more front-loaded with a stronger summary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool complexity (6 parameters, trading context) and the presence of an output schema, the description covers the key inputs but lacks details on output, error handling, and trading risks. It is adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description provides meaningful explanations for each parameter (e.g., 'True for long/buy, False for short/sell', 'None for market order'), adding significant value beyond the schema types and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Place an order on Hyperliquid' with a specific verb and resource. It lists all parameters and their meanings, and the tool name and sibling names help distinguish it from order cancellation and position management tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide when or when not to use this tool versus alternatives like limit vs market orders, or compared to other order-related siblings. It mentions authentication but lacks explicit guidance on context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hl_set_leverageA
Set leverage for a specific asset. Requires HL_PRIVATE_KEY in env.
Args: coin: Asset symbol e.g. BTC, ETH leverage: Leverage multiplier e.g. 5, 10, 20 is_cross: True for cross margin, False for isolated (default True)
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | ||
| leverage | Yes | ||
| is_cross | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It only states that leverage is set and requires authentication, but fails to disclose potential side effects (e.g., affecting open positions), rate limits, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear purpose sentence, an env requirement note, and an Args block. It is front-loaded and efficient, though the Args block could be more tightly integrated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters, no schema descriptions, and no annotations, the description adequately explains parameters but omits return value details (though an output schema exists). Missing information on behavioral context like prerequisites beyond env key (e.g., position existence).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the bare schema: it explains coin as 'Asset symbol e.g. BTC, ETH', leverage as 'Leverage multiplier e.g. 5, 10, 20', and is_cross as 'True for cross margin, False for isolated'. This compensates for the 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Set leverage for a specific asset,' which is a specific verb and resource. The tool name and description distinguish it from siblings like hl_place_order and hl_close_position, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the prerequisite 'Requires HL_PRIVATE_KEY in env,' providing clear usage context. However, it does not explicitly state when to use this tool over alternatives or include any 'when not to use' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
13 tool updates
v0.1.0- First observed
hl_cancel_all_orders - First observed
hl_cancel_order - First observed
hl_close_position - First observed
hl_get_all_mids - First observed
hl_get_candles - First observed
hl_get_fills - First observed
hl_get_funding_history - First observed
hl_get_meta - First observed
hl_get_open_orders - First observed
hl_get_orderbook - First observed
hl_get_user_state - First observed
hl_place_order - First observed
hl_set_leverage
TDQS
Every tool has a clearly distinct purpose: order management, position control, data queries, leverage setting. No two tools overlap in functionality.
All tools follow the 'hl_' prefix with consistent verb_noun snake_case pattern (e.g., cancel_order, place_order, get_all_mids). Predictable and uniform.
13 tools is well-scoped for a trading platform, covering essential operations without being excessive or sparse.
Core trading workflow (order placement, cancellation, position closing, market data, account info) is covered. Lacks order modification and detailed trade history, but no critical gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hyperliquid perp market data for LLMs: OHLCV, funding, open interest, positioning & forecasts.
Trade across 22+ exchanges and brokers from any MCP-capable AI agent, no install required.
Trade 16 crypto exchanges + MetaTrader 5 from your AI assistant via one MCP connection.
Non-custodial Hyperliquid perp trading: live markets, account state, user-armed order execution
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to securely trade on Hyperliquid perpetual exchange, including order placement, position management, market data retrieval, and vault operations via natural language.21MIT
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol (MCP) server for the Hyperliquid decentralized exchange, enabling AI assistants to perform trading operations, manage accounts, and retrieve market data.3MIT
- AlicenseAqualityDmaintenanceMCP server for Hyperliquid that provides read-only on-chain wallet analytics. Enables natural-language queries about positions, fills, funding, and realized PnL for any public address.818MIT
- AlicenseBqualityDmaintenanceIntegrates with Hyperliquid DEX to enable trading, account management, and market data queries through natural language.12243MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/erscoder/hyperliquid-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server