Financial data API providing ticker information, historical prices, financial statements, insider transactions, and financial metrics using yfinance and FastAPI-MCP
The server provides 12 financial data tools with consistent naming and generally acceptable descriptions. Tool names follow verb_noun patterns (get_ticker_info, get_ticker_prices, lookup_ticker). Most tools have brief but adequate descriptions (50-100 chars). However, parameter descriptions in the FastAPI layer contain example values (e.g., 'eg: AAPL, 601398.SS') which LLMs tend to reuse literally. Schema validation is present in FastAPI but parameter types are defined inline rather than exposed in the MCP layer with explicit JSON Schema constraints. Error handling and output schema documentation are minimal, no guidance on what fields to expect or how to recover from failures. All tools are READ_ONLY (good security posture), but output structure documentation is missing. The server sits at 'fair' quality: adequate for domain-specific use but significant gaps in LLM-optimization and composition.
Test endpoint that returns a simple message.
Get balance sheet data for a specific ticker symbol.
Get cash flow data for a specific ticker symbol.
Get financial metrics data for a specific ticker symbol.
Get income statement data for a specific ticker symbol.
Get information about a specific ticker symbol.
Parameter descriptions contain example values (e.g., 'eg: AAPL, 601398.SS') which LLMs frequently reuse literally instead of adapting to context. Should use enum constraints or regex patterns instead.
Output schemas are not documented in tool descriptions. LLMs cannot infer what fields to expect (e.g., what fields does TickerInfo contain? Is there pagination?). Results lack documentation of return structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 70 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 48 | - | v1 |
Get insider purchases data for a specific ticker symbol.
Get insider roster holders data for a specific ticker symbol.
Get insider transactions data for a specific ticker symbol.
Get recent news articles for a specific ticker symbol.
Get historical prices for a specific ticker symbol.
Lookup ticker symbols by partial name or symbol match.
Financial metrics and statement tools (get_ticker_income_stmt, get_ticker_balance_sheet, get_ticker_cash_flow) accept a 'freq' parameter with default 'yearly' but no clear guidance on valid values, format constraints, or what happens if an invalid frequency is provided.
No error handling guidance in tool descriptions. When a ticker symbol is invalid or news count is out of bounds, what error does the tool return? How should the LLM recover? No actionable error messages documented.
get_ticker_prices requires start_date and end_date parameters but provides no guidance on acceptable date ranges, validation rules, or what happens if end_date < start_date. Description says 'eg: 2025-06-23', LLMs may reuse this date literally.
Pagination not addressed. Tools returning lists (get_ticker_prices, get_ticker_news) do not document pagination support (limit, offset, total_count, next_cursor). Large result sets will blow context windows.
Tool composition: lookup_ticker returns available tickers but response structure is undocumented. Does it return ticker_id and symbol? Without clear output fields, the agent cannot chain lookup_ticker → get_ticker_info efficiently.