Tradovate Trading
STDIOMCP server enabling AI assistants to manage Tradovate trading accounts through natural language.
MCP server enabling AI assistants to manage Tradovate trading accounts through natural language.
A Model Context Protocol (MCP) server for Tradovate integration in Claude Desktop. This server enables AI assistants to manage Tradovate trading accounts through natural language interactions.
To install the Tradovate MCP server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @0xjmp/mcp-tradovate --client claude
git clone https://github.com/0xjmp/mcp-tradovate.git cd mcp-tradovate
go mod download
go build ./cmd/mcp-tradovate
./mcp-tradovate
Create a .env
file in the project root with your Tradovate credentials:
TRADOVATE_USERNAME=your_username TRADOVATE_PASSWORD=your_password TRADOVATE_APP_ID=your_app_id TRADOVATE_APP_VERSION=your_app_version TRADOVATE_CID=your_client_id TRADOVATE_SEC=your_client_secret
authenticate
: Connect to Tradovate API
get_accounts
: List all trading accounts
get_positions
: View current positions
get_risk_limits
: Get risk management settings
account_id
: (number) Account ID to get limits forset_risk_limits
: Configure risk management settings
account_id
: (number) Account ID to set limits forday_max_loss
: (number) Maximum daily loss limitmax_drawdown
: (number) Maximum drawdown limitmax_position_qty
: (number) Maximum position quantitytrailing_stop
: (number) Trailing stop percentageplace_order
: Submit a new order
account_id
: (number) Account ID to place the order forcontract_id
: (number) Contract ID to tradeorder_type
: (string) Type of order (Market, Limit, etc.)quantity
: (number) Number of contracts to tradetime_in_force
: (string) Time in force (Day, GTC, IOC, etc.)price
: (number) Order price (required for Limit orders)cancel_order
: Cancel an existing order
order_id
: (number) Order ID to cancelget_fills
: Get fills for a specific order
order_id
: (number) Order ID to get fills forget_contracts
: List available contracts
get_market_data
: Get real-time market data
contract_id
: (number) Contract ID to get market data forget_historical_data
: Get historical price data
contract_id
: (number) Contract ID to get data forstart_time
: (string) Start time in ISO 8601 formatend_time
: (string) End time in ISO 8601 formatinterval
: (string) Time interval (1m, 5m, 15m, 1h, 1d)Run all tests with coverage:
go test -v -race -coverprofile=coverage.txt -covermode=atomic ./...
Follow Go best practices and conventions:
go fmt ./... go vet ./...
Authentication Failures
.env
fileConnection Issues
Rate Limiting
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions, please file an issue on the GitHub repository.
Jake Peterson (@0xjmp)