Skip to content

v2.3.1

Latest

Choose a tag to compare

@osauer osauer released this 24 Jul 18:55

The data flows out. Orders don't go in.

ibkr is a read-only interface to your Interactive Brokers account, reachable from a Go library, a shell CLI, a stdio MCP server (Claude Desktop, Cursor, Continue, Zed), and a Claude Code plugin. Hand it to an assistant, a cron job, a notebook, or your own service.

What's new in v2.3.1

  • Releases now fail fast on the paper account, exact-session currency conversion, and broker WhatIf path. A read-only SPY preview runs before the full test suite and proves that its USD notional was converted into the different account base currency using a current typed IBKR FX quote. It never submits an order; the existing one-share paper place, acknowledgement, cancellation, and cancellation-confirmation round-trip remains the final binding release gate.
  • Release automation is shorter and clearer without weakening authority. The repository harness prefers typed MCP reads and falls back to the CLI only for uncovered read surfaces, while explicit Codex rules make both the read-only preflight and the sole make release RELEASE_VERSION=vX.Y.Z path discoverable. Direct tagging, pushing, GitHub release creation, and registry publication remain owned by the release target.

Claude Desktop MCPB

Download ibkr.mcpb from the Assets section below or from:

https://github.com/osauer/ibkr/releases/latest/download/ibkr.mcpb

Open the .mcpb file with Claude Desktop, drag it into Claude Desktop, or use Settings -> Extensions -> Advanced settings -> Install Extension. The bundle carries the local ibkr binary for macOS and Linux. Windows is not supported outside WSL because the daemon uses Unix-only primitives.

Shell and generic MCP install

curl -fsSL https://raw.githubusercontent.com/osauer/ibkr/main/install.sh | sh
ibkr setup claude-desktop

The first command picks the right binary for your platform, verifies its SHA-256, installs it to ~/.local/bin/ibkr, and adds that directory to your PATH if needed. On macOS it also clears the Gatekeeper quarantine flag. The second command writes the legacy MCP server entry into Claude Desktop's config; fully quit Claude Desktop and reopen.

If you only want the shell tool, stop after the first command and try:

ibkr account
ibkr quote AAPL
ibkr positions --by underlying

Prerequisite: a running IB Gateway 10.37+ or TWS (paper or live) on the same machine. The daemon auto-discovers it across the four standard ports.

See the README for the full feature menu and the troubleshooting matrix. Read-only by construction; the Safety section walks through the four guards.

⚠️ Broker-write capable build (ibkr-trading-* tarballs)

Everything above — the installer, the MCPB bundle, and the plain ibkr-v2.3.1-* tarballs — is read-only by construction: order transmission is not compiled in.

The ibkr-trading-v2.3.1-* tarballs are different: that binary can place, modify, and cancel orders with your broker once you configure the trading gates ([trading] mode plus a pinned gateway endpoint and account, cross-checked against the connected session; every write still needs a submit-eligible preview token). Only download it if you intend to trade through ibkr. Before enabling anything, read SECURITY.md and the trading preview guide, start against a paper account, and verify with ibkr trading status. Each release's order pipeline is exercised by an automated paper-trading round-trip before tagging.


Paranoid? Inspect the installer before running it

curl -fsSL https://raw.githubusercontent.com/osauer/ibkr/main/install.sh -o install.sh
less install.sh
sh install.sh

Doing something custom?

  • go install: go install github.com/osauer/ibkr/v2/cmd/ibkr@v2.3.1 (or @latest).
  • Different install dir: IBKR_INSTALL_DIR=/usr/local/bin sh install.sh. The installer won't touch your shell rc when you override; manage PATH yourself.
  • Manual download: pick a tarball or .mcpb from the Assets section below. Verify against SHA256SUMS.
  • Cursor / Continue / Zed / other local MCP clients: see Pick your path in the README for the JSON snippet (config file path differs per client).
  • Claude Code: /plugin marketplace add osauer/ibkr then /plugin install ibkr@ibkr inside any session.

Windows isn't supported. The daemon uses Unix-only primitives (setsid, flock, AF_UNIX sockets). WSL works.


Fixed

  • The early release preflight can no longer claim FX coverage from a same-currency identity conversion or a preview missing exact-session FX provenance. Its regression fixture now proves both rejection and the absence of any order submission.
  • Paper-smoke output no longer prints the connected account, broker order reference, raw broker response, or raw daemon-log tail. Failures retain an allowlisted lifecycle summary while private broker identifiers stay local.