import gradio as gr from smolagents import InferenceClientModel, CodeAgent from smolagents.mcp_client import MCPClient from dotenv import load_dotenv import os load_dotenv() try: print("Connecting to MCP server...") hf_token = os.getenv("HF_TOKEN") if not hf_token: raise ValueError("HF_TOKEN is not set") mcp_client = MCPClient( ## Try this working example on the hub: # {"url": "https://abidlabs-mcp-tools.hf.space/gradio_api/mcp/sse"} {"url": "http://localhost:7860/gradio_api/mcp/sse"} ) tools = mcp_client.get_tools() model = InferenceClientModel(token=hf_token) agent = CodeAgent(tools=[*tools], model=model) demo = gr.ChatInterface( fn=lambda message, history: str(agent.run(message)), type="messages", examples=["Prime factorization of 68", "Count the number of times the letter 'r' appears in the text 'Strawberry'"], title="Agent with MCP Tools", description="This is a simple agent that uses MCP tools to answer questions.", ) demo.launch() finally: mcp_client.disconnect()