
Trade Hyperliquid perps, stocks, gold, oil and pre-IPO from AI agents. Hosted; keys can't withdraw.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Your WenLong API key from app.wenlong.io → Settings → API & bots. A read key reads the account; a trade key also trades. No key can withdraw or transfer.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Cancel one resting order by its order id (see get_open_orders).
Market name as on Hyperliquid, e.g. BTC, ETH, xyz:GOLD
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http hyperliquid https://app.wenlong.io/api/mcp \ --header 'Authorization: YOUR_CREDENTIALS'
Headers
Authorization (required): Your WenLong API key from app.wenlong.io → Settings → API & bots. A read key reads the account; a trade key also trades. No key can withdraw or transfer.Cancel one resting order by its order id (see get_open_orders).
| Argument | Type | Description |
|---|---|---|
| coin* | string | Market name as on Hyperliquid, e.g. BTC, ETH, xyz:GOLD |
| order_id* | integer |
{
"type": "object",
"required": [
"coin",
"order_id"
],
"properties": {
"coin": {
"type": "string",
"description": "Market name as on Hyperliquid, e.g. BTC, ETH, xyz:GOLD"
},
"order_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false
}Close an open position at market (reduce-only). fraction in (0, 1], default 1 = the whole position.
| Argument | Type | Description |
|---|---|---|
| coin* | string | Market name as on Hyperliquid, e.g. BTC, ETH, xyz:GOLD |
| fraction | number | |
| client_order_id | string | Optional idempotency id (0x + 32 hex), as for place_order. |
{
"type": "object",
"required": [
"coin"
],
"properties": {
"coin": {
"type": "string",
"description": "Market name as on Hyperliquid, e.g. BTC, ETH, xyz:GOLD"
},
"fraction": {
"type": "number",
"maximum": 1,
"exclusiveMinimum": 0
},
"client_order_id": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{32}$",
"description": "Optional idempotency id (0x + 32 hex), as for place_order."
}
},
"additionalProperties": false
}The account's balance: perp equity, free margin (available), margin in use, spot USDC, per extra dex.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Tradable markets with their mid price and maximum leverage. Main Hyperliquid dex by default; pass dex (e.g. xyz) for a builder dex.
| Argument | Type | Description |
|---|---|---|
| dex | string | Builder dex name, e.g. xyz. Omit for the main dex. |
{
"type": "object",
"required": [],
"properties": {
"dex": {
"type": "string",
"description": "Builder dex name, e.g. xyz. Omit for the main dex."
}
},
"additionalProperties": false
}Resting orders (limits and TP/SL triggers) with their order ids.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Open perpetual positions: side, size, entry, value, unrealized PnL, leverage, liquidation price.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Current mid, mark and oracle price, funding and 24h volume for one market.
| Argument | Type | Description |
|---|---|---|
| coin* | string | Market name as on Hyperliquid, e.g. BTC, ETH, xyz:GOLD |
{
"type": "object",
"required": [
"coin"
],
"properties": {
"coin": {
"type": "string",
"description": "Market name as on Hyperliquid, e.g. BTC, ETH, xyz:GOLD"
}
},
"additionalProperties": false
}Place a REAL order. Market orders are priced by WenLong from its own mark with a small slippage buffer. leverage (integer) is applied to the market before an opening order; omitted, the open position's leverage is used (required when there is no position). take_profit / stop_loss: on a limit order they ride the order; on a market order they are placed as reduce-only triggers after the fill.
| Argument | Type | Description |
|---|---|---|
| coin* | string | Market name as on Hyperliquid, e.g. BTC, ETH, xyz:GOLD |
| side* | string | |
| leverage | integer | |
| size_usd* | number | Order size in USD notional |
| stop_loss | number | Stop-loss trigger price |
| order_type* | string | |
| limit_price | number | Required for a limit order |
| margin_mode | string | For a new position; default cross, or isolated where the market allows only isolated. An open position keeps its own mode. |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 11, 2026.
| reduce_only | boolean | Only reduce an open position |
| take_profit | number | Take-profit trigger price |
| client_order_id | string | Optional idempotency id (0x + 32 hex), a new one for every new order. Send the same one when retrying the same order: a repeat is not placed twice. |
{
"type": "object",
"required": [
"coin",
"side",
"size_usd",
"order_type"
],
"properties": {
"coin": {
"type": "string",
"description": "Market name as on Hyperliquid, e.g. BTC, ETH, xyz:GOLD"
},
"side": {
"enum": [
"buy",
"sell"
],
"type": "string"
},
"leverage": {
"type": "integer",
"minimum": 1
},
"size_usd": {
"type": "number",
"description": "Order size in USD notional",
"exclusiveMinimum": 0
},
"stop_loss": {
"type": "number",
"description": "Stop-loss trigger price",
"exclusiveMinimum": 0
},
"order_type": {
"enum": [
"market",
"limit"
],
"type": "string"
},
"limit_price": {
"type": "number",
"description": "Required for a limit order",
"exclusiveMinimum": 0
},
"margin_mode": {
"enum": [
"cross",
"isolated"
],
"type": "string",
"description": "For a new position; default cross, or isolated where the market allows only isolated. An open position keeps its own mode."
},
"reduce_only": {
"type": "boolean",
"description": "Only reduce an open position"
},
"take_profit": {
"type": "number",
"description": "Take-profit trigger price",
"exclusiveMinimum": 0
},
"client_order_id": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{32}$",
"description": "Optional idempotency id (0x + 32 hex), a new one for every new order. Send the same one when retrying the same order: a repeat is not placed twice."
}
},
"additionalProperties": false
}