ibkr-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| IBKR_HOST | No | TWS / Gateway host | 127.0.0.1 |
| IBKR_PORT | No | Match your TWS / Gateway mode (7496 live, 7497 paper, 4001 live gateway, 4002 paper gateway) | 7497 |
| IBKR_TIMEOUT | No | Connect and request timeout in seconds | 10 |
| IBKR_CLIENT_ID | No | Unique per API client (must be at least 1) | 23 |
| IBKR_FLEX_TOKEN | No | The Flex Web Service token itself (fallback; prefer IBKR_FLEX_TOKEN_CMD) | |
| IBKR_FLEX_QUERY_ID | No | Numeric ID of your Activity Flex Query (or IBKR_FLEX_QUERY_IDS for multiple) | |
| IBKR_ENABLE_TRADING | No | Set to 'true', '1', or 'yes' to register order tools | |
| IBKR_FLEX_TOKEN_CMD | No | Command whose stdout is the Flex Web Service token | |
| IBKR_MAX_ORDER_VALUE | No | Cap on order notional (ceiling 10,000,000) | 50000 |
| IBKR_MARKET_DATA_TYPE | No | 1 live, 2 frozen, 3 delayed, 4 delayed-frozen | 3 |
| IBKR_ORDERS_PER_MINUTE | No | Aggregate order rate limit across concurrent calls | 6 |
| IBKR_MAX_ORDER_QUANTITY | No | Hard cap on units per order (ceiling 1,000,000) | 1000 |
| IBKR_ALLOW_EXTERNAL_CANCEL | No | Set to 'true' to allow cancel_order to cancel orders not placed by this server |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_accountsB | List account IDs managed by the current TWS/Gateway login. |
| get_account_summaryB | Account summary: net liquidation, cash, buying power, margin, etc. |
| get_positionsB | Current positions with quantity and average cost. |
| get_portfolioB | Portfolio with market value, unrealized and realized PnL per position. |
| review_positionsA | Review open positions for loss discipline. Flags positions that have fallen past a loss threshold so a deliberate decision gets made — "has the thesis changed, or just the price?" — instead of defaulting to holding. Surfaces the book so the well-documented tendency to hold losers and sell winners (the disposition effect) gets a conscious check. Informational, not advice. |
| get_pnlB | Today's realized/unrealized/daily PnL for an account. |
| get_quoteC | Market data snapshot (delayed by default; see IBKR_MARKET_DATA_TYPE). |
| get_historical_dataC | Historical OHLCV bars. |
| lookup_contractC | Resolve a symbol to a fully qualified IB contract (conId, exchange, etc.). |
| search_contractsC | Search instruments by symbol or company name. |
| get_open_ordersA | Open (working) orders across accounts. |
| get_executionsA | Executions (fills) from the current session/day. |
| get_history_coverageA | Date span and row counts of locally archived account history. |
| get_trade_historyA | Historical executed trades from the configured Flex query (up to its period, plus everything previously archived locally). Needs IBKR_FLEX_QUERY_ID + token; see README. |
| get_cash_transactionsC | Historical cash activity (dividends, interest, deposits/withdrawals, fees) from the configured Flex query. Needs IBKR_FLEX_QUERY_ID + token; see README. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 15 tools
Each tool targets a specific IBKR functionality (account summary, transactions, executions, PnL, positions, etc.) with no overlapping purposes. Clear distinction between similar concepts like portfolio vs. positions or trade history vs. executions.
All tool names follow a verb_noun pattern using snake_case. Verbs vary (get, list, lookup, review, search) but each is appropriate for its action, and the overall convention is uniform and predictable.
15 tools cover a broad range of IBKR account and trading operations without being excessive. Each tool serves a distinct purpose and the number is well-scoped for the domain.
The tool set provides excellent read capabilities but lacks any tool for placing, modifying, or canceling orders, which is a critical gap for a trading platform. Agents can analyze but cannot execute trades, making the surface incomplete for full lifecycle management.