A professional Model Context Protocol (MCP) server for Interactive Brokers API integration, designed for use with Claude Desktop and Claude Code.
- ✅ Multi-Account Support - Switch between multiple IBKR accounts
- ✅ Short Selling Analysis - Shortable shares, borrow rates, margin requirements
- ✅ Real-time Market Data - Live quotes, historical data, options chains
- ✅ Portfolio Management - Positions, P&L, account summaries
- ✅ Trading Operations - Place, modify, cancel orders (with safety checks)
- ✅ Auto-Reconnection - Handles TWS/Gateway restarts gracefully
- ✅ Production Ready - Proper error handling, logging, and monitoring
- Python 3.10 or higher
- Interactive Brokers account with TWS or IB Gateway
- Claude Desktop or Claude Code
-
Clone the repository:
git clone https://github.com/yourusername/ibkr-mcp-server.git cd ibkr-mcp-server -
Run the setup script:
# macOS/Linux chmod +x scripts/setup.sh ./scripts/setup.sh # Windows scripts\setup.bat
-
Configure your settings:
cp .env.example .env # Edit .env with your IBKR settings -
Start TWS/IB Gateway and enable API connections
-
Test the server:
python -m ibkr_mcp_server.main --test
Claude Desktop:
Add to your claude_desktop_config.json:
{
"mcpServers": {
"ibkr": {
"command": "python",
"args": ["-m", "ibkr_mcp_server.main"],
"cwd": "/path/to/ibkr-mcp-server"
}
}
}Claude Code:
claude mcp add ibkr 'python -m ibkr_mcp_server.main' --cwd /path/to/ibkr-mcp-server# Get portfolio across all accounts
"Show me my current portfolio"
# Switch accounts
"Switch to account DU7654321"
# Market data
"Get real-time quotes for AAPL, TSLA, MSFT"# Complete short selling analysis
"Analyze short selling for GME, AMC, BBBY - show availability, borrow costs, and margin requirements"
# Check specific account
"Check shortable shares for TSLA in my paper trading account"# Place orders (paper trading recommended)
"Place a limit order to buy 100 shares of AAPL at $150"
# Check margin requirements
"What are the margin requirements for shorting 200 shares of TSLA?"| Tool | Description |
|---|---|
get_portfolio |
Current portfolio positions and P&L |
get_account_summary |
Account balances and key metrics |
switch_account |
Switch between IBKR accounts |
check_shortable_shares |
Short selling availability |
get_margin_requirements |
Margin requirements for securities |
get_borrow_rates |
Stock borrow rates (short selling costs) |
short_selling_analysis |
Complete short selling analysis |
get_market_data |
Real-time market quotes |
get_historical_data |
Historical price data |
place_order |
Place trading orders (with safety checks) |
get_connection_status |
Check IBKR connection status |
# IBKR Connection
IBKR_HOST=127.0.0.1
IBKR_PORT=7497 # 7497=TWS Paper, 7496=TWS Live, 4001=Gateway
IBKR_CLIENT_ID=1
IBKR_IS_PAPER=true
# Logging
LOG_LEVEL=INFO
# Safety
ENABLE_LIVE_TRADING=false # Set to true for live trading
MAX_ORDER_SIZE=1000 # Maximum order size- Start TWS or IB Gateway
- Go to Configuration → API → Settings
- Enable "ActiveX and Socket Clients"
- Set socket port (7497 for paper, 7496 for live)
- Add 127.0.0.1 to "Trusted IPs"
- Check "Download open orders on connection"
pip install -e ".[dev]"
pre-commit installpytest tests/ -vblack ibkr_mcp_server/
isort ibkr_mcp_server/
mypy ibkr_mcp_server/python scripts/install_service.py --platform macospython scripts/install_service.py --platform linuxdocker build -t ibkr-mcp-server .
docker run -d --name ibkr-mcp -p 8080:8080 ibkr-mcp-server- Always test with paper trading first
- Verify all data in TWS before making trading decisions
- This software is for educational purposes
- Use at your own risk
- No warranty provided
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
MIT License - see LICENSE file for details.