get_earning_dates
Retrieve upcoming and historical earnings announcement dates for stocks using Yahoo Finance data to track corporate reporting schedules.
Instructions
Get earning dates.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol in Yahoo Finance format. | |
| limit | No | max amount of upcoming and recent earnings dates to return. Default value 12 should return next 4 quarters and last 8 quarters. Increase if more history is needed. |
Implementation Reference
- src/mcp_yahoo_finance/server.py:173-189 (handler)The core handler function 'get_earning_dates' in the YahooFinance class. It retrieves earnings dates for the given stock symbol using yfinance's Ticker.get_earnings_dates and formats the result as JSON.def get_earning_dates(self, symbol: str, limit: int = 12) -> str: """Get earning dates. Args: symbol (str): Stock symbol in Yahoo Finance format. limit (int): max amount of upcoming and recent earnings dates to return. Default value 12 should return next 4 quarters and last 8 quarters. Increase if more history is needed. """ stock = Ticker(ticker=symbol, session=self.session) earning_dates = stock.get_earnings_dates(limit=limit) if isinstance(earning_dates, pd.DataFrame): earning_dates.index = earning_dates.index.date.astype(str) # type: ignore return f"{earning_dates.to_json(indent=2)}" return f"{earning_dates}"
- src/mcp_yahoo_finance/server.py:204-218 (registration)Registration of all tools including 'get_earning_dates' via generate_tool calls in the list_tools decorator handler.@server.list_tools() async def list_tools() -> list[Tool]: return [ generate_tool(yf.cmd_run), generate_tool(yf.get_recommendations), generate_tool(yf.get_news), generate_tool(yf.get_current_stock_price), generate_tool(yf.get_stock_price_by_date), generate_tool(yf.get_stock_price_date_range), generate_tool(yf.get_historical_stock_prices), generate_tool(yf.get_dividends), generate_tool(yf.get_income_statement), generate_tool(yf.get_cashflow), generate_tool(yf.get_earning_dates), ]
- Dispatch logic in the call_tool handler that matches the tool name and invokes the corresponding YahooFinance method.case "get_earning_dates": price = yf.get_earning_dates(**args) return [TextContent(type="text", text=price)]