Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
MCP server for Interactive Brokers trading and data
This server connects an agent to Interactive Brokers through MCP. It can fetch account details, positions, market data, live orders, and Flex Queries, and it can place orders when trading is enabled.
Builders who want their agent to read and act on Interactive Brokers account data.
You can ask your agent to inspect IBKR data and carry out trading and reporting tasks from one MCP connection.
What it does
Account and position tools
Provides `get_account_info`, `get_positions`, `get_order_status`, and `get_live_orders` for account and order checks.
Market data access
Exposes `get_market_data` so an agent can look up real-time symbol data.
Order placement
Supports `place_order` for market, limit, and stop orders when read-only mode is disabled.
Flex Query memory
Runs `get_flex_query`, `list_flex_queries`, and `forget_flex_query`, and remembers previously used queries for reuse.
Flexible authentication
Supports browser login or headless credentials, with TOTP 2FA handling and selector overrides.
Bundled gateway setup
Includes preconfigured IB Gateway and platform runtimes so it can run without a separate gateway install on mainstream platforms.
README
Interactive Brokers MCP Server
DISCLAIMER: This is an unofficial, community-developed MCP server and is NOT affiliated with or endorsed by Interactive Brokers. This software is in Alpha state and may not work perfectly.
A Model Context Protocol (MCP) server that provides integration with Interactive Brokers' trading platform. This server allows AI assistants to interact with your IB account to retrieve market data, check positions, and place trades.
🔒 Security Notice

