Tradovate MCP server

Provides a robust trading API integration for Tradovate, enabling algorithmic traders to access market data, manage orders, and control account operations through a JSON-RPC interface.
Back to servers
Provider
Jake Peterson
Release date
Mar 07, 2025
Language
Go
Stats
4 stars

The MCP Tradovate Server provides integration between Claude Desktop and Tradovate trading accounts, allowing AI assistants to manage trading operations through natural language interactions. This server connects to Tradovate's API services, handling authentication, account management, trading operations, and market data access.

Installation Options

Quick Installation via Smithery

The easiest way to install the Tradovate MCP server for Claude Desktop is through Smithery:

npx -y @smithery/cli install @0xjmp/mcp-tradovate --client claude

Manual Installation

If you prefer to install manually, follow these steps:

  1. Clone the repository:
git clone https://github.com/0xjmp/mcp-tradovate.git
cd mcp-tradovate
  1. Install dependencies:
go mod download
  1. Build the project:
go build ./cmd/mcp-tradovate
  1. Run the server:
./mcp-tradovate

Configuration

Create a .env file in the project root directory 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

Available Tools

Authentication

  • authenticate: Connect to Tradovate API
    • No parameters required

Account Management

  • get_accounts: List all trading accounts

    • No parameters required
  • get_positions: View current positions

    • No parameters required
  • get_risk_limits: Get risk management settings

    • Required parameters:
      • account_id: (number) Account ID to get limits for
  • set_risk_limits: Configure risk management settings

    • Required parameters:
      • account_id: (number) Account ID to set limits for
      • day_max_loss: (number) Maximum daily loss limit
      • max_drawdown: (number) Maximum drawdown limit
      • max_position_qty: (number) Maximum position quantity
      • trailing_stop: (number) Trailing stop percentage

Trading Operations

  • place_order: Submit a new order

    • Required parameters:
      • 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
      • time_in_force: (string) Time in force (Day, GTC, IOC, etc.)
    • Optional parameters:
      • price: (number) Order price (required for Limit orders)
  • cancel_order: Cancel an existing order

    • Required parameters:
      • order_id: (number) Order ID to cancel
  • get_fills: Get fills for a specific order

    • Required parameters:
      • order_id: (number) Order ID to get fills for

Market Data

  • get_contracts: List available contracts

    • No parameters required
  • get_market_data: Get real-time market data

    • Required parameters:
      • contract_id: (number) Contract ID to get market data for
  • get_historical_data: Get historical price data

    • Required parameters:
      • 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)

Troubleshooting

Common Issues

  1. Authentication Failures

    • Verify your Tradovate credentials in the .env file
    • Ensure your API access is enabled in Tradovate
  2. Connection Issues

    • Check your internet connection
    • Verify Tradovate API status
    • Ensure your firewall isn't blocking connections
  3. Rate Limiting

    • Be aware of potential API usage limits
    • Implement appropriate delays between requests if needed

How to add this MCP server to Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > MCP and click "Add new global MCP server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "cursor-rules-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "cursor-rules-mcp"
            ]
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explictly ask the agent to use the tool by mentioning the tool name and describing what the function does.

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later