Real-time market intelligence pipeline and MCP skill server for AI agents. Provides tools for querying stock quotes, detecting market anomalies, analyzing news sentiment, and generating market briefs.
MarketPulse has 13 well-named tools with clear verb-noun patterns (get_, list_, detect_, analyze_, explain_). All tools have descriptions (avg ~50 chars, baseline 194 chars) that are concise but lack depth on WHEN to use them or dependencies. Input schemas are present and properly typed with descriptions for all parameters. However, output schemas are NOT documented, tools return JSON strings without specifying field structure, forcing LLMs to infer response shape. Error handling is minimal; no recovery guidance or actionable error messages visible. No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are READ_ONLY, which is good for safety but not declared in schema.
Analyze news sentiment for a symbol
List recent market anomalies
Hero tool: explain a stock move with correlated news and anomalies
Find news correlated with an anomaly
Generate a market-wide brief
Get company news for a symbol
Get latest stock quote for a symbol
Output schemas not documented. Tools return JSON strings without specifying field structure (e.g., get_latest_quote returns {symbol, price, timestamp, ...} but LLM must infer). This forces LLMs to guess response shape and breaks downstream tool chaining.
Descriptions are too brief (avg 48 chars vs baseline 194 chars). Missing WHEN to use each tool and dependencies. E.g., 'Get latest stock quote for a symbol' doesn't explain when to call this vs get_recent_ticks or summarize_stock_context.
No tool annotations. All 13 tools are READ_ONLY but lack readOnlyHint in schema. This prevents clients from optimizing caching, retry logic, or safety checks.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | <=2025-11-25 | v2 |
Get latest market news
Get pipeline component health
Get recent stock ticks
Get computed rolling features
List tracked stock symbols
Summarize correlated market context
Error handling is minimal. find_news_related_to_anomaly returns {error: 'Anomaly not found'} as JSON string, but no guidance on recovery (e.g., 'Try detect_market_anomalies() to find valid anomaly IDs'). Other tools have no visible error handling.
No pagination or result limits documented. detect_market_anomalies and get_company_news accept 'limit' param but no mention of max, default behavior, or total count in response. Large result sets could exhaust context window.