Interactive Brokers from Python, end to end: complete Client Portal Web API connectivity (78 endpoints, REST + WebSocket, Docker gateway), market and historical data management with a Google Drive cloud cache, Flex statements, 44 Claude tools + MCP server for any Python or MCP client, backtests and analytics — orders behind Touch ID + confirmation.
23 tools with mostly complete schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. Tool names follow verb_noun convention well (get_*, place_*, add_*). Descriptions average ~80 chars, below the 194-char baseline for A+ tools. Most parameters have type and description, but many lack constraints (enums, ranges, formats). Output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal; no recovery guidance. Security-sensitive tools (place_order, cancel_order) lack confirmation patterns. Web scraping tools (fetch_page, crawl_site, firecrawl_search) are domain-misaligned for a financial broker MCP.
Create a price alert that fires when a symbol crosses a threshold. direction must be 'above' or 'below'.
Add a symbol to a watchlist
Cancel an existing order
Crawl a website and extract content
Fetch and parse a web page
Search using Firecrawl API
Get account summary and balance information
Output schemas not documented. LLMs cannot predict response structure for any of the 23 tools. Responses must include pagination info (total_count, next_cursor), field types, and chaining IDs (e.g., account_id for downstream calls). Currently undocumented.
Irreversible operations (place_order, cancel_order, sync_flex_trades) lack confirmation/dry-run patterns. Agents can execute destructive trades without user confirmation, risking financial loss.
Parameter constraints missing. place_order lacks enum for order_type (MKT, LMT, STP, etc.), quantity/price ranges, or validation rules. run_backtest period param accepts free-form strings ('1d', '1w', '1m') without enum. LLMs will hallucinate invalid values.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | <=2025-11-25 | v2 |
List all accounts and their summary data
Get Flex trade history
Get historical price data for a symbol
Get current market data for a symbol
Get status of an order
Get profit and loss information
Get portfolio allocation and asset breakdown
Get current positions for an account
List price alerts. active_only=true returns only untriggered alerts.
Get trade history
Get watchlist items
Place a new order
Remove a symbol from a watchlist
Run a backtest on historical data
Search a website for content
Synchronize Flex trade data from IBKR
Web scraping tools (fetch_page, crawl_site, search_site, firecrawl_search) are domain-misaligned. A financial broker MCP should focus on trading, portfolio, and market data, not generic web crawling. These 4 tools dilute the server's purpose and add security/compliance risk.
Error handling absent. No recovery guidance, error classification, or actionable messages. Tools return raw API errors without context. LLMs cannot self-correct or retry intelligently.