Skip to main content
Glama

Stock Market Analysis MCP Server

by CalvinLiuu
SENTIMENT_TRACKER_SUMMARY.mdโ€ข10.5 kB
# Market Sentiment Tracker - Implementation Summary ## ๐ŸŽฏ Overview Successfully built a comprehensive Market Sentiment Tracker that aggregates multiple bearish/bullish market signals to provide actionable trading recommendations. This system analyzes 9 key market indicators and produces a weighted sentiment score from -100 (extremely bearish) to +100 (extremely bullish). ## ๐Ÿ“ฆ What Was Built ### New Files Created 1. **sentiment.py** (733 lines) - Core sentiment calculation engine - 9 individual signal calculators - Weighted aggregation system - MCP tool registration functions 2. **sentiment_history.json** (auto-created) - Stores daily sentiment scores - Enables trend tracking over time - Automatically maintains 90-day history ### Modified Files 1. **utils.py** - Added `SENTIMENT_FILE` constant - Added `load_sentiment_history()` function - Added `save_sentiment_history()` function 2. **stock.server.py** - Imported `register_sentiment_tools` - Registered sentiment tools with MCP server - Updated version to 0.4.0 - Added sentiment to feature list 3. **TOOLS_REFERENCE.md** - Added "Market Sentiment Tracking" section (8 tools) - Added sentiment examples to Pro Tips - Updated total tool count to 48+ ## ๐Ÿ› ๏ธ Available Tools ### 8 New MCP Tools 1. **get_market_sentiment()** - Returns overall sentiment score and classification - Provides actionable recommendations - Auto-saves to history for trend tracking 2. **get_detailed_sentiment_signals()** - Detailed breakdown of all 9 indicators - Shows individual scores and weighted contributions - Helps understand what's driving overall sentiment 3. **get_vix_analysis()** - VIX volatility index analysis - Fear/greed gauge (VIX < 12 = complacency, VIX > 30 = panic) - Current reading and interpretation 4. **get_market_breadth()** - Sector participation analysis - Measures % of sectors positive over past month - Indicates market health (>80% = strong, <40% = narrow/risky) 5. **get_sector_rotation_signal()** - Defensive vs growth sector performance - Rotation to defensives = risk-off/bearish - Growth leading = risk-on/bullish 6. **get_ai_sector_signal()** - AI/Tech sector strength analysis - QQQ vs SPY relative performance - AI bellwether stocks (NVDA, MSFT, GOOGL, META) 7. **analyze_leverage_indicators()** - Market leverage and stress signals - Volatility patterns indicate deleveraging - Elevated volatility = potential forced selling 8. **track_sentiment_history(days=30)** - View historical sentiment trends - Identify if sentiment improving or deteriorating - Shows sentiment evolution over time ## ๐Ÿ“Š Signal Components ### 9 Market Indicators Tracked | Signal | Weight | What It Measures | |--------|--------|------------------| | VIX Level | 2.0x | Market fear/volatility (inverse relationship) | | SPY vs SMA200 | 1.5x | Long-term trend strength | | QQQ vs SMA50 | 1.5x | Tech/growth momentum | | Put/Call Proxy | 1.5x | Options hedging activity | | Sector Rotation | 1.5x | Defensive vs growth performance | | Market Breadth | 1.0x | Participation across sectors | | Volume Pattern | 1.0x | Buying vs selling pressure | | AI/Tech Signal | 1.5x | Tech leadership status | | Leverage Indicator | 1.0x | Volatility stress/deleveraging | **Total Weight: 12.0x** โ†’ Normalized to -100 to +100 scale ## ๐Ÿ“ˆ Scoring System ### Overall Sentiment Classifications - **๐Ÿ”ด Extremely Bearish** (< -60): High risk, 40-50% cash recommended - **๐Ÿ”ด Bearish** (-60 to -20): Caution, 20-30% cash, defensive sectors - **๐ŸŸก Neutral** (-20 to +20): Mixed signals, balanced approach - **๐ŸŸข Bullish** (+20 to +60): Positive environment, full equity exposure - **๐ŸŸข Extremely Bullish** (> +60): Strong momentum, watch for overheating ### Individual Signal Scoring Each signal scores from -10 (very bearish) to +10 (very bullish): - Multiplied by signal weight - Summed across all signals - Normalized to -100 to +100 range ## ๐Ÿงช Test Results (October 23, 2025) ### Current Market Sentiment **Overall Score: 2.4/100 - ๐ŸŸก NEUTRAL** ### Signal Breakdown | Indicator | Value | Signal | Score | Contribution | |-----------|-------|--------|-------|--------------| | VIX Level | 19.2 | ๐ŸŸก Normal | 0/10 | 0.0 | | SPY Trend | +10.7% vs SMA200 | ๐ŸŸข Strong uptrend | 10/10 | +15.0 | | QQQ Trend | +2.8% vs SMA50 | ๐ŸŸก Neutral | 0/10 | 0.0 | | Put/Call Proxy | 1.06 | ๐ŸŸก Neutral | 0/10 | 0.0 | | Sector Rotation | Defensive +5.7% vs Growth +1.7% | ๐Ÿ”ด Very bearish | -8/10 | -12.0 | | Market Breadth | 78% sectors positive | ๐ŸŸข Good | 5/10 | +5.0 | | Volume Pattern | 1.0 ratio | ๐ŸŸก Neutral | 0/10 | 0.0 | | AI/Tech Signal | QQQ +1.9% vs SPY | ๐ŸŸก Neutral | 0/10 | 0.0 | | Leverage | Volatility 1.2x normal | ๐Ÿ”ด Elevated | -5/10 | -5.0 | **Net Contribution: +3.0** โ†’ Normalized: **2.4/100** ### Key Observations 1. **Bullish Signals**: - SPY showing strong uptrend (+10.7% above 200-day MA) - Good market breadth (78% of sectors positive) - VIX in normal range (not panicking) 2. **Bearish Signals**: - Defensive sectors outperforming growth (flight to safety) - Elevated volatility suggesting deleveraging - Tech/AI sectors not leading market 3. **Interpretation**: - Market is divergent: Strong indices but sector rotation concerning - Defensive leadership suggests investors hedging - Elevated leverage indicators align with your news about deleveraging funds - Overall: Mixed/neutral with cautious undertone ## ๐Ÿ’ก Alignment with Your Market Analysis The sentiment tracker **confirms several points from your news**: 1. โœ… **Leverage Unwinding**: Leverage indicator shows elevated volatility (1.2x normal), suggesting deleveraging in progress 2. โœ… **Defensive Rotation**: Sector rotation signal shows defensive sectors leading growth by 4% (bearish signal) 3. โœ… **AI/Tech Concerns**: AI sector signal neutral (QQQ only +1.9% vs SPY), not the strong leadership expected in bull markets 4. โš ๏ธ **Market Resilience**: Despite concerns, SPY still +10.7% above 200-day MA and 78% breadth shows underlying strength ### Recommendation Based on Current Sentiment (2.4/100 - Neutral) **Mixed signals warrant balanced approach:** - Maintain diversification - Consider trimming high-beta positions - Increase defensive allocation (10-15% of equity) - Keep 15-20% cash for opportunities - Watch for sentiment deterioration below -20 (would trigger more defensive positioning) ## ๐Ÿš€ How to Use ### Quick Market Check ```python # Get instant market sentiment result = get_market_sentiment() # Returns: Score, classification, and recommendation ``` ### Detailed Analysis ```python # See all signals details = get_detailed_sentiment_signals() # Returns: Breakdown of all 9 indicators with contributions ``` ### Specific Indicator Checks ```python # Check volatility/fear vix = get_vix_analysis() # Check sector rotation rotation = get_sector_rotation_signal() # Check AI/tech leadership ai = get_ai_sector_signal() # Check leverage stress leverage = analyze_leverage_indicators() # Check market breadth breadth = get_market_breadth() ``` ### Track Sentiment Over Time ```python # View 30-day history history = track_sentiment_history(days=30) # Shows if sentiment improving or deteriorating ``` ## ๐Ÿ”ฎ Future Enhancement Ideas Based on your initial requirements, these could be added later: ### 1. Portfolio Risk Assessment Against Macro Factors - Cross-reference portfolio holdings with sentiment signals - Alert if portfolio heavily weighted toward sectors showing weakness - Suggest rebalancing based on sentiment ### 2. Automated Position/Hedge Recommendations - If sentiment < -40: Suggest specific hedge positions (put strikes, inverse ETFs) - If defensive rotation strong: Suggest XLP/XLU/XLV allocation - If AI weakness: Suggest reducing tech concentration ### 3. Custom Signal Additions - Economic indicators (unemployment, GDP, inflation) - Credit spreads (HYG vs LQD) - Crypto correlation (risk-on indicator) - Commodities signals (gold, oil) ### 4. Alert Integration - Trigger alerts when sentiment crosses thresholds - "Sentiment turned bearish" notification - "VIX spiked above 30" alert ### 5. Backtesting - Historical sentiment analysis - Performance of sentiment-based strategies - Optimize signal weights ## ๐Ÿ“ File Structure ``` stock_mcp_server/ โ”œโ”€โ”€ sentiment.py # NEW - Core sentiment module โ”œโ”€โ”€ sentiment_history.json # NEW - Auto-created history file โ”œโ”€โ”€ stock.server.py # UPDATED - Registered sentiment tools โ”œโ”€โ”€ utils.py # UPDATED - Added sentiment helpers โ”œโ”€โ”€ TOOLS_REFERENCE.md # UPDATED - Added documentation โ”œโ”€โ”€ SENTIMENT_TRACKER_SUMMARY.md # NEW - This file โ””โ”€โ”€ [other existing files...] ``` ## โœ… Verification All 8 sentiment tools tested and working: - โœ… get_market_sentiment() - โœ… get_detailed_sentiment_signals() - โœ… get_vix_analysis() - โœ… get_market_breadth() - โœ… get_sector_rotation_signal() - โœ… get_ai_sector_signal() - โœ… analyze_leverage_indicators() - โœ… track_sentiment_history() **Status: Production Ready** ๐Ÿš€ ## ๐ŸŽฏ Next Steps 1. **Restart MCP Server** to load new sentiment tools 2. **Run sentiment analysis** to get current market view 3. **Track daily** by running `get_market_sentiment()` regularly 4. **Compare to portfolio** holdings to identify risk exposure 5. **Set monitoring routine** (e.g., check sentiment daily/weekly) ## ๐Ÿ“Š Real-Time Usage Example ```python # Morning routine: Check market sentiment sentiment = get_market_sentiment() # Score: 2.4/100 - NEUTRAL # If concerning signals, get details if score < 10: details = get_detailed_sentiment_signals() # Check specific concerns if "defensive leading" in details: rotation = get_sector_rotation_signal() # Consider: Reduce growth, add XLP/XLU/XLV if "elevated volatility" in details: leverage = analyze_leverage_indicators() # Consider: Reduce position sizes, add hedges # Weekly: Track trend history = track_sentiment_history(days=30) # Is sentiment improving or deteriorating? ``` --- **Built:** October 23, 2025 **Version:** 0.4.0 **Status:** โœ… Complete and Tested **Tools Added:** 8 **Lines of Code:** ~750

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/CalvinLiuu/stock_mcp_server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server