MCP server for the Tradovate platform
Last updated Jun 10, 2026
16
Stars
9
Forks
1
Issues
0
Stars/day
Attention Score
15
Language breakdown
No language data available.
โธ Files
click to expand
README
MCP Tradovate Server
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.
Features
- โ Complete Tradovate API integration
- ๐ Secure authentication handling
- ๐ Real-time market data access
- ๐ผ Account management
- ๐ Risk management controls
- ๐ Order placement and management
- ๐ Comprehensive test coverage
Installation
Installing via Smithery
To install the Tradovate MCP server for Claude Desktop automatically via Smithery:npx -y @smithery/cli install @0xjmp/mcp-tradovate --client claude
Manual Installation
- Clone the repository:
git clone https://github.com/0xjmp/mcp-tradovate.git
cd mcp-tradovate
- Install dependencies:
go mod download
- Build the project:
go build ./cmd/mcp-tradovate
- Run:
./mcp-tradovate
Configuration
Create a .env file in the project root with your Tradovate credentials:
TRADOVATEUSERNAME=yourusername
TRADOVATEPASSWORD=yourpassword
TRADOVATEAPPID=yourappid
TRADOVATEAPPVERSION=yourappversion
TRADOVATECID=yourclient_id
TRADOVATESEC=yourclient_secret
Available Tools
Authentication
authenticate: Connect to Tradovate API
Account Management
get_accounts: List all trading accounts
get_positions: View current positions
getrisklimits: Get risk management settings
account_id: (number) Account ID to get limits for
setrisklimits: Configure risk management settings
account_id: (number) Account ID to set limits for
- daymaxloss: (number) Maximum daily loss limit
- max_drawdown: (number) Maximum drawdown limit
- maxpositionqty: (number) Maximum position quantity
- trailing_stop: (number) Trailing stop percentage
Trading Operations
place_order: Submit a new order
account_id: (number) Account ID to place the order for
- contract_id: (number) Contract ID to trade
- order_type: (string) Type of order (Market, Limit, etc.)
- quantity: (number) Number of contracts to trade
- timeinforce: (string) Time in force (Day, GTC, IOC, etc.)
- Optional parameters:
- price: (number) Order price (required for Limit orders)
cancel_order: Cancel an existing order
order_id: (number) Order ID to cancel
get_fills: Get fills for a specific order
order_id: (number) Order ID to get fills for
Market Data
get_contracts: List available contracts
getmarketdata: Get real-time market data
contract_id: (number) Contract ID to get market data for
gethistoricaldata: Get historical price data
contract_id: (number) Contract ID to get data for
- start_time: (string) Start time in ISO 8601 format
- end_time: (string) End time in ISO 8601 format
- interval: (string) Time interval (1m, 5m, 15m, 1h, 1d)
Development
Running Tests
Run all tests with coverage:
go test -v -race -coverprofile=coverage.txt -covermode=atomic ./...
Code Style
Follow Go best practices and conventions:
go fmt ./... go vet ./...
Troubleshooting
Common Issues
- Authentication Failures
.env file
- Ensure your API access is enabled in Tradovate
- Connection Issues
- Rate Limiting
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
If you encounter any issues or have questions, please file an issue on the GitHub repository.
Author
Jake Peterson (@0xjmp)
๐ More in this category