Tradovate MCP Server

by alexanimal
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Manages environment variables for storing Tradovate API credentials and configuration.

  • Displays code coverage statistics for the project through a badge, showing test coverage percentage for the codebase.

  • Used for package management, dependency installation, and running scripts for building, testing, and starting the MCP server.

Tradovate MCP Server

A Model Context Protocol (MCP) server for interacting with the Tradovate API. This server provides tools for managing contracts, positions, orders, and accounts in Tradovate.

Features

  • Authentication with Tradovate API
  • Real-time data fetching with caching
  • Tools for contract details, position management, order placement, and more
  • Fallback to simulated data when API is unavailable

Installation

  1. Clone the repository
  2. Install dependencies:
npm install
  1. Create a .env file with your Tradovate credentials:
TRADOVATE_API_ENVIRONMENT=demo TRADOVATE_USERNAME=your_username TRADOVATE_PASSWORD=your_password TRADOVATE_APP_ID=Sample App TRADOVATE_APP_VERSION=1.0 TRADOVATE_CID=your_cid TRADOVATE_SEC=your_sec

Usage

Start the server:

npm start

Or use with the MCP Inspector:

npm run inspector

Development

Project Structure

  • src/index.ts - Main server entry point
  • src/auth.ts - Authentication functions
  • src/data.ts - Data fetching and caching
  • src/tools.ts - Tool handlers for MCP
  • src/types.ts - TypeScript type definitions
  • tests/ - Test files

Building

npm run build

Testing

Run tests:

npm test

Run tests with coverage:

npm run test:coverage

Generate coverage badge:

npm run coverage:badge

Available Tools

The server provides the following tools:

  1. get_contract_details - Get details for a specific contract by symbol
  2. list_positions - List positions for an account
  3. place_order - Place a new order
  4. modify_order - Modify an existing order
  5. cancel_order - Cancel an existing order
  6. liquidate_position - Liquidate a position
  7. get_account_summary - Get account summary information
  8. get_market_data - Get market data (quotes, DOM, charts)

API Endpoints

The server interacts with the following Tradovate API endpoints:

Authentication

  • /auth/accessTokenRequest - Get access token
  • /auth/renewAccessToken - Renew access token

Contracts

  • /contract/list - List all contracts
  • /contract/find - Find a specific contract

Positions

  • /position/list - List all positions

Orders

  • /order/list - List all orders
  • /order/placeOrder - Place a new order
  • /order/modifyOrder - Modify an existing order
  • /order/cancelOrder - Cancel an existing order
  • /order/liquidatePosition - Liquidate a position

Accounts

  • /account/list - List all accounts
  • /account/find - Find a specific account
  • /cashBalance/getCashBalanceSnapshot - Get cash balance for an account

Market Data

  • /md/getQuote - Get quote data
  • /md/getDOM - Get depth of market data
  • /md/getChart - Get chart data

License

MIT License

This project is licensed under the MIT License - see the LICENSE file for details.

-
security - not tested
A
license - permissive license
-
quality - not tested

A Model Context Protocol server that enables interaction with the Tradovate API for managing trading contracts, positions, orders, and accounts.

  1. Features
    1. Installation
      1. Usage
        1. Development
          1. Project Structure
          2. Building
          3. Testing
        2. Available Tools
          1. API Endpoints
            1. Authentication
            2. Contracts
            3. Positions
            4. Orders
            5. Accounts
            6. Market Data
          2. License