Model Context Protocol (MCP) server for Hyperliquid DEX trading
Project description
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 hyperliquid-mcp
From Source
git clone https://github.com/PlayAINetwork/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": "uv",
"args": ["run", "--with", "hyperliquid-mcp", "--", "hyperliquid-mcp"],
"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.
Support
- Issues: GitHub Issues
- Documentation: README
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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 hyperliquid_server-0.1.0.tar.gz.
File metadata
- Download URL: hyperliquid_server-0.1.0.tar.gz
- Upload date:
- Size: 10.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
644184d360fdf2dfbcbd0e391bf1f8b1875ebd75e18a575e413b919e9d705417
|
|
| MD5 |
268395522acf2719fea9ab711e29cab3
|
|
| BLAKE2b-256 |
ea76860bd8782fef4c92d943aa1f7131260372120a93477cbc6381f4cc8f10e5
|
File details
Details for the file hyperliquid_server-0.1.0-py3-none-any.whl.
File metadata
- Download URL: hyperliquid_server-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
553e72197c481f760c303e5b4f3a0411d84403747d65705a7124687ed478c092
|
|
| MD5 |
176d16f0d0f1cfebb9b28fa8f3abd8c2
|
|
| BLAKE2b-256 |
7f0c63cdcfb63371170cf5ca200a6a0962d988171462f008e8d0447ef96e0e29
|