get_balance_data
Retrieve quarterly balance sheet data for A-share stocks to analyze financial position and track performance over time.
Instructions
Quarterly balance sheet data.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| year | Yes | ||
| quarter | Yes | ||
| limit | No | ||
| format | No | markdown |
Implementation Reference
- src/tools/financial_reports.py:55-61 (handler)MCP tool handler: thin wrapper that invokes the fetch_balance_data use case with shared error handling and logging.@app.tool() def get_balance_data(code: str, year: str, quarter: int, limit: int = 250, format: str = "markdown") -> str: """Quarterly balance sheet data.""" return run_tool_with_handling( lambda: fetch_balance_data(active_data_source, code=code, year=year, quarter=quarter, limit=limit, format=format), context=f"get_balance_data:{code}:{year}Q{quarter}", )
- mcp_server.py:52-52 (registration)Registration call that defines and registers the get_balance_data tool along with other financial report tools.register_financial_report_tools(app, active_data_source)
- Use case layer: validates inputs, fetches raw data from FinancialDataSource.get_balance_data, and formats as markdown or other.def fetch_balance_data(data_source: FinancialDataSource, *, code: str, year: str, quarter: int, limit: int, format: str) -> str: validate_year(year) validate_quarter(quarter) validate_output_format(format) df = data_source.get_balance_data(code=code, year=year, quarter=quarter) return _format_financial_df(df, code=code, year=year, quarter=quarter, dataset="Balance Sheet", format=format, limit=limit)
- src/data_source_interface.py:146-148 (schema)Abstract method definition in the FinancialDataSource interface, specifying input/output types for balance data retrieval.@abstractmethod def get_balance_data(self, code: str, year: str, quarter: int) -> pd.DataFrame: pass
- src/baostock_data_source.py:425-427 (helper)Concrete implementation in BaostockDataSource: calls Baostock's query_balance_data API with error handling.def get_balance_data(self, code: str, year: str, quarter: int) -> pd.DataFrame: """Fetches quarterly balance sheet data (solvency) using Baostock.""" return _fetch_financial_data(bs.query_balance_data, "Balance Sheet", code, year, quarter)