import gradio as gr import os from smolagents import InferenceClientModel, CodeAgent, MCPClient # Load .env file for local development (ignored in production) from dotenv import load_dotenv load_dotenv() # This will be ignored if .env doesn't exist (like in HF Spaces) try: mcp_client = MCPClient( { "url": "https://snowcoader-mcp-sentiment.hf.space/gradio_api/mcp/sse", "transport": "sse" } ) tools = mcp_client.get_tools() # Get token from environment - try both possible env var names token = os.getenv("HUGGINGFACE_API_TOKEN") or os.getenv("HF_TOKEN") if not token: print("Warning: No Hugging Face API token found. Some models may not work.") model = InferenceClientModel() # Will use default/free tier else: model = InferenceClientModel(token=token) agent = CodeAgent(tools=[*tools], model=model, additional_authorized_imports=["json", "ast", "urllib", "base64"]) demo = gr.ChatInterface( fn=lambda message, history: str(agent.run(message)), type="messages", examples=["Analyze the sentiment of the following text 'This is awesome'"], title="Agent with MCP Tools", description="This is a simple agent that uses MCP tools to answer questions.", ) demo.launch() finally: mcp_client.disconnect()