run_scanner
Execute market scans to identify stocks matching specific criteria like top gainers or most active, using Interactive Brokers data for trading analysis.
Instructions
Run a market scanner.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| scan_code | Yes | Scanner code (e.g., TOP_PERC_GAIN, MOST_ACTIVE) | |
| instrument | No | Instrument type | STK |
| location_code | No | Location code | STK.US.MAJOR |
| num_rows | No | Number of results |
Implementation Reference
- src/ib_async_mcp/server.py:767-780 (handler)The handler implementation for the 'run_scanner' tool, which constructs a ScannerSubscription and executes it using ib.reqScannerDataAsync.
if name == "run_scanner": from ib_async import ScannerSubscription subscription = ScannerSubscription( scanCode=args["scan_code"], instrument=args.get("instrument", "STK"), locationCode=args.get("location_code", "STK.US.MAJOR"), numberOfRows=args.get("num_rows", 10), ) results = await ib.reqScannerDataAsync(subscription) return [{ "rank": r.rank, "symbol": r.contractDetails.contract.symbol if r.contractDetails.contract else None, "sec_type": r.contractDetails.contract.secType if r.contractDetails.contract else None, } for r in results] - src/ib_async_mcp/server.py:378-391 (schema)The Tool registration and input schema definition for 'run_scanner'.
Tool( name="run_scanner", description="Run a market scanner.", inputSchema={ "type": "object", "properties": { "scan_code": {"type": "string", "description": "Scanner code (e.g., TOP_PERC_GAIN, MOST_ACTIVE)"}, "instrument": {"type": "string", "default": "STK", "description": "Instrument type"}, "location_code": {"type": "string", "default": "STK.US.MAJOR", "description": "Location code"}, "num_rows": {"type": "integer", "default": 10, "description": "Number of results"}, }, "required": ["scan_code"], }, ),