Provides tools for accessing stock prices, options data, and calculating financial metrics
The server provides 3 tools with basic functional definitions but significant quality gaps. All tools have descriptions and input schemas present, but descriptions are minimal (10-30 chars) and lack actionable guidance. Parameter descriptions exist but are sparse. No output schemas are documented. Error handling returns dictionary responses with error keys but provides no recovery guidance or categorization. The codebase shows good internal practices (rate limiting, caching, input validation) but these are not surfaced in the tool definitions where LLMs need them. Tools follow verb_noun naming (get_*) which is correct. However, the definitions lack the depth needed for reliable LLM selection and execution.
Get historical price data for a stock.
Get options chain data for a stock.
Get current stock price and basic info.
Tool descriptions are too brief (10-30 chars) and lack context for LLM selection. E.g., 'Get current stock price and basic info.' does not explain when to use this vs alternatives, what 'basic info' includes, or whether it's real-time or delayed.
No output schemas documented. LLMs cannot plan downstream operations without knowing what fields are returned. E.g., get_stock_price returns a dict with symbol, current_price, etc., but this is not declared in the tool definition. Rubric baseline: 100% of A+ tools have documented return types.
Error responses provide no recovery guidance. When a tool returns {'error': 'Invalid symbol format'}, the LLM has no instruction on what to do next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 47 | 2026-07-28+ | v2 |
Parameter descriptions are generic and lack constraints.
get_historical_data and get_options_chain accept string enums (period, interval, sort_by) but do not declare them as enum types in the schema. period accepts one of a known set {'1d', '5d', ..., 'max'}, this must be a JSON Schema enum constraint, not a string.
get_options_chain has an incomplete description in the docstring: 'Get options chain data for a stock. Args: ... Returns: Dictionary with calls and puts data'. The docstring cuts off mid-code (line with 'calls_df =' is incomplete). The tool definition likely works but the documentation is truncated.
No tool declares read-only semantics. All three tools are safe (no mutations), but there is no toolAnnotations support (readOnlyHint, idempotentHint, destructiveHint) in the definitions. This prevents agents from reasoning about safety and retry behavior.