get_industry_members
Retrieve all stocks within a specific industry on a given date using A Share MCP server data. This tool helps identify industry constituents for market analysis and portfolio tracking.
Instructions
Get all stocks in a given industry on a date.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| industry | Yes | ||
| date | No | ||
| limit | No | ||
| format | No | markdown |
Implementation Reference
- src/tools/indices.py:74-81 (handler)MCP tool handler for 'get_industry_members'. Registered via @app.tool() decorator. Delegates to use case logic via run_tool_with_handling.@app.tool() def get_industry_members(industry: str, date: Optional[str] = None, limit: int = 250, format: str = "markdown") -> str: """Get all stocks in a given industry on a date.""" logger.info("Tool 'get_industry_members' called industry=%s, date=%s", industry, date or "latest") return run_tool_with_handling( lambda: fetch_industry_members(active_data_source, industry=industry, date=date, limit=limit, format=format), context=f"get_industry_members:{industry}", )
- src/use_cases/indices.py:50-59 (helper)Core implementation logic for fetching and formatting industry members from the data source.def fetch_industry_members(data_source: FinancialDataSource, *, industry: str, date: Optional[str], limit: int, format: str) -> str: validate_output_format(format) validate_non_empty_str(industry, "industry") df = data_source.get_stock_industry(code=None, date=date) if df is None or df.empty: return "(No data available to display)" col = "industry" if "industry" in df.columns else df.columns[-1] filtered = df[df[col] == industry].copy() meta = {"industry": industry, "as_of": date or "latest"} return format_table_output(filtered, format=format, max_rows=limit, meta=meta)
- mcp_server.py:53-53 (registration)Registers the index tools module, including 'get_industry_members', by calling register_index_tools.register_index_tools(app, active_data_source)