import gradio as gr from textblob import TextBlob def sentiment_analysis(text: str) -> dict: """Analyze sentiment and return polarity/subjectivity/assessment.""" pol = round(TextBlob(text).sentiment.polarity, 2) # [-1, 1] subj = round(TextBlob(text).sentiment.subjectivity, 2) # [0, 1] return { "polarity": pol, "subjectivity": subj, "assessment": "positive" if pol > 0 else "negative" if pol < 0 else "neutral", } 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", ) if __name__ == "__main__": demo.launch(mcp_server=True) # enables the MCP server alongside the UI