IBKR MCP With Claude or ChatGPT: What Works and What Does Not

Yes, within clear limits: Interactive Brokers runs its own MCP server at https://api.ibkr.com/v1/api/mcp-public; Claude, ChatGPT, Grok and Perplexity connect through their connector directories, and since July 28, 2026 any MCP client such as Claude Code or Cursor can connect too, each after you sign in on IBKR's own login page. In the standard Review & Approve mode the assistant reads positions, balances, orders and market data and drafts market or limit order instructions, but nothing reaches the market until you press Review & Submit in an IBKR platform. It cannot move money or change settings, only one AI platform can be connected to an account at a time, and orders without your approval exist only in the separate, opt-in Autonomous Trading mode (status: November 2026).

What is the IBKR MCP server?

The Model Context Protocol (MCP) is an open standard through which an AI application calls tools on an external service. Interactive Brokers acts as the MCP server: it exposes defined tools, such as retrieving portfolio data or checking order status, and the AI client decides when to call them. IBKR keeps authentication on its side, so the AI platform never receives your IBKR username or password. The connection is free; AI subscription, market data and commissions are not.

DateChange
June 1, 2026Launch with Claude; instructions for stocks and ETFs, market and limit orders
June 22, 2026ChatGPT and Grok; options, futures and futures options added
July 28, 2026Open to any MCP client, for example Claude Code, Cursor, Perplexity and Windsurf
October 21, 2026IBKR Autonomous Trading announced (see below)

The standard integration is built for research, analysis, monitoring and trade preparation. Even Autonomous Trading takes its criteria as natural-language prompts, not as versioned, tested code, and according to IBKR's FAQ, limits you set yourself, such as a maximum order size, are still only planned. Rule-based execution with fixed, tested limits is the job of a bot on the TWS API or Web API, the route described under trading bot development for Interactive Brokers.

What works and what does not: IBKR MCP at a glance

The table covers the standard Review & Approve mode as documented by IBKR. Status: November 3, 2026.

TaskStatusDetail
Positions, balances, P&L, open orders, trade historyWorksOnly the one authorized account
Market dataWorksReal-time or delayed, per your subscriptions
Watchlists and price alertsWorksCreating or deleting them is a write action
Order instructionsWith approvalMarket and limit; stocks, ETFs, options, futures, futures options; expire after 7 days
Stop, trailing, multi-leg ordersNot supportedNot available as instructions yet
Sending orders directlyNot in this modeOnly Autonomous Trading, in a separate AI Partition
Deposits, withdrawals, transfers, settingsNot possibleExcluded by IBKR
Several accounts, linked sub-accountsNot yetMulti-account support is planned
Two AI platforms on one accountNoA new connection disconnects the old one
Paper accountWorksAutonomous Trading is live-only at launch
Clients in India and JapanNot availablePer IBKR's disclosure

How do you connect Claude, ChatGPT or Claude Code to IBKR?

Claude: open Customize, Connectors, search the directory for Interactive Brokers and click Connect. On IBKR's login page, confirm the agreements and pick one account. Then set the connector's Tool permissions: Anthropic groups tools into read-only and write/delete tools, each with Always allow, Needs approval or Blocked. For IBKR, write/delete tools cover creating or deleting order instructions, alerts and watchlists. Needs approval keeps a confirmation in the chat; Blocked leaves Claude with read access only.

ChatGPT: individual users connect through the Interactive Brokers listing in ChatGPT's directory, which OpenAI now organizes under Plugins. Adding the URL yourself is limited: full MCP support for custom servers is available to Business and Enterprise/Edu workspaces on the web, while Pro users get read/fetch permissions only. OpenAI's directory guidelines list the execution of investment trades among prohibited services, which matches IBKR's note that ChatGPT does not support Autonomous Trading.

Claude Code, Codex, Cursor and other MCP clients: add the remote server URL. If you already connected IBKR in claude.ai, Claude Code signed in with the same claude.ai subscription account lists it under /mcp without a second setup. A minimal configuration that asks before every IBKR tool call:

