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
- Clone the repository
- Install dependencies:
npm install
- 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:
get_contract_details - Get details for a specific contract by symbol
list_positions - List positions for an account
place_order - Place a new order
modify_order - Modify an existing order
cancel_order - Cancel an existing order
liquidate_position - Liquidate a position
get_account_summary - Get account summary information
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.