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.