# Claude Code: add the server, then run /mcp in a session to sign in at IBKR
claude mcp add --transport http ibkr https://api.ibkr.com/v1/api/mcp-public

# .claude/settings.json: prompt before every tool of the "ibkr" server
{ "permissions": { "ask": ["mcp__ibkr__*"] } }

# Codex: ~/.codex/config.toml, then sign in with: codex mcp login ibkr
[mcp_servers.ibkr]
url = "https://api.ibkr.com/v1/api/mcp-public"
default_tools_approval_mode = "prompt"

The commands follow the current Claude Code and Codex documentation; the exact IBKR tool names appear under /mcp after sign-in. Tools of a connector that Claude Code takes over from claude.ai are named mcp__claude_ai_<server>__<tool>, so a rule for mcp__ibkr__* does not cover them; copy the exact server name from /mcp.

How does Review & Submit work, and what should you check?

Every instruction lands in the AI Instructions tab on the Orders & Trades page of each IBKR platform; in IBKR Desktop it sits under Portfolio. IBKR sends a push notification and an FYI message. Review & Submit turns the instruction into an order, Reject removes it, and an ignored instruction expires after 7 days. In this mode the review is the safeguard, so make it systematic:

  • Instrument: symbol, exchange and currency; for options and futures also expiry, strike, right and multiplier.
  • Side and quantity: buy or sell, shares or contracts, no extra zero.
  • Order type and limit: a market order leaves the fill price open; a limit caps it.
  • Value and cash: estimated value against available cash and margin.
  • Origin: did the instruction appear right after the assistant summarized third-party text?

IBKR's own example prompt asks the assistant to show account, side, quantity, order type, limit price, estimated value and available cash before it creates an instruction. You can have it print these fields as JSON and check them with a script that has no broker access. Worked example: the script compares such a proposal with limits you set in advance; the field names are your own convention, not an IBKR format. Standard library only, run with Python 3.9 against sample files: no broker connection, no orders.

"""Check an AI-drafted order proposal against limits you set yourself.
Standard library only: reads a JSON file, never connects to a broker."""
import json
import sys

LIMITS = {
    "symbols": {"AAPL", "MSFT"},  # instruments you allow at all
    "order_types": {"LIMIT"},     # no market orders
    "max_value": 2000.0,          # per instruction, account currency
    "max_cash_share": 0.25,       # share of available cash for a buy
    "max_price_gap": 0.02,        # limit vs. your own reference price
}


def check(p, ref_price):
    problems = []
    if p["symbol"] not in LIMITS["symbols"]:
        problems.append(f"symbol not on your list: {p['symbol']}")
    if p["side"] not in ("BUY", "SELL"):
        problems.append(f"unknown side: {p['side']}")
    if p["order_type"] not in LIMITS["order_types"]:
        problems.append(f"order type not allowed: {p['order_type']}")
        return problems  # without a limit price the rest is meaningless
    qty, limit = p["quantity"], float(p["limit_price"])
    if qty <= 0 or qty != int(qty):
        problems.append("quantity must be a positive whole number")
    value = qty * limit
    if abs(value - p["estimated_value"]) > 0.01 * value:
        problems.append(f"estimated value {p['estimated_value']} != {value:.2f}")
    if value > LIMITS["max_value"]:
        problems.append(f"value {value:.2f} above {LIMITS['max_value']:.2f}")
    if p["side"] == "BUY" and value > LIMITS["max_cash_share"] * p["available_cash"]:
        problems.append("buy uses more than the allowed share of cash")
    if abs(limit - ref_price) > LIMITS["max_price_gap"] * ref_price:
        problems.append(f"limit {limit} is far from your price {ref_price}")
    return problems


if __name__ == "__main__":
    with open(sys.argv[1], encoding="utf-8") as f:
        proposal = json.load(f)
    issues = check(proposal, float(sys.argv[2]))
    for line in issues or ["all checks passed: now review it in IBKR"]:
        print(line)
    sys.exit(1 if issues else 0)

