import gradio as gr

from mcp.client.stdio import StdioServerParameters
from smolagents import (
    InferenceClientModel, CodeAgent, ToolCollection
)

from smolagents.mcp_client import MCPClient

try:
    mcp_client = MCPClient(
        {
            "url": "https://sharathhebbar24-mcp-sentiment.hf.space/gradio_api/mcp/sse"
        }
    )
    tools = mcp_client.get_tools()
    model = InferenceClientModel()
    agent = CodeAgent(tools=[*tools], model=model)

    demo = gr.ChatInterface(
        fn=lambda message, history: str(agent.run(message)),
        type="messages",
        examples=["Prime factorization of 68"],
        title="Agents with MCP Tools",
        description="This is a simple agent the uses MCP tools to answer questions",
    )

    demo.launch()

finally:
    mcp_client.disconnect()