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 text to analyze Returns: str: A JSON string containing polarity, subjectivity and assessment """ blob = TextBlob(text) sentiment = blob.sentiment result = { # -1 (negative) to 1(positive) "polarity": round(sentiment.polarity, 2), "subjectivity": round(sentiment.subjectivity, 2), "assessment": "positive" if sentiment.polarity > 0 else "negative" if sentiment.polarity < 0 else "neutral" } return json.dumps(result) # return f"Sentiment: {result['assessment']}" # Create a Gradio instance demo = gr.Interface( fn=sentiment_analysis, inputs=gr.Textbox(placeholder="Enter the text to analyze..."), outputs=gr.Textbox(), title="Text Sentiment Analysis", description="Analyse the sentiment of the text using TextBlob", ) # Launch the gradio instance and MCP server if __name__ == "__main__": demo.launch(mcp_server=True)