Model Context Protocol (MCP) server for Financial Modeling Prep data. Provides structured financial data for trading strategies.
Server has 6 well-named tools with clear verb-noun patterns (get_*). All tools have descriptions (194 - 250 chars, within baseline 34 - 392 range) and documented input schemas with types. However, output schemas are inferred from type hints rather than explicitly documented in descriptions. Parameter descriptions are present but minimal (10 - 30 chars vs baseline 72 chars). No enum constraints on optional parameters. Error handling logs exceptions but does not guide LLM recovery. Missing tool annotations (readOnlyHint, idempotentHint). All tools are READ_ONLY financial data fetches, so composition and idempotency are not concerns, but descriptions could better explain WHEN to use each tool vs alternatives.
Get earnings calendar events. Returns upcoming earnings events in the specified date range. Optionally filter by symbol. Useful for PEAD strategy and volatility forecasting.
Get earnings surprise data for a symbol. This endpoint returns structured EPS data (actual/estimated/surprise percentage) for the specified symbol. Critical for PEAD strategy implementation.
Get insider trading data for a symbol. Returns recent insider trading activity for a symbol, including transaction type, shares, price, and value. Useful for news-halt heuristics on large insider sales.
Get analyst price target consensus for a symbol. Returns analyst consensus price targets, high/low targets, and number of analysts. Important for long-term risk filters and analyst extreme detection.
Get Relative Strength Index (RSI) data for a symbol. Returns RSI values over the specified time period. Useful for technical analysis and backtesting.
Output schemas not documented in tool descriptions. LLMs cannot plan downstream calls or extract fields without knowing return structure. Type hints exist in code but are not visible in MCP schema.
Parameter descriptions are minimal (10 - 30 chars). Baseline is 72 chars. Descriptions like 'The stock symbol to fetch RSI data for' lack context on format, constraints, or when to use the tool. Should explain: valid symbol formats, date range constraints, pagination behavior.
No tool annotations (readOnlyHint, idempotentHint). All tools are read-only financial data fetches and should declare readOnlyHint=true. This helps agents understand they are safe to retry and do not modify state.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | <=2025-11-25 | v2 |
Get Simple Moving Average (SMA) data for a symbol. Returns SMA values over the specified time period. Useful for technical analysis and backtesting.
Error handling returns generic HTTPException with error message but does not guide LLM recovery. Should categorize errors (retryable vs user-fixable) and suggest next steps, e.g., 'Invalid symbol. Try search_symbols() to find valid tickers.'
Optional date parameters (from_date, to_date) lack format validation and constraints. Descriptions say 'YYYY-MM-DD format' but do not specify valid ranges, whether past-only or future-allowed, or what happens if dates are invalid. Should include regex pattern or enum examples.