Features
- Interactive Brokers API Integration: Full trading capabilities including account management, position tracking, real-time market data, and order management (market, limit, and stop orders)
- Flex Query Support: Execute Flex Queries to retrieve account statements, trade confirmations, and historical data. Queries are automatically remembered for easy reuse
- Flexible Authentication: Choose between browser-based OAuth authentication or headless mode with credentials for automated environments, including fully automated TOTP 2FA override. See TOTP 2FA Strategy Document for detailed configuration and important risk warnings.
- Simple Setup: Run directly with
npx- no Docker or additional installations required. Includes pre-configured IB Gateway and Java runtime for all platforms
Security Notice
IMPORTANT WARNINGS:
- Financial Risk: Trading involves substantial risk of loss. Always test with paper trading first.
- Security: This software handles sensitive financial data. Only run locally, never on public servers.
- No Warranty: This unofficial software comes with no warranties. Use at your own risk.
- Not Financial Advice: This tool is for automation only, not financial advice.
Prerequisites
No additional installations required for mainstream platforms. This package includes:
- Pre-configured IB Gateway for all platforms (Linux, macOS, Windows)
- Java Runtime Environment (JRE) for macOS, Windows, and standard Linux builds
- Automatic first-run musl JRE download for Alpine-based containers (e.g.
node:lts-alpine, supergateway) - All necessary dependencies
You only need:
- Interactive Brokers account (paper or live trading)
- Node.js 18+ (for running the MCP server)
Quick Start
Add this MCP server to your Cursor/Claude configuration:
{
"mcpServers": {
"interactive-brokers": {
"command": "npx",
"args": ["-y", "interactive-brokers-mcp"]
}
}
}
When you first use the server, a web browser window will automatically open for the Interactive Brokers OAuth authentication flow. Log in with your IB credentials to authorize the connection.
Headless Mode Configuration
For automated environments or when you prefer not to use a browser for authentication, you can enable headless mode by configuring it in your MCP server configuration:
{
"mcpServers": {
"interactive-brokers": {
"command": "npx",
"args": ["-y", "interactive-brokers-mcp"],
"env": {
"IB_HEADLESS_MODE": "true",
"IB_USERNAME": "your_ib_username",
"IB_PASSWORD_AUTH": "your_ib_password"
}
}
}
}
In headless mode, the server will automatically authenticate using your credentials without opening a browser window. This is useful for:
- Automated trading systems
- Server environments without a display
- CI/CD pipelines
- Situations where browser interaction is not desired
Important: Even in headless mode, Interactive Brokers may still require
two-factor authentication (2FA). When 2FA is triggered, the headless
authentication will wait up to 60 seconds for you to complete the 2FA process
through your configured method (mobile app, SMS, etc.) before returning an
AUTHENTICATION_PENDING response. Wait for approval to complete, then check
account info again.
To enable paper trading, add "IB_PAPER_TRADING": "true" to your environment variables:
{
"mcpServers": {
"interactive-brokers": {
"command": "npx",
"args": ["-y", "interactive-brokers-mcp"],
"env": {
"IB_HEADLESS_MODE": "true",
"IB_USERNAME": "your_ib_username",
"IB_PASSWORD_AUTH": "your_ib_password",
"IB_PAPER_TRADING": "true"
}
}
}
}
Security Note: Store credentials securely and never commit them to version control. Consider using environment variable files or secure credential management systems.
Flex Query Configuration (Optional)
To use Flex Queries for retrieving account statements and historical data, you need to configure your Flex Web Service Token:
{
"mcpServers": {
"interactive-brokers": {
"command": "npx",
"args": ["-y", "interactive-brokers-mcp"],
"env": {
"IB_FLEX_TOKEN": "your_flex_token_here"
}
}
}
}
How to Get Your Flex Token:
- Log in to Interactive Brokers Account Management
- Go to Settings → Account Settings
- Navigate to Reporting → Flex Web Service
- Generate or retrieve your Flex Web Service Token
For detailed instructions on enabling Flex Web Service, see the IB Flex Web Service Guide.
Creating Flex Queries:
- Go to Reports → Flex Queries in Account Management
- Create or customize your query template
- Click the info icon next to your query to find its Query ID
For a complete guide on creating and customizing Flex Queries, see the IB Flex Queries Guide.
Note: When you execute a Flex Query for the first time, the MCP server automatically saves it with its name from the API. Future executions can reference the query by either its ID or its saved name.
Flex Query Features:
- Automatic Memory: When you execute a Flex Query, it's automatically saved for future use
- Easy Reuse: Previously used queries are remembered - no need to copy query IDs repeatedly
- Friendly Names: Optionally provide a friendly name when first executing a query
- Forget Queries: Remove queries you no longer need with the
forget_flex_querytool
Configuration Variables
| Feature | Environment Variable | Command Line Argument |
|---|---|---|
| Username | IB_USERNAME | --ib-username |
| Password | IB_PASSWORD_AUTH | --ib-password-auth |
| Headless Mode | IB_HEADLESS_MODE | --ib-headless-mode |
| Paper Trading | IB_PAPER_TRADING | --ib-paper-trading |
| Auth Timeout | IB_AUTH_TIMEOUT | --ib-auth-timeout |
| Auth Wait Seconds | IB_AUTH_WAIT_SECONDS | --ib-auth-wait-seconds |
| Auth Poll Seconds | IB_AUTH_POLL_SECONDS | --ib-auth-poll-seconds |
| Force standalone bundled gateway | IB_FORCE_STANDALONE_GATEWAY | N/A |
| Flex Token | IB_FLEX_TOKEN | N/A |
| Read-only mode | IB_READ_ONLY_MODE | --ib-read-only-mode |
| 2FA Strategy | IB_TWO_FA_STRATEGY | N/A |
| TOTP Secret Key | IB_TOTP_SECRET | N/A |
| Login page selector overrides | IB_SELECTOR_USERNAME, IB_SELECTOR_PASSWORD, IB_SELECTOR_LOGIN_SUBMIT | N/A |
| TOTP form selector overrides | IB_SELECTOR_TOTP_INPUT, IB_SELECTOR_TOTP_SUBMIT | N/A |
See the TOTP 2FA Strategy Document for details on the 2FA and selector-override variables.
Gateway Lifecycle
On startup, the MCP first probes reachable local Gateway endpoints on the configured port and common Client Portal Gateway ports. If a healthy existing Gateway is found, the MCP attaches to it and does not start another bundled Gateway.
When no suitable existing Gateway is reachable, the MCP starts the bundled Java Gateway as a durable detached process. Runtime coordination files are stored under ib-gateway/.runtime/:
gateway-session.jsonrecords the MCP-managed Gateway pid, port, version, and log paths.gateway-session.lockprevents two MCP processes from starting duplicate managed Gateways at the same time.gateway.stdout.logandgateway.stderr.logreceive the Gateway process output.
Normal MCP shutdown detaches from the Gateway and leaves it running so later MCP runs can reuse it. If IB_FORCE_STANDALONE_GATEWAY=true is set, the MCP skips unrelated external Gateway discovery, but it still reuses or coordinates through the durable MCP-managed session metadata and lock files.
To reset the managed Gateway session, stop the Gateway process recorded in ib-gateway/.runtime/gateway-session.json, then remove ib-gateway/.runtime/gateway-session.json and any stale ib-gateway/.runtime/gateway-session.lock. The MCP automatically removes stale metadata when the recorded pid no longer exists.
Available MCP Tools
Trading & Account Management
| Tool | Description |
|---|---|
get_account_info | Retrieve account information and balances |
get_positions | Get current positions and P&L |
get_market_data | Real-time market data for symbols |
place_order | Place market, limit, or stop orders (only if read-only mode is disabled) |
get_order_status | Check order execution status |
get_live_orders | Get all live/open orders for monitoring |
Flex Queries (Requires IB_FLEX_TOKEN)
| Tool | Description |
|---|---|
get_flex_query | Execute a Flex Query and retrieve statements (auto-saves for reuse) |
list_flex_queries | List all previously used Flex Queries |
forget_flex_query | Remove a saved Flex Query from memory |
Troubleshooting
Authentication Problems:
- Use the web interface that opens automatically
- Complete any required two-factor authentication
- Try paper trading mode if live trading fails
Gateway Discovery Problems:
- If another IB Gateway is already listening on a local port but should not be reused, set
IB_FORCE_STANDALONE_GATEWAY=true - Existing gateways are only reused when the MCP process can reach them over HTTPS; otherwise the bundled standalone gateway is started on an available port
- For MCP-managed Gateway startup issues, inspect
ib-gateway/.runtime/gateway.stdout.log,ib-gateway/.runtime/gateway.stderr.log, andib-gateway/.runtime/gateway-session.json - To clear a stale managed startup lock, confirm no MCP process is currently starting Gateway, then remove
ib-gateway/.runtime/gateway-session.lock
Support
- This Server: Open an issue in this repository.
License
MIT License - see LICENSE file for details.
Thanks to our contributors
A big thank you to everyone who has contributed to making this project better.
Files in the repo
- .github
- docs
- ib-gateway
- install
- runtime
- scripts
- src
- test
- .dockerignore
- .gitattributes
- .gitignore
- .oxlintrc.json
- .releaserc
- Dockerfile
- IB-MCP.gif
- IB-MCP.mp4
- knip.json
- LICENSE
- mcp-inspector.json
- package-lock.json
- package.json
- README.md
- smithery.yaml
- tsconfig.json
- vitest.config.ts
Discussion (0)
Ask about usage, or say what you built with itSign in to join the discussion.
No comments yet. Be the first to say what this is good for.
More connectors
High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code
Git-native persistent memory for AI coding agents. Implements Google OKF v0.2 with sub-300µs in-memory BM25 search, embedded MCP server, and progressive disclosure. Slashes token bloat by 80% with zero external databases or dependencies. Built in pure Go.
Stop your AI from making things up — it proposes, deterministic tools decide, every claim checked against ground truth with evidence. Grounded facts and context survive resets. Reverse engineering is the proving ground. MCP server + CLI.
20 MB lightweight cross-platform database client for 90+ databases, including MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB, SQL Server, and Dameng. Built-in AI, MCP Server, CLI, desktop and Docker. | 轻量级跨平台数据库管理工具,支持 MySQL、PostgreSQL、SQLite、Redis、MongoDB、达梦等 90+ 数据库,提供桌面端、Docker、CLI、内置 AI 助手和 MCP Server。