IBKR MCP Server
A Model Context Protocol (MCP) server that provides AI models with secure access to Interactive Brokers (IBKR) trading data and functionality through the TWS API.
⚠️⚠️⚠️ Disclaimer ⚠️⚠️⚠️
This software is for educational and development purposes. Use at your own risk. The authors are not responsible for any financial losses incurred through the use of this software. Always test with paper trading before using with real money.
🚀 Features
Account Management: Get positions, portfolio details, and account summaries
Market Data: Retrieve historical price data and real-time market information
Trading Operations: Place orders, manage positions, and track executions
MCP Integration: Seamless integration with AI models supporting MCP protocol
Safety Features: Read-only mode, configurable trading restrictions, and comprehensive validation
High Availability: Automatic reconnection, heartbeat monitoring, and graceful error handling
📋 Prerequisites
Python 3.10+
Interactive Brokers TWS or IB Gateway
Active IBKR account (paper trading recommended for testing)
🛠️ Installation
Clone the repository:
git clone https://github.com/happy-shine/ibkr_mcp.git cd ibkr_mcpInstall dependencies:
pip install -r requirements.txtConfigure TWS/IB Gateway:
Enable API connections in TWS/Gateway settings
Set socket port (default: 7497 for paper trading, 7496 for live)
Configure trusted IP addresses if needed
Configure the server:
cp config/config.yaml.example config/config.yaml # Edit config/config.yaml with your settings
🚀 Usage
Starting the Server
The server will:
Connect to TWS/IB Gateway
Start the MCP server on the configured port
Begin heartbeat monitoring
Log all activities
Available MCP Tools
Account Tools
get_positions()- Get current account positionsget_account_summary()- Get account balance and metricsget_portfolio()- Get detailed portfolio information
Market Data Tools
get_historical_data(symbol, duration, bar_size)- Get historical price dataget_market_data(symbol)- Get real-time market dataget_contract_details(symbol)- Get contract specifications
Trading Tools
place_order(symbol, action, quantity, order_type, ...)- Place buy/sell ordersget_orders(status)- Get order history and statuscancel_order(order_id)- Cancel pending ordersget_trades()- Get execution history
Example AI Interactions
🔗 Related Links
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Provides AI models with secure access to Interactive Brokers trading data and functionality, enabling account management, market data retrieval, and trading operations through natural language interactions.