home / mcp / mcp tradovate server

MCP Tradovate Server

Provides an MCP server for Tradovate integration enabling AI assistants to manage trading accounts and place orders.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "0xjmp-mcp-tradovate": {
      "command": "./mcp-tradovate",
      "args": [],
      "env": {
        "TRADOVATE_CID": "YOUR_CLIENT_ID",
        "TRADOVATE_SEC": "YOUR_CLIENT_SECRET",
        "TRADOVATE_APP_ID": "YOUR_APP_ID",
        "TRADOVATE_PASSWORD": "YOUR_PASSWORD",
        "TRADOVATE_USERNAME": "YOUR_USERNAME",
        "TRADOVATE_APP_VERSION": "YOUR_APP_VERSION"
      }
    }
  }
}

You can run a dedicated MCP server to manage Tradovate trading accounts through natural language interactions. This server provides authentication, account and risk management, order placement, and real-time market data access, enabling AI assistants to perform trading tasks in Claude Desktop via MCP.

How to use

You interact with the Tradovate MCP Server through an MCP client. Start by ensuring your environment is set up, then run the local MCP server and point your client to it. You can authenticate, query accounts and positions, adjust risk limits, place and cancel orders, and fetch fills and market data. Use natural language prompts to perform actions such as asking for current positions, setting daily loss limits, or submitting a market order for a specific contract.

How to install

Prerequisites: you need Go installed to build the server locally.

1. Build and run the server locally from a clean workspace.

2. Start the server and keep it running to accept MCP requests.

3. Configure your MCP client to connect to the local server.

Additional notes

Configuration uses a .env file at the project root to supply Tradovate credentials.

Environment variables required by the server are shown below, and should be supplied in your environment before starting the server.

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

Security and troubleshooting

Ensure your credentials are kept secure. If you encounter authentication errors, verify that the credentials in your .env file are correct and that API access is enabled on Tradovate. If you have network or rate-limiting issues, check your connectivity, API status, and apply appropriate request pacing.

Available tools

authenticate

Connect to Tradovate API using provided credentials to establish a session.

get_accounts

List all Tradovate trading accounts accessible by the authenticated session.

get_positions

Retrieve current open positions for the authenticated accounts.

get_risk_limits

Fetch current risk management settings for a specific account_id.

set_risk_limits

Update risk management settings for a given account_id, including daily loss, drawdown, max position qty, and trailing stop.

place_order

Submit a new order with required fields such as account_id, contract_id, order_type, quantity, and time_in_force; price is required for limit orders.

cancel_order

Cancel an existing order by its order_id.

get_fills

Retrieve fills associated with a specific order_id.

get_contracts

List available Tradovate contracts for trading.

get_market_data

Retrieve real-time market data for a given contract_id.

get_historical_data

Query historical price data for a contract_id over a specified time range and interval.