MCP server for real-time market regime classification — give AI agents market awareness
Four tools with clear action verbs and reasonable descriptions (avg 120 chars), but critical gaps in parameter documentation and output schemas. Three tools have empty input schemas (no parameters documented), and none have documented return types. Error handling is absent, no recovery guidance or validation feedback. Tool composition is sound (each does one thing), but lack of schema detail and output documentation severely limits LLM reasoning about chaining and result interpretation.
Full market context snapshot: regime + volatility + key metrics + trading implications. The all-in-one market briefing.
Get regime classifications for the last N trading days.
Get current SPY market regime classification (trending/neutral/high-vol) with actionable trading implications.
Get current VIX-based volatility regime (low/normal/elevated/extreme).
Three of four tools have empty input schemas (no properties defined). LLMs cannot infer parameter constraints or types. get_spy_regime, get_volatility_regime, and get_market_context all declare inputSchema={"type":"object","properties":{}} with no documented parameters.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. Responses include nested objects (metrics, trading_implications) but structure is invisible to the agent.
No error handling or recovery guidance. If yfinance fails (network error, market closed, invalid ticker), the tool returns a raw exception. LLMs receive no actionable error message or retry strategy.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
get_regime_history parameter 'days' lacks validation. Description says 'max 60' but no min/max constraints in schema. LLMs may pass 0, negative, or >60 values; tool will fail silently or return unexpected results.
Tool descriptions lack WHEN-to-use guidance. 'Get current SPY market regime' does not explain when to call this vs get_market_context (which also returns regime). LLMs may pick the wrong tool or call both redundantly.