Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Scopes

Scopes are explicit gateway permissions. Local scopes are loaded from configuration or test harnesses; remote MCP scopes are granted only after OAuth token validation and intersection with remote_mcp.allowed_scopes.

IBKR broker authentication is separate from gateway scopes.

Read Scopes

ScopePurpose
ibkr:health:readhealth, backend status, session requirements
ibkr:accounts:readaccount discovery
ibkr:portfolio:readaccount summary and portfolio snapshot
ibkr:positions:readpositions
ibkr:marketdata:readcontract search/resolve, snapshots, bars
ibkr:orders:readread-only orders and executions
ibkr:audit:readredacted audit tail
ibkr:audit:exportredacted audit export
ibkr:risk:readrisk policy, risk result, and live limit inspection
ibkr:options:readoptions chain and greeks
ibkr:marketdata:depth:readbounded Level II/depth reads
ibkr:scanner:readallowlisted market scanners
ibkr:news:readbounded broker news metadata and articles
ibkr:fundamentals:readbounded fundamentals reports
ibkr:calendar:readholidays and market session status
ibkr:currency:readread-only FX rates
ibkr:transfers:readredacted transfer history

Preview, Paper, Approval, and Live Scopes

ScopePurpose
ibkr:orders:previewnon-executable order preview
ibkr:orders:paper:submitpaper submit lifecycle
ibkr:orders:paper:cancelpaper cancel lifecycle
ibkr:orders:paper:modifypaper order modification lifecycle
ibkr:approvals:createMCP-created gateway approval records for existing previews
ibkr:orders:live:submitlive submit through the live order writer
ibkr:orders:live:cancellive cancel through the live order writer
ibkr:orders:live:modifylive-gated order modification lifecycle

Preview, paper, and live scopes do not bypass feature flags, approvals, idempotency, risk limits, kill switch, audit availability, or migration checklists.

The local scope-set constructors enforce a tier hierarchy:

  • ScopeSet::local_with_preview accepts only read and preview scopes.
  • ScopeSet::local_with_paper accepts read, preview, paper, and approval scopes, but refuses live scopes with AUTH_SCOPE_NOT_ALLOWED_IN_MVP.
  • ScopeSet::local_with_live accepts every local scope, including live ones. Remote OAuth contexts use this constructor to preserve the historical wide remote scope surface.

MCP Tool Mapping

The MCP registry is scope-filtered. Local stdio discovery uses the local scope set; remote HTTP discovery uses the validated bearer-token scopes after intersection with remote_mcp.allowed_scopes. Preview, paper, and live tools are visible only when their explicit scopes are granted, and the runtime gates still run before any broker write boundary.

ToolMinimum scope
ibkr_healthibkr:health:read
ibkr_backend_statusibkr:health:read
ibkr_session_requirementsibkr:health:read
ibkr_session_renewibkr:health:read
ibkr_kill_switch_statusibkr:health:read
ibkr_accounts_listibkr:accounts:read
ibkr_account_metadataibkr:accounts:read
ibkr_account_summaryibkr:portfolio:read
ibkr_pnl_dailyibkr:portfolio:read
ibkr_pnl_realtimeibkr:portfolio:read
ibkr_positions_listibkr:positions:read
ibkr_portfolio_snapshotibkr:portfolio:read
ibkr_contracts_searchibkr:marketdata:read
ibkr_contract_resolveibkr:marketdata:read
ibkr_market_snapshotibkr:marketdata:read
ibkr_historical_barsibkr:marketdata:read
ibkr_options_chainibkr:options:read
ibkr_option_greeksibkr:options:read
ibkr_market_depthibkr:marketdata:depth:read
ibkr_scanner_runibkr:scanner:read
ibkr_news_listibkr:news:read
ibkr_news_articleibkr:news:read
ibkr_fundamentals_getibkr:fundamentals:read
ibkr_market_sessionibkr:calendar:read
ibkr_market_holidaysibkr:calendar:read
ibkr_currency_rateibkr:currency:read
ibkr_transfer_historyibkr:transfers:read
ibkr_orders_listibkr:orders:read
ibkr_orders_historyibkr:orders:read
ibkr_order_statusibkr:orders:read
ibkr_executions_listibkr:orders:read
ibkr_limits_statusibkr:risk:read
ibkr_audit_tailibkr:audit:read
ibkr_audit_exportibkr:audit:export
ibkr_order_previewibkr:orders:preview
ibkr_bracket_order_previewibkr:orders:preview
ibkr_paper_order_submitibkr:orders:paper:submit
ibkr_paper_order_cancelibkr:orders:paper:cancel
ibkr_paper_order_modifyibkr:orders:paper:modify
ibkr_paper_bracket_order_submitibkr:orders:paper:submit
ibkr_approvals_createibkr:approvals:create
ibkr_live_order_submitibkr:orders:live:submit
ibkr_live_order_cancelibkr:orders:live:cancel
ibkr_live_order_modifyibkr:orders:live:modify
ibkr_live_bracket_order_submitibkr:orders:live:submit

Denials

Missing scope returns AUTH_MISSING_SCOPE and emits a denied-scope audit event. Unknown local or remote scopes fail configuration validation.