Hyperliquid MCP Server
A [Model Context Protocol (MCP)] server for interacting with Hyperliquid DEX.
Features
- Order Management: Place, modify, and cancel orders with support for both limit and market orders
- USD-Based Sizing: Specify order sizes in USD amounts for easier position sizing
- Leverage Control: Set and modify leverage for perpetual positions
- Account Analytics: Comprehensive P&L tracking, position monitoring, and balance queries
- Market Data: Access perpetual and spot market metadata
- Flexible Authentication: Separate accounts for trading operations and data queries
Installation
From PyPI (Recommended)
pip install -r requirements.txt
From Source
git clone https://github.com/OmChillure/hyperliquid
cd hyperliquid_mcp
pip install -e .
Quick Start
1. Running with uv/pip
If you prefer to run the server directly:
{
"mcpServers": {
"hyperliquid": {
"command": "python/uvx",
"args": ["/path/to/your/hyperliquid/server.py"],
"env": {
"HYPERLIQUID_MAIN_ACCOUNT_ADDRESS": "",
"HYPERLIQUID_API_ACCOUNT_ADDRESS": "",
"HYPERLIQUID_API_ACCOUNT_PRIVATE_KEY": ""
}
}
}
}
Available Tools
Trading Operations
placeOrder: Place limit or market orders with USD-based sizing supportmodifyOrder: Modify existing orderscancelOrder: Cancel orders by ID or client order ID
Account Management
getAccountState: Get comprehensive account information including P&L, positions, and balancesgetUserTradeHistory: Retrieve trade history and fill datagetUserSpotBalances: Query spot token balances
Market Data
getPerpetualsMeta: Get metadata for all perpetual marketsgetSpotMeta: Get metadata for all spot markets and tokens
Usage Examples
Place a Market Order
# Buy $100 worth of ETH at market price
await placeOrder(
coin="ETH",
is_buy=True,
usd_amount=100.0,
order_type="market"
)
Place a Limit Order with Leverage
# Place a limit buy order with 10x leverage
await placeOrder(
coin="BTC",
is_buy=True,
size=0.1,
price=45000.0,
order_type="limit",
leverage=10,
is_cross=False
)
Check Account State
# Get comprehensive account information
account_info = await getAccountState()
print(f"Total PnL: ${account_info['pnl_overview']['total_pnl']}")
print(f"Account Value: ${account_info['pnl_overview']['account_value']}")
Security Architecture
This MCP server uses a dual-account architecture for enhanced security:
- Main Account: Your primary trading account that holds funds. Used only for read-only operations.
- API Account: A separate account used exclusively for signing transactions. Should have minimal or no funds.
This separation means:
- Your main trading funds are never directly exposed
- The API account can be easily rotated if compromised
- You can grant specific permissions to the API account via Hyperliquid's interface
Environment Variables
| Variable | Description | Required |
|---|---|---|
HYPERLIQUID_MAIN_ACCOUNT_ADDRESS |
Your main trading account address | Yes |
HYPERLIQUID_API_ACCOUNT_ADDRESS |
API account address for signing | Yes |
HYPERLIQUID_API_ACCOUNT_PRIVATE_KEY |
Private key for API account | Yes |
HYPERLIQUID_BASE_URL |
Hyperliquid API endpoint | No (defaults to mainnet) |
Development
Setting up for Development
git clone https://github.com/yourusername/hyperliquid-mcp
cd hyperliquid-mcp
pip install -e ".[dev]"
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
hl_mcp_server-0.1.0.tar.gz
(8.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hl_mcp_server-0.1.0.tar.gz.
File metadata
- Download URL: hl_mcp_server-0.1.0.tar.gz
- Upload date:
- Size: 8.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3029c79d9edec36a31c429b2c70f40c76d1f83cb659dcad1dbe1865dda0bb26
|
|
| MD5 |
ec38710e9ac4d8b71420b81bdf8fa7ce
|
|
| BLAKE2b-256 |
a8214f12c88095dd46aa00246327a327f71d0773b679930dbe7c84c58f849386
|
File details
Details for the file hl_mcp_server-0.1.0-py3-none-any.whl.
File metadata
- Download URL: hl_mcp_server-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b9c75f24413acd37a305e64c8a5073656b7de53bb6ff5c78faca85c3692c451
|
|
| MD5 |
3c2774ce77a5d6b5efdcdba96e5df359
|
|
| BLAKE2b-256 |
908db791694916132787be070ccb0068873b1fdcf58e314701e2b7ae3e45e248
|