ib-async-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ib-async-mcp show my account portfolio and positions"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: claude-tws-connect
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 syncUsage
Running the Server
uv run ib-async-mcpMCP 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/Gatewaydisconnect- Disconnectis_connected- Check connection status
Account
get_accounts- List managed accountsget_account_values- Account values (balance, margin, etc.)get_account_summary- Account summaryget_portfolio- Portfolio with market valuesget_positions- All positionsget_pnl- Profit and loss
Contracts
create_contract- Create a contractqualify_contracts- Qualify contracts (fill conId)get_contract_details- Detailed contract infosearch_symbols- Search for symbols
Market Data
get_market_data- Real-time snapshotget_historical_data- Historical barsget_head_timestamp- Earliest available data
Orders
place_order- Place new ordercancel_order- Cancel ordercancel_all_orders- Cancel all ordersget_open_orders- List open ordersget_open_trades- List open tradesget_executions- Execution reportsget_fills- Order fillswhat_if_order- Check margin impact
Options
get_option_chain- Option chaincalculate_implied_volatility- Calculate IVcalculate_option_price- Calculate option price
Scanners
get_scanner_parameters- Available scanner paramsrun_scanner- Run market scanner
News
get_news_providers- List news providersget_news_article- Get articleget_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.
Available Tools
33 toolscalculate_implied_volatilityC
Calculate implied volatility from option price.
Inputs: symbol (required), expiry (required), strike (required), right (required), +2 more.
calculate_option_priceC
Calculate option price from volatility.
Inputs: symbol (required), expiry (required), strike (required), right (required), +2 more.
cancel_all_ordersA
Cancel all open orders.
Inputs: no named parameters.
cancel_orderB
Cancel an existing order.
Inputs: order_id (required).
connectA
Connect to TWS or IB Gateway. Must be called before using other tools.
Inputs: host, port, client_id, readonly.
create_contractB
Create a contract for trading. Types: stock, option, future, forex, index, cfd, crypto, bond.
Inputs: contract_type (required), symbol (required), exchange, currency, +4 more.
disconnectA
Disconnect from TWS/Gateway.
Inputs: no named parameters.
get_accountsA
Get list of managed account names.
Inputs: no named parameters.
get_account_summaryC
Get account summary.
Inputs: account.
get_account_valuesB
Get account values (balance, margin, etc.).
Inputs: account.
get_contract_detailsC
Get detailed contract information.
Inputs: contract_type (required), symbol (required), exchange, currency.
get_current_timeA
Get current TWS server time.
Inputs: no named parameters.
get_executionsC
Get execution reports.
Inputs: no named parameters.
get_fillsC
Get order fills.
Inputs: no named parameters.
get_head_timestampC
Get earliest available historical data timestamp.
Inputs: contract_type (required), symbol (required), exchange, currency, +1 more.
get_historical_dataC
Get historical bar data.
Inputs: contract_type (required), symbol (required), exchange, currency, +4 more.
get_historical_newsC
Get historical news headlines.
Inputs: con_id (required), provider_codes (required), total_results.
get_market_dataC
Get real-time market data snapshot for a contract.
Inputs: contract_type (required), symbol (required), exchange, currency.
get_news_articleC
Get a news article.
Inputs: provider_code (required), article_id (required).
get_news_providersC
Get available news providers.
Inputs: no named parameters.
get_open_ordersB
Get all open orders.
Inputs: no named parameters.
get_open_tradesB
Get all open trades.
Inputs: no named parameters.
get_option_chainC
Get option chain for an underlying.
Inputs: symbol (required), exchange, underlying_sec_type.
get_pnlC
Get profit and loss.
Inputs: account.
get_portfolioC
Get portfolio positions with market values.
Inputs: account.
get_positionsC
Get all positions.
Inputs: account.
get_scanner_parametersC
Get available scanner parameters.
Inputs: no named parameters.
is_connectedB
Check if connected to TWS/Gateway.
Inputs: no named parameters.
place_orderC
Place a new order.
Inputs: contract_type (required), symbol (required), action (required), quantity (required), +5 more.
qualify_contractsC
Qualify contracts to fill in missing fields like conId.
Inputs: contract_type (required), symbol (required), exchange, currency.
run_scannerC
Run a market scanner.
Inputs: scan_code (required), instrument, location_code, num_rows.
search_symbolsC
Search for matching symbols/contracts.
Inputs: pattern (required).
what_if_orderC
Check margin impact without placing order.
Inputs: contract_type (required), symbol (required), action (required), quantity (required), +4 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 33 tools
Most tools have distinct purposes, but some overlap exists (e.g., get_fills vs. get_executions, get_portfolio vs. get_positions). The descriptions help differentiate, but agents might still misselect.
All tools follow a consistent verb_noun snake_case pattern (e.g., get_accounts, place_order, cancel_all_orders). No mixing of styles.
33 tools is appropriate for an IB API wrapper, covering core functionalities without excessive bloat or insufficiency.
Covers most major areas: connection, account, contracts, market data, orders, portfolio, news, options. Lacks order modification tool (e.g., modify_order), but typical workflows are supported.
Maintenance
Related MCP Connectors
Trading MCP server for AI agents, with live market data, account reads and controlled execution.
MCP server for OpenMM — exposes market data, account, trading, and strategy tools to AI agents
Hosted MCP server for MT4 and MT5: read accounts, prices and candles, and place or close orders.
MCP server exposing the Backtest360 engine API as tools for AI agents.
Related MCP Servers
- FlicenseCqualityDmaintenanceAn MCP server that provides an interface for the Interactive Brokers API via the ib_async library. It enables users to manage accounts, access real-time and historical market data, and execute or monitor trades through TWS or IB Gateway.331-
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables interaction with Interactive Brokers TWS/Gateway via natural language for portfolio management and market data retrieval. It provides tools for account summaries, historical data, and a secure two-step confirmation process for placing and canceling orders.6MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Interactive Brokers TWS API that enables AI assistants to retrieve portfolio, account information, and real-time market prices.23Apache 2.0
- AlicenseAqualityFmaintenanceMCP server for Interactive Brokers API integration, enabling account management, trading, market data, and short selling analysis through Claude.835MIT