mcpField
M
MCP Tradovate Server

MCP Tradovate Server

Local
tradovate.comFinance20Updated 86w ago

About MCP Tradovate Server

MCP Tradovate Server is an MCP server for the Tradovate trading platform that lets AI assistants such as Claude Desktop manage trading accounts through natural language. Written in Go, it provides tools for accounts, orders, risk limits and market data.

Key features

  1. 01Account and position queries
  2. 02Order placement, cancellation and fill lookup
  3. 03Configurable risk limits
  4. 04Contract listing and real-time market data
  5. 05Historical price data retrieval

Use cases

  1. 01Querying trading accounts and positions in natural language
  2. 02Setting daily loss and drawdown risk limits
  3. 03Retrieving historical prices for a given contract

MCP support

This project is an MCP server that exposes tools such as authenticate, get_accounts and place_order to MCP clients like Claude Desktop, which use them to access the Tradovate API.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"tradovate": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
Run commandnpx -y @smithery/cli

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@smithery/cli

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

MCP Tradovate Server

MCP Server smithery badge Go Report Card codecov Go Reference License: MIT

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
  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:
./mcp-tradovate

Configuration

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

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)

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
  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 firewall isn't blocking connections
  3. Rate Limiting

    • Implement appropriate delays between requests
    • Monitor API usage limits

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)

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.