
IBKR Portfolio Builder
This server treats Interactive Brokers as a research platform instead of a ticker lookup service. It exposes 468 screeners from IBKR's scan catalog, pre-tagged by strategy intent (value, growth, income, momentum) and organized by category (fundamentals, dividends, ESG, events). The workflow is top-down: pick a strategy, run scans filtered by instrument type, cross-reference with news, narrow to candidates. You also get the usual account summary, positions, order history, price snapshots, and contract search. Auth supports both OAuth 2.1 for Claude.ai custom connectors and static bearer tokens for CLI or code editors. It runs ib-gateway in read-only mode, so no order placement. Reach for this when you want an LLM to compose scans and build watchlists, not just quote individual stocks.
- GitHub stars
- 15
- tools
- 15
- auth
- Secret needed
- transport
- HTTP
- last updated
- Jun 8, 2026
Tools
15 toolsPublic tool metadata for what this MCP can expose to an agent.
ib_account_summaryNetLiquidation / BuyingPower / TotalCashValue / AvailableFunds / UnrealizedPnL for the connected paper or live account.
NetLiquidation / BuyingPower / TotalCashValue / AvailableFunds / UnrealizedPnL for the connected paper or live account.
No parameter schema in public metadata yet.
ib_positionsOpen positions across managed accounts, with quantity / avg cost / mark-to-market / unrealized PnL.
Open positions across managed accounts, with quantity / avg cost / mark-to-market / unrealized PnL.
No parameter schema in public metadata yet.
ib_open_ordersCurrently working orders with status, filled / remaining quantity, average fill price.
Currently working orders with status, filled / remaining quantity, average fill price.
No parameter schema in public metadata yet.
ib_tradesRecent executed fills (`days_back` window, IBKR caps history ~7 days).
Recent executed fills (`days_back` window, IBKR caps history ~7 days).
No parameter schema in public metadata yet.
ib_price_snapshotCurrent bid / ask / last / high / low / volume for a US stock. Surfaces IBKR market-data restriction messages clearly.
Current bid / ask / last / high / low / volume for a US stock. Surfaces IBKR market-data restriction messages clearly.
No parameter schema in public metadata yet.
ib_price_historyOHLCV bars for any duration / bar size (`1 day`, `1 hour`, `5 mins`, ...). Always works regardless of market-data subscription.
OHLCV bars for any duration / bar size (`1 day`, `1 hour`, `5 mins`, ...). Always works regardless of market-data subscription.
No parameter schema in public metadata yet.
ib_search_contractsFuzzy-search IBKR's contract database by name / partial ticker.
Fuzzy-search IBKR's contract database by name / partial ticker.
No parameter schema in public metadata yet.
ib_contract_detailsFull contract metadata — `long_name`, `industry`, `category`, `subcategory`, trading hours, valid exchanges.
Full contract metadata — `long_name`, `industry`, `category`, `subcategory`, trading hours, valid exchanges.
No parameter schema in public metadata yet.
ib_scan_catalogThe typed scan catalog. Filter by `category`, `strategy`, `instrument`, free-text `query`; optionally return the full list of available categories + strategies via `list_meta=true`.
The typed scan catalog. Filter by `category`, `strategy`, `instrument`, free-text `query`; optionally return the full list of available categories + strategies via `list_meta=true`.
No parameter schema in public metadata yet.
ib_filter_catalogFilter parameter codes grouped by category (`price`, `volume`, `market_cap`, `fundamentals`, `technical`, `options`), with an instrument applicability note.
Filter parameter codes grouped by category (`price`, `volume`, `market_cap`, `fundamentals`, `technical`, `options`), with an instrument applicability note.
No parameter schema in public metadata yet.
ib_screener_codesSubstring search over the raw `scan-parameters.xml` codes (legacy / fallback).
Substring search over the raw `scan-parameters.xml` codes (legacy / fallback).
No parameter schema in public metadata yet.
ib_screenerRun an IBKR scan — pass `scan_code`, `instrument`, `location`, optional price / volume filters. Returns rank + ticker + exchange.
Run an IBKR scan — pass `scan_code`, `instrument`, `location`, optional price / volume filters. Returns rank + ticker + exchange.
No parameter schema in public metadata yet.
ib_news_providersList subscribed IBKR news providers (Briefing.com, Dow Jones, etc.).
List subscribed IBKR news providers (Briefing.com, Dow Jones, etc.).
No parameter schema in public metadata yet.
ib_news_for_symbolFetch headlines for a US stock across all subscribed providers. Headlines only; surfaces a clear `notice` field when the account lacks historical-news entitlement.
Fetch headlines for a US stock across all subscribed providers. Headlines only; surfaces a clear `notice` field when the account lacks historical-news entitlement.
No parameter schema in public metadata yet.
ib_news_articleFetch a single article body by `provider_code` + `article_id`. May incur a per-article fee (Dow Jones in particular).
Fetch a single article body by `provider_code` + `article_id`. May incur a per-article fee (Dow Jones in particular).
No parameter schema in public metadata yet.
Sponsors
Readme
ibkr-portfolio-builder-mcp
A remote MCP server for top-down portfolio construction with Interactive Brokers. Built to be used as a Claude.ai custom connector, Claude Code MCP, or any HTTP MCP client.
Most ibkr-mcp servers expose individual lookup primitives —
get_quote,get_position,place_order. This one exposes the research workflow: a typed catalog of 468 screeners across 16 categories tagged by strategy intent (value / growth / income / momentum / quality / events / …), per-scan applicable instruments, inverse-pair links, and live news/account access — so an LLM can do real top-down portfolio construction (pick sectors / strategies → run scans → cross-reference with news → narrow to candidates) instead of bottoms-up ticker fishing.
Why this exists
I built this because the existing IBKR-MCP servers in the community treat IBKR as a "look-up-one-ticker" data source. That mirrors how most retail brokerage UIs work, but it's not how good portfolio construction actually happens.
A good top-down workflow looks like:
Details
- Repository
- github.com/adwiteeymauriya/ibkr-portfolio-builder-mcp
- Transport
- HTTP
- Auth
- Required
- Registry
- MCP registry, active