MCP server that connects AI agents to Interactive Brokers for account, market data and trading operations.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add interactive-brokers --env IB_FLEX_TOKEN='<IB_FLEX_TOKEN>' --env IB_HEADLESS_MODE='<IB_HEADLESS_MODE>' --env IB_PAPER_TRADING='<IB_PAPER_TRADING>' --env IB_PASSWORD_AUTH='<IB_PASSWORD_AUTH>' --env IB_USERNAME='<IB_USERNAME>' -- npx -y interactive-brokers-mcp~/.codex/config.toml
[mcp_servers.interactive-brokers]
command = "npx"
args = ["-y", "interactive-brokers-mcp"]
env = { IB_FLEX_TOKEN = "<IB_FLEX_TOKEN>", IB_HEADLESS_MODE = "<IB_HEADLESS_MODE>", IB_PAPER_TRADING = "<IB_PAPER_TRADING>", IB_PASSWORD_AUTH = "<IB_PASSWORD_AUTH>", IB_USERNAME = "<IB_USERNAME>" }
# codex mcp add interactive-brokers --env IB_FLEX_TOKEN='<IB_FLEX_TOKEN>' --env IB_HEADLESS_MODE='<IB_HEADLESS_MODE>' --env IB_PAPER_TRADING='<IB_PAPER_TRADING>' --env IB_PASSWORD_AUTH='<IB_PASSWORD_AUTH>' --env IB_USERNAME='<IB_USERNAME>' -- npx -y interactive-brokers-mcp~/.cursor/mcp.json
{
"mcpServers": {
"interactive-brokers": {
"command": "npx",
"args": [
"-y",
"interactive-brokers-mcp"
],
"env": {
"IB_FLEX_TOKEN": "<IB_FLEX_TOKEN>",
"IB_HEADLESS_MODE": "<IB_HEADLESS_MODE>",
"IB_PAPER_TRADING": "<IB_PAPER_TRADING>",
"IB_PASSWORD_AUTH": "<IB_PASSWORD_AUTH>",
"IB_USERNAME": "<IB_USERNAME>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"interactive-brokers": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"interactive-brokers-mcp"
],
"env": {
"IB_FLEX_TOKEN": "<IB_FLEX_TOKEN>",
"IB_HEADLESS_MODE": "<IB_HEADLESS_MODE>",
"IB_PAPER_TRADING": "<IB_PAPER_TRADING>",
"IB_PASSWORD_AUTH": "<IB_PASSWORD_AUTH>",
"IB_USERNAME": "<IB_USERNAME>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"interactive-brokers": {
"command": "npx",
"args": [
"-y",
"interactive-brokers-mcp"
],
"env": {
"IB_FLEX_TOKEN": "<IB_FLEX_TOKEN>",
"IB_HEADLESS_MODE": "<IB_HEADLESS_MODE>",
"IB_PAPER_TRADING": "<IB_PAPER_TRADING>",
"IB_PASSWORD_AUTH": "<IB_PASSWORD_AUTH>",
"IB_USERNAME": "<IB_USERNAME>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"interactive-brokers": {
"command": "npx",
"args": [
"-y",
"interactive-brokers-mcp"
],
"env": {
"IB_FLEX_TOKEN": "<IB_FLEX_TOKEN>",
"IB_HEADLESS_MODE": "<IB_HEADLESS_MODE>",
"IB_PAPER_TRADING": "<IB_PAPER_TRADING>",
"IB_PASSWORD_AUTH": "<IB_PASSWORD_AUTH>",
"IB_USERNAME": "<IB_USERNAME>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"interactive-brokers": {
"command": "npx",
"args": [
"-y",
"interactive-brokers-mcp"
],
"env": {
"IB_FLEX_TOKEN": "<IB_FLEX_TOKEN>",
"IB_HEADLESS_MODE": "<IB_HEADLESS_MODE>",
"IB_PAPER_TRADING": "<IB_PAPER_TRADING>",
"IB_PASSWORD_AUTH": "<IB_PASSWORD_AUTH>",
"IB_USERNAME": "<IB_USERNAME>"
}
}
}
}Environment variables
IB_FLEX_TOKENIB_HEADLESS_MODEIB_PAPER_TRADINGIB_PASSWORD_AUTHIB_USERNAME
Replace the placeholders with your own credentials and keep them out of version control.