get_profit_data
Retrieve quarterly profitability data for A-share stocks to analyze financial performance by specifying stock code, year, and quarter.
Instructions
Quarterly profitability 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:31-37 (handler)The primary MCP tool handler for 'get_profit_data'. Defines input schema via parameters and docstring, handles execution by delegating to use case with error handling.@app.tool() def get_profit_data(code: str, year: str, quarter: int, limit: int = 250, format: str = "markdown") -> str: """Quarterly profitability data.""" return run_tool_with_handling( lambda: fetch_profit_data(active_data_source, code=code, year=year, quarter=quarter, limit=limit, format=format), context=f"get_profit_data:{code}:{year}Q{quarter}", )
- mcp_server.py:52-52 (registration)Top-level registration invocation that registers the financial_reports tools module, including get_profit_data.register_financial_report_tools(app, active_data_source)
- Use case helper invoked by the tool handler. Performs input validation, fetches raw data from data source, and formats output as markdown or other.def fetch_profit_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_profit_data(code=code, year=year, quarter=quarter) return _format_financial_df(df, code=code, year=year, quarter=quarter, dataset="Profitability", format=format, limit=limit)
- src/baostock_data_source.py:413-415 (helper)Data source implementation that fetches profitability data using Baostock's query_profit_data API.def get_profit_data(self, code: str, year: str, quarter: int) -> pd.DataFrame: """Fetches quarterly profitability data using Baostock.""" return _fetch_financial_data(bs.query_profit_data, "Profitability", code, year, quarter)