A multi-server MCP setup with trader analysis tools and weather forecasting, integrated with LangGraph agent and IBM WatsonX LLM
Mixed quality across 8 tools. Stock analysis tools (analyze-stock, relative-strength, volume-profile, detect-patterns, position-size, suggest-stops) have clear verb-noun naming and reasonable descriptions (50-100 chars), but lack documented output schemas and parameter descriptions are minimal. Weather tools (get_alerts, get_forecast) have better parameter descriptions but inconsistent naming conventions (underscore vs hyphen). No tool includes error handling guidance, recovery paths, or output schema documentation. Parameters lack type constraints (enums, ranges, patterns). Overall: definitions are present but sparse, lacking the depth needed for reliable LLM tool selection and composition.
Analyze a stock's technical setup
Detect chart patterns in price data
Get weather alerts for a US state.
Get weather forecast for a location.
Calculate optimal position size based on risk parameters
Calculate a stock's relative strength compared to benchmark
Suggest stop loss levels based on technical analysis
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields without knowing response structure.
Parameter descriptions are minimal or missing. 'symbol' appears 6 times with identical 1-line descriptions; no guidance on format, valid ranges, or when to use each tool vs similar ones.
No error handling or recovery guidance. Tools lack descriptions of failure modes, retryability, or what the LLM should do if a call fails (e.g., 'Invalid symbol' or 'API rate limit exceeded').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Analyze volume distribution by price
Inconsistent naming convention: stock tools use hyphens (analyze-stock, relative-strength) while weather tools use underscores (get_alerts, get_forecast). LLMs may struggle to infer tool names when conventions vary.
No parameter constraints (enums, min/max, patterns). 'lookback_days' defaults to 60 but no min/max specified; 'state' in get_alerts accepts any string instead of enum of valid US state codes.