v2.1.1
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.1.1
- Maintenance release for the release pipeline itself — no functional changes to the CLI, MCP tools, or paired app. The release credential preflight now matches the MCP Registry's short-lived login tokens (about five minutes), so releases no longer gate on a token-validity minimum that could never pass.
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-desktopThe 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 underlyingPrerequisite: 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.1.1-* tarballs — is read-only by construction: order transmission is not compiled in.
The ibkr-trading-v2.1.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.shDoing something custom?
go install:go install github.com/osauer/ibkr/v2/cmd/ibkr@v2.1.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
.mcpbfrom the Assets section below. Verify againstSHA256SUMS. - 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/ibkrthen/plugin install ibkr@ibkrinside any session.
Windows isn't supported. The daemon uses Unix-only primitives (setsid, flock, AF_UNIX sockets). WSL works.
Changed
- The release credential preflight no longer gates on stored MCP Registry JWT validity: registry JWTs live only about five minutes, so the former 30-minute minimum (and its
REGISTRY_TOKEN_MIN_VALID_MINUTESoverride) could never pass, and a start-of-pipeline refresh would expire before the registry leg anyway. The preflight now verifies gh auth and the publish tooling, and fails fast only when the registry leg's automatic device-code login is disabled (MCP_REGISTRY_AUTO_LOGIN=0); the login itself always happens at the registry-publish leg with the operator at a browser.