# # import gradio as gr from textblob import TextBlob def sentiment_analysis(text: str) -> dict: """ Analyze the sentiment of the given text. Args: text (str): The text to analyze Returns: dict: A dictionary containing polarity, subjectivity, and assessment """ blob = TextBlob(text) sentiment = blob.sentiment _polarity = round(sentiment.polarity, 2) # -1 (negative) to 1 (positive) _subjectivity = round(sentiment.subjectivity, 2) # 0 (objective) to 1 (subjective) _assessment = "positive" if _polarity > 0 else \ "negative" if _polarity < 0 else "neutral" return { "polarity": _polarity, "subjectivity": _subjectivity, "assessment": _assessment, } # Create the Gradio interface demo = gr.Interface( fn = sentiment_analysis, inputs = gr.Textbox(placeholder="Enter text to analyze..."), outputs = gr.JSON(), title = "Text Sentiment Analysis", description = "Analyze the sentiment of text using TextBlob" ) # Launch the interface and MCP server if __name__ == "__main__": demo.launch(mcp_server=True)