by code-rabi
Interactive Brokers MCP Server
# Add to your Claude Code skills
git clone https://github.com/code-rabi/interactive-brokers-mcpDISCLAIMER: 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.

npx - no Docker or additional installations required. Includes pre-configured IB Gateway and Java runtime for all platformsIMPORTANT WARNINGS:
No comments yet. Be the first to share your thoughts!
No additional installations required! This package includes:
You only need:
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.
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:
Important: Even in headless mode, Interactive Brokers may still require two-factor authentication (2FA). When 2FA is triggered, the headless authentication will wait for you to complete the 2FA process through your configured method (mobile app, SMS, etc.) before proceeding.
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.
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"
}
}
}
}
For detailed instructions on enabling Flex Web Service, see the IB Flex Web Service Guide.
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.
forget_flex_query tool| 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 |
| Flex Token | IB_FLEX_TOKEN | N/A |
| Read-only mode | IB_READ_ONLY_MODE | --ib-read-only-mode |
| 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 |
| 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 |
Authentication Problems:
MIT License - see LICENSE file for details.