Spaces:
Sleeping
Sleeping
| title: MCP Sentiment Analysis Server | |
| emoji: π | |
| colorFrom: blue | |
| colorTo: purple | |
| sdk: gradio | |
| sdk_version: "5.0.0" | |
| app_file: app.py | |
| pinned: false | |
| license: mit | |
| # MCP Sentiment Analysis Server | |
| This is a Model Context Protocol (MCP) server that provides sentiment analysis capabilities using an improved TextBlob-based approach with negation detection. | |
| ## Features | |
| - **Comprehensive Sentiment Analysis**: Detailed sentiment analysis with polarity and subjectivity scores | |
| - **Numerical Sentiment Scoring**: Simple numerical scoring from -1 (very negative) to 1 (very positive) | |
| - **Emotion Classification**: Basic emotion classification (Joy, Sadness, Anger, etc.) | |
| - **Batch Text Processing**: Analyze multiple texts at once with summary statistics | |
| - **Improved Negation Handling**: Better detection of negated sentiments compared to vanilla TextBlob | |
| - **Full MCP Protocol Support**: Compatible with MCP clients and AI applications | |
| ## Usage | |
| ### Web Interface | |
| Use the interface above to test the sentiment analysis tools directly. | |
| ### MCP Endpoint | |
| Connect your MCP clients to: `https://YOUR_USERNAME-SPACE_NAME.hf.space/gradio_api/mcp/sse` | |
| ### Available Tools | |
| - `analyze_sentiment`: Comprehensive sentiment analysis with debug information | |
| - `get_sentiment_score`: Numerical sentiment scoring (-1 to 1) | |
| - `classify_emotion`: Basic emotion classification with confidence scores | |
| - `batch_analyze`: Analyze multiple texts at once with summary statistics | |
| ## Example with smolagents | |
| ```python | |
| from smolagents.mcp_client import MCPClient | |
| with MCPClient( | |
| {"url": "https://YOUR_USERNAME-SPACE_NAME.hf.space/gradio_api/mcp/sse"} | |
| ) as tools: | |
| for tool in tools: | |
| print(f"{tool.name}: {tool.description}") | |
| ``` | |
| ## Example with Cursor IDE | |
| Add to your MCP configuration: | |
| ```json | |
| { | |
| "mcpServers": { | |
| "sentiment-analysis": { | |
| "command": "npx", | |
| "args": [ | |
| "-y", | |
| "mcp-remote", | |
| "https://YOUR_USERNAME-SPACE_NAME.hf.space/gradio_api/mcp/sse", | |
| "--transport", | |
| "sse-only" | |
| ] | |
| } | |
| } | |
| } | |
| ``` | |
| ## Improvements Over Standard TextBlob | |
| This implementation includes several improvements over standard TextBlob sentiment analysis: | |
| 1. **Negation Detection**: Automatically detects common negation patterns (don't, can't, not, etc.) | |
| 2. **Sentiment Correction**: Corrects TextBlob's tendency to misclassify negated positive statements | |
| 3. **Conservative Thresholds**: Uses more conservative thresholds for sentiment classification | |
| 4. **Debug Information**: Provides transparency into the analysis process | |
| ## Example Results | |
| **Input**: "I don't like this kind of things happen" | |
| - **Standard TextBlob**: Positive (0.6) β | |
| - **This Implementation**: Negative (-0.48) β | |
| **Input**: "This is not good" | |
| - **Standard TextBlob**: Positive (0.7) β | |
| - **This Implementation**: Negative (-0.35) β | |
| ## Technical Details | |
| - Built with Gradio and TextBlob | |
| - Uses regex-based negation detection | |
| - Implements conservative sentiment thresholds | |
| - Provides JSON-formatted responses | |
| - Full MCP protocol compatibility via Server-Sent Events (SSE) | |
| ## License | |
| MIT License - see the course repository for details. | |