alexanimal_tradovate-mcp-server
The Tradovate MCP Server is designed to facilitate interaction with the Tradovate API, providing functionalities like managing contracts, positions, and orders. It enhances efficiency with features like real-time data fetching, authentication, and fallback options when the API is down. The server offers multiple tools for account and market data management, aiming to streamline trading operations.
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 pointsrc/auth.ts
- Authentication functionssrc/data.ts
- Data fetching and cachingsrc/tools.ts
- Tool handlers for MCPsrc/types.ts
- TypeScript type definitionstests/
- 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 symbollist_positions
- List positions for an accountplace_order
- Place a new ordermodify_order
- Modify an existing ordercancel_order
- Cancel an existing orderliquidate_position
- Liquidate a positionget_account_summary
- Get account summary informationget_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 file for details.