get_balance_data
Retrieve quarterly balance sheet data for A-share stocks to analyze financial positions and track asset-liability changes 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)The primary handler function for the 'get_balance_data' MCP tool. Defined with @app.tool() decorator inside register_financial_report_tools. It wraps the use case logic with error handling and caching via run_tool_with_handling.@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)Top-level registration call that invokes register_financial_report_tools, which defines and registers the get_balance_data tool among other financial report tools.register_financial_report_tools(app, active_data_source)
- Use case function that performs input validation, fetches raw balance sheet data from the data source, formats it as a table (markdown by default), and applies row limits.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/baostock_data_source.py:425-427 (helper)Implementation in the BaostockDataSource class that queries the Baostock API for balance sheet data using a shared _fetch_financial_data helper.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)
- src/data_source_interface.py:146-148 (schema)Abstract method definition in FinancialDataSource interface, defining the expected signature for data source implementations.@abstractmethod def get_balance_data(self, code: str, year: str, quarter: int) -> pd.DataFrame: pass