# Worked example with a sample proposal.json (made-up values):
# {"symbol": "AAPL", "side": "BUY", "quantity": 50, "order_type": "LIMIT",
#  "limit_price": 245.0, "estimated_value": 1225.0, "available_cash": 8000.0}
#
# $ python3 check_instruction.py proposal.json 231.0
# estimated value 1225.0 != 12250.00
# value 12250.00 above 2000.00
# buy uses more than the allowed share of cash
# limit 245.0 is far from your price 231.0

A passed check does not make the trade sensible; it only shows that the proposal fits limits you set beforehand, and the instruction in the AI Instructions tab still has to match what you checked.

Community IBKR MCP servers on GitHub: what to check

A GitHub search returns dozens of unofficial IBKR MCP servers. Typically, such a server runs on your machine and connects through IB Gateway, TWS or the Client Portal Gateway, inheriting that session's trading permissions. Three examples with an open-source license, as of November 3, 2026:

RepositoryLicense, last commitAPIOrders and credentials
code-rabi/interactive-brokers-mcpMIT, July 21, 2026Bundled Client Portal Gatewayplace_order for market, limit and stop orders unless read-only mode is on; optional headless login with password and TOTP secret in environment variables
Hellek1/ib-mcpBSD-3-Clause, October 1, 2026TWS API via ib_asyncRead-only by design: contracts, market data, news, fundamentals, portfolio, account
rcontesti/IB_MCPMIT, October 23, 2025Web API via Client Portal Gateway in DockerEndpoints built by hand, marked as under development

Before running one, check the license file, recent commits and the archived flag (ArjunDivecha/ibkr-mcp-server, for instance, is archived), then which tools can write, where credentials are stored, whether the server listens only on localhost and whether it works with a paper account. The MCP security best practices explain why: a local server runs with direct access to your machine, and a malicious startup command or a server left open on localhost becomes an attack path. On the TWS API, add a lock outside the AI: the read-only API setting in TWS or IB Gateway, which IBKR's API reference describes as blocking modifications through the API. A server that cannot place an order is easier to reason about than one that promises to ask first.

Security risks: prompt injection, tokens and browser agents

Prompt injection. An assistant reads text it did not write: news, research pages, emails, tool output. Anthropic warns that MCP servers can carry hidden instructions meant to trigger unintended actions and that servers fetching external content expose Claude Code to prompt injection; OpenAI lists prompt injection among the risks of untrusted MCP servers. The dangerous mix in an IBKR chat is account data, untrusted content and a second tool that can act or send data out, such as email, so keep unrelated connectors off. The MCP specification adds that a human should be able to deny tool calls and that tool annotations are untrusted unless the server is trusted.

Tokens and credentials. With the official server, the AI client holds an authorization from IBKR, not your password. Revoke it in Client Portal under Settings, Manage Third-Party Consents, Revoke, a different place from the AI Instructions tab; that is the step that ends the authorization on IBKR's side. In Claude Code, run claude mcp logout before claude mcp remove, because removing a server deletes the local tokens without revoking them at the issuer, while logout revokes them where the issuer supports it. Community servers that keep an IBKR password or TOTP secret in a config file move that risk onto your disk.

Browser agents. The disclosures on IBKR's AI integration page name browser-based and similar agents explicitly in a warning about AI agents with full account control. An agent that operates a logged-in Client Portal session works outside the MCP limits and could press Review & Submit itself.

Data use. Once account data reaches the AI platform, storage and training use follow that platform's policies, not IBKR's.

IBKR Autonomous Trading: what changed on October 21, 2026

Autonomous Trading lets eligible clients allow a connected AI to submit supported orders without approving each one, but only inside a separate, cash-funded AI Partition. Per IBKR's FAQ, only individual non-margin accounts qualify, and the initial rollout covers clients of IBLLC, Australia, Singapore and the U.K. Transfers into partitions are capped at 10% of account equity, with a 1,000 USD minimum cap and a 25,000 USD lifetime maximum. Qualifying takes at least 10 Review & Approve trades within two weeks; the product page adds 100 USD per trade, the FAQ at least 3 distinct days. ChatGPT is not supported for this mode as of October 2026.

