IB Async MCP Server

1

Add it to Claude Code

Run this in a terminal.

Run in terminal
claude mcp add ib-async-mcp -- uv run ib-async-mcp
README.md

MCP server for Interactive Brokers API via the ib_async library.

ib-async-mcp

MCP (Model Context Protocol) server wrapping ib_async for Interactive Brokers API.

Features

  • Connection Management: Connect/disconnect to TWS or IB Gateway
  • Account Data: Account values, summary, portfolio, positions, P&L
  • Contracts: Create and qualify contracts (stocks, options, futures, forex, crypto, etc.)
  • Market Data: Real-time quotes and historical data
  • Orders: Place, modify, cancel orders (market, limit, stop, stop-limit)
  • Options: Option chains, implied volatility, option pricing
  • Scanners: Market scanners with various criteria
  • News: News providers and articles

Prerequisites

  • Python 3.10+
  • Interactive Brokers TWS or IB Gateway running with API enabled
  • API port configured (default: 7497 for TWS, 4001 for Gateway)

Installation

cd ib-async-mcp
uv sync

Usage

Running the Server

uv run ib-async-mcp

MCP Configuration

Add to your MCP client configuration (e.g., .kiro/settings/mcp.json):

{
  "mcpServers": {
    "ib-async": {
      "command": "uv",
      "args": ["--directory", "/path/to/ib-async-mcp", "run", "ib-async-mcp"],
      "env": {}
    }
  }
}

Or using uvx (after publishing):

{
  "mcpServers": {
    "ib-async": {
      "command": "uvx",
      "args": ["ib-async-mcp"],
      "env": {}
    }
  }
}

Available Tools

Connection

  • connect - Connect to TWS/Gateway
  • disconnect - Disconnect
  • is_connected - Check connection status

Account

  • get_accounts - List managed accounts
  • get_account_values - Account values (balance, margin, etc.)
  • get_account_summary - Account summary
  • get_portfolio - Portfolio with market values
  • get_positions - All positions
  • get_pnl - Profit and loss

Contracts

  • create_contract - Create a contract
  • qualify_contracts - Qualify contracts (fill conId)
  • get_contract_details - Detailed contract info
  • search_symbols - Search for symbols

Market Data

  • get_market_data - Real-time snapshot
  • get_historical_data - Historical bars
  • get_head_timestamp - Earliest available data

Orders

  • place_order - Place new order
  • cancel_order - Cancel order
  • cancel_all_orders - Cancel all orders
  • get_open_orders - List open orders
  • get_open_trades - List open trades
  • get_executions - Execution reports
  • get_fills - Order fills
  • what_if_order - Check margin impact

Options

  • get_option_chain - Option chain
  • calculate_implied_volatility - Calculate IV
  • calculate_option_price - Calculate option price

Scanners

  • get_scanner_parameters - Available scanner params
  • run_scanner - Run market scanner

News

  • get_news_providers - List news providers
  • get_news_article - Get article
  • get_historical_news - Historical headlines

Utility

  • get_current_time - TWS server time

Example Usage

# Connect first
connect(host="127.0.0.1", port=7497, client_id=1)

# Get account info
get_accounts()
get_portfolio()

# Get market data
get_market_data(contract_type="stock", symbol="AAPL")

# Get historical data
get_historical_data(
    contract_type="stock",
    symbol="SPY",
    duration="5 D",
    bar_size="1 hour"
)

# Place an order
place_order(
    contract_type="stock",
    symbol="AAPL",
    action="BUY",
    quantity=100,
    order_type="limit",
    limit_price=150.00
)

License

MIT

Disclaimer

This software is not affiliated with Interactive Brokers Group, Inc. Use at your own risk.

Tools (5)

connectConnect to TWS or IB Gateway
get_portfolioRetrieve portfolio with market values
get_market_dataGet real-time market data snapshot
get_historical_dataRetrieve historical market bars
place_orderPlace a new trade order

Configuration

claude_desktop_config.json
{"mcpServers": {"ib-async": {"command": "uvx", "args": ["ib-async-mcp"], "env": {}}}}

Try it

Connect to my local IB Gateway on port 4001 and check my current portfolio balance.
Get the latest real-time market data for AAPL stock.
Retrieve historical hourly price data for SPY over the last 5 days.
Place a limit buy order for 100 shares of AAPL at $150.00.

Frequently Asked Questions

What are the key features of IB Async MCP?

Connects to TWS or IB Gateway for live trading data. Provides access to account values, portfolio, and positions. Supports real-time quotes and historical market data retrieval. Enables order placement, modification, and cancellation. Includes tools for option chains and market scanners.

What can I use IB Async MCP for?

Automating trade execution based on AI-driven market analysis. Retrieving real-time portfolio performance metrics for financial reporting. Fetching historical price data to feed into technical analysis models. Monitoring open orders and execution reports directly through Claude.

How do I install IB Async MCP?

Install IB Async MCP by running: uv run ib-async-mcp

What MCP clients work with IB Async MCP?

IB Async MCP works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep IB Async MCP docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare