A stock portfolio analysis server that retrieves portfolio holdings, gathers stock context through web crawling and vector embeddings, and provides financial research capabilities.
Two tools with minimal documentation. getPortfolio has a basic description but uses string parameters ('true'/'false') instead of boolean types, violating schema best practices. getStockContext lacks parameter descriptions entirely and returns unstructured concatenated strings. Neither tool documents output schemas. Parameter descriptions are present for getPortfolio but missing for getStockContext. No error handling guidance, no pagination support, no structured output. Both tools fall well below production baselines (avg tool description 194 chars, 100% of A+ tools have documented returns).
Get portfolio information. Parameters: - qty: Whether to include quantity information ("true" or "false") - avg_price: Whether to include average price information ("true" or "false") Returns: - List of portfolio items with requested information
Retrieve stock context by searching for relevant information, crawling web pages, and querying a vector database for financial and performance-related content.
getStockContext has NO parameter descriptions. The 'stock' parameter lacks any explanation of expected format, valid values, or constraints. LLMs cannot infer whether to pass 'AAPL', 'Apple', or 'AAPL:NASDAQ'.
getPortfolio uses string parameters ('true'/'false') instead of boolean type. Schema shows type:string with description text, forcing LLMs to reason about string conversion. Should be type:boolean with default false.
getStockContext returns unstructured concatenated strings (str(context) + str(sources)). No documented output schema. LLMs cannot parse results reliably or extract fields for downstream calls.
No error handling guidance. If Ollama service is unavailable, web crawl fails, or vector DB is unreachable, tools return raw exceptions. LLMs receive no recovery hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | 2026-07-28+ | v2 |
getPortfolio returns a flat list of lists (e.g. [['AAPL', 100, 150.5]]) with no field names. Downstream tools cannot reliably extract ticker, quantity, or price without positional assumptions.