Switching the mode off stops new AI orders but does not cancel pending or partially filled ones, and IBKR treats orders in the partition as if you had placed them. This article covers Review & Approve and is not a recommendation to give an assistant order rights.

A safer setup order for IBKR with an AI assistant

Connecting an account is optional. If you do connect one, this order keeps access narrow:

  1. Start with a paper account; Review & Approve supports it.
  2. Connect only through the directory listing or the official URL, never through a link from a chat or forum post.
  3. Set write tools to Needs approval or Blocked in Claude, use ask rules in Claude Code or prompt mode in Codex.
  4. Switch off unrelated connectors in conversations that use IBKR.
  5. Ask for the proposal fields before any instruction is created, and check them.
  6. Learn the revoke path under Manage Third-Party Consents before you connect a live account.
  7. Check the AI platform's data and training settings.

For a strategy that runs unattended with fixed limits, a chat assistant is the wrong layer: compare the IBKR Web API and TWS API for a bot, and run any AI-written bot through the pre-live checklist.

Frequently asked questions

Does Interactive Brokers have an official MCP server?

Yes. Interactive Brokers operates it at https://api.ibkr.com/v1/api/mcp-public. Claude, ChatGPT, Grok and Perplexity connect through their directories; since July 28, 2026 any MCP client, such as Claude Code or Cursor, can add the URL directly. You sign in on IBKR's login page and authorize one account, at no extra fee.

Can Claude or ChatGPT place trades in an IBKR account?

Not in the standard Review & Approve mode. The assistant creates instructions that wait in the AI Instructions tab; only Review & Submit in an IBKR platform turns one into an order, and unused instructions expire after 7 days. Autonomous Trading allows direct orders for eligible accounts inside a separate AI Partition, but not with ChatGPT as of October 2026.

How do you make the IBKR connector read-only in Claude?

Open the connector under Customize, Connectors and set the write/delete tools in Tool permissions to Blocked. Needs approval is the middle ground: Claude asks before creating or deleting instructions, alerts or watchlists. In Claude Code, deny or ask rules on the server's tools, such as mcp__ibkr__* for a server named ibkr, do the same job.

Can the IBKR MCP URL be added to ChatGPT as a custom connector?

Only with restrictions. According to OpenAI, full MCP support for custom servers is available to Business and Enterprise/Edu workspaces on ChatGPT web, subject to admin permissions. Pro users get read/fetch permissions only, and mobile is not supported. Individual users normally connect through the Interactive Brokers listing in ChatGPT's directory.

Can Claude and ChatGPT be connected to the same IBKR account at once?

No. Interactive Brokers allows one AI platform per account at a time; authorizing a new platform automatically disconnects the previous one. Each connection also covers a single account, and data of linked accounts and sub-accounts is not available yet, according to IBKR's FAQ.

Is it safe to connect an IBKR account to an AI assistant?

The official route avoids sharing your password, and the assistant cannot move money or change settings. Risks remain: prompt injection through text the assistant reads, account data stored under the AI provider's policies, and the authorization itself. If you connect at all, start with a paper account and keep write tools blocked or on approval.

Is a community IBKR MCP server from GitHub a good alternative?

Only after checking it. These projects are unofficial, and some can place orders directly or store the IBKR password and a TOTP secret in environment variables. A read-only server plus the read-only API setting in IB Gateway is the more conservative choice.

Sources and status

As of November 2026. Third-party rules, prices and APIs may have changed since; the providers' current documentation and the official texts are authoritative.

Need a rule-based IBKR bot with fixed limits instead of a chat assistant, or an AI-built one reviewed? Get in touch — the free initial call covers your rules, risk limits, the approval steps, a paper-account test plan and day-to-day operation. More: Trading bot development for Interactive Brokers and MetaTrader 5.