betki's picture
Update app.py
0168b93 verified
"""
This is a Gradio MCP client that connects to my MCP server (mcp-rag-workflow).
This script initializes a Gradio interface for an agent that uses tools from the MCP server.
It connects to the MCP server, retrieves available tools, and sets up a chat interface where users can interact with the agent.
"""
import os
from dotenv import load_dotenv
load_dotenv() # Load environment variables from .env file
import gradio as gr
from smolagents import InferenceClientModel, CodeAgent, MCPClient
try:
mcp_client = MCPClient(
{
"url": "https://agents-mcp-hackathon-mcp-rag-workflow.hf.space/gradio_api/mcp/sse",
"transport": "sse"
}
)
tools = mcp_client.get_tools()
model = InferenceClientModel(token=os.getenv("HUGGINGFACE_API_TOKEN"))
agent = CodeAgent(tools=[*tools], model=model)
mcp_description = """
**Example Queries**:
- "What are the main features of fuel system of SU-35?"
- "What is the combat potential of SU-35?"
- "Write me a report on origin of the universe."
- "Write me a report on the impact of climate change on polar bears."
"""
demo = gr.ChatInterface(
fn=lambda message, history: str(agent.run(message)),
chatbot=gr.Chatbot(height=450, placeholder="Ask me about Sukhoi SU-35 or ask to write report on any topic."),
type="messages",
title="A Gradio MCP client that uses Tools from my Hackathon MCP server",
examples=[ "What are the main features of fuel system of SU-35?", "What is the combat potential of SU-35?", "Write me a report on origin of the universe."],
description=mcp_description,
)
demo.launch()
finally:
mcp_client.disconnect()