
Model Context Protocol (MCP) server implementation for the Paradex trading platform.
Overview
This project provides a bridge between AI assistants (like Claude) and the Paradex perpetual futures trading platform. Using the MCP standard, AI assistants can:
- Retrieve market data from Paradex
- Manage trading accounts and vaults
- Place and manage orders
- Monitor positions and balance
Prerequisites
Installation
Installing via Smithery
To install mcp-paradex-py for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @sv/mcp-paradex-py --client claude
Using pip
- Clone this repository:
git clone https://github.com/sv/mcp-paradex-py.git
cd mcp-paradex-py
- Create a virtual environment:
python -m venv .venv
source .venv/bin/activate # On Windows: .venvScriptsactivate
- Install dependencies:
pip install -e .
Using uv (faster alternative)
- Clone this repository:
git clone https://github.com/sv/mcp-paradex-py.git
cd mcp-paradex-py
- Create a virtual environment:
uv venv
source .venv/bin/activate # On Windows: .venvScriptsactivate
- Install dependencies:
uv pip install -e .
Configuration
Set up your configuration:
cp .env.template .env
Then edit the .env file with your Paradex credentials.
Running the Server
Docker (recommended)
docker build . -t sv/mcp-paradex-py
In Cursor add MCP as command
Public only
docker run --rm -i sv/mcp-paradex-py
Allow trading
docker run --rm -e PARADEX_ACCOUNT_PRIVATE_KEY=0xprivatekey -i sv/mcp-paradex-py
Smithery.ai Integration
This MCP server is compatible with Smithery.ai, a platform for discovering and deploying MCP servers.
Claude Desktop Configuration
To use this server with Claude Desktop via Smithery.ai:
- Open Claude Desktop and enable Developer Mode from the menu
- Go to Settings > Developer and click "Edit Config"
- Add the following configuration to your
claude_desktop_config.json:
{
"mcpServers": {
"paradex": {
"command": "uvx",
"args": ["--with-editable", ".", "mcp-paradex"],
"env": {
"PARADEX_ENVIRONMENT": "testnet",
"PARADEX_ACCOUNT_PRIVATE_KEY": "your_private_key"
}
}
}
}
- Replace
your_ethereum_private_key with your actual Paradex private key
- Save the file and restart Claude Desktop
Smithery.ai Registry
The server includes a smithery.yaml file with metadata for the Smithery.ai registry. If you want to publish this server to Smithery.ai, you can use the Smithery CLI:
# Install Smithery CLI
npm install -g @smithery/cli
# Login to Smithery
smithery login
# Publish the server
smithery publish
For more information about publishing to Smithery.ai, see the Smithery documentation.
Resources
System Resources
system://status - Get the current status of the system and Paradex connection
system://version - Get detailed version information about the server and dependencies
system://health - Perform a basic health check of the server
Market Resources
market://public/markets - Get a list of available markets from Paradex
market://public/info - Get general market information and status
Vault Resources
vaults://list - List all vaults associated with the account
vaults://balance - Get the balance of a specific vault
vaults://details - Get detailed information about a vault
check_public_api - Check the connection to Paradex public API without authentication
check_paradex_connection - Verify connectivity with Paradex API using authentication
get_market_data - Retrieve detailed market data for a specific market
get_orderbook - Get the current orderbook for a market
get_recent_trades - Retrieve recent trades for a market
get_account_info - Get information about the connected account
get_account_balance - Retrieve the account balance
place_order - Place a new order on Paradex
cancel_order - Cancel an existing order
get_order_status - Check the status of an order
create_vault - Create a new vault
deposit_to_vault - Deposit funds into a vault
withdraw_from_vault - Withdraw funds from a vault
Development
Project Structure
src/mcp_paradex/ - Main package
server/ - MCP server implementation
server.py - FastMCP server configuration
resources/ - Read-only data resources
system.py - System status resource
market.py - Market data resources
vaults.py - Vault management resources
tools/ - Action tools for operations
system.py - System management tools
market.py - Market data tools
account.py - Account management tools
orders.py - Order management tools
vaults.py - Vault management tools
utils/ - Utility functions and helpers
config.py - Configuration handling
paradex_client.py - Paradex API client
Development Progress
This project uses several tools to maintain code quality:
- Black: Code formatter that enforces a consistent style
- Ruff: Fast Python linter that combines functionality from multiple linting tools
- Mypy: Static type checker for Python
- Pre-commit: Git hook scripts to automate checks before commits
Setup Development Environment
- Install development dependencies:
make install-dev
- Format code:
make format
- Lint code:
make lint
- Type check:
make typecheck
- Run all checks:
make check
- Run pre-commit on all files:
make pre-commit
- Run tests:
make test
- Run tests with coverage report:
make test-cov
Testing
This project uses pytest for testing. Tests are located in the tests directory.
To run tests:
pytest
To run tests with coverage report:
pytest --cov=mcp_paradex --cov-report=html
This will generate an HTML coverage report in the htmlcov directory.
Pre-commit Hooks
Pre-commit hooks are configured to run automatically on git commit. They include:
- Trailing whitespace removal
- End-of-file fixer
- YAML/TOML syntax checking
- Black formatting
- Ruff linting
- Mypy type checking
To manually run all pre-commit hooks on all files:
pre-commit run --all-files
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License