Skip to main content

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 support
  • modifyOrder: Modify existing orders
  • cancelOrder: Cancel orders by ID or client order ID

Account Management

  • getAccountState: Get comprehensive account information including P&L, positions, and balances
  • getUserTradeHistory: Retrieve trade history and fill data
  • getUserSpotBalances: Query spot token balances

Market Data

  • getPerpetualsMeta: Get metadata for all perpetual markets
  • getSpotMeta: 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:

  1. Your main trading funds are never directly exposed
  2. The API account can be easily rotated if compromised
  3. 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

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hyperliquid_server-0.1.0.tar.gz (10.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hyperliquid_server-0.1.0-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

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

Hashes for hyperliquid_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 644184d360fdf2dfbcbd0e391bf1f8b1875ebd75e18a575e413b919e9d705417
MD5 268395522acf2719fea9ab711e29cab3
BLAKE2b-256 ea76860bd8782fef4c92d943aa1f7131260372120a93477cbc6381f4cc8f10e5

See more details on using hashes here.

File details

Details for the file hyperliquid_server-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for hyperliquid_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 553e72197c481f760c303e5b4f3a0411d84403747d65705a7124687ed478c092
MD5 176d16f0d0f1cfebb9b28fa8f3abd8c2
BLAKE2b-256 7f0c63cdcfb63371170cf5ca200a6a0962d988171462f008e8d0447ef96e0e29

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page