import json import gradio as gr from textblob import TextBlob def sentiment_analysis(text: str) -> str: """ Analyze the sentiment of the given text. Args: text (str): The input text to analyze. Returns: str: A JSON string containing polarity, subjectivity and assessment. """ blob = TextBlob(text) sentiment = blob.sentiment result = { "polarity": round(sentiment.polarity, 2), # -1 (negative) to 1 (positive) "subjectivity": round(sentiment.subjectivity, 2), # 0 (objective) to 1 (subjective) "assessment": "positive" if sentiment.polarity > 0 else "negative" if sentiment.polarity < 0 else "neutral" } return json.dumps(result) # Create the Gradio Interface demo = gr.Interface( fn=sentiment_analysis, inputs=gr.Textbox(lines=5, placeholder="Enter text to analyze..."), outputs=gr.Textbox(label="Sentiment Analysis Result (JSON)"), # Change from Gr.JSON to Textbox title="Sentiment Analysis Tool", description="Analyze the sentiment of your text using TextBlob. The output is provided in JSON format." ) # Launch the interface and MCP Server if __name__ == "__main__": demo.launch(mcp_server=True)