mcp_test_client / app.py
alihmaou's picture
Smol adaptations to avoid reloading the server
8018fc5
raw
history blame
1.06 kB
import gradio as gr
import os
from mcp import StdioServerParameters
from smolagents import InferenceClientModel, CodeAgent, MCPClient
HF_MCP_URL = "https://alihmaou-mcp-tools.hf.space/gradio_api/mcp/sse"
mcp_client = MCPClient({"url": HF_MCP_URL})
model = InferenceClientModel(token=os.getenv("HUGGINGFACE_API_TOKEN"))
tools = mcp_client.get_tools()
agent = CodeAgent(tools=tools, model=model)
def run_agent(message, history):
return str(agent.run(message))
def reload_tools():
global tools, agent
tools = mcp_client.get_tools()
agent = CodeAgent(tools=tools, model=model)
return "\n".join(f"- **{t.name}**: {t.description}" for t in tools)
with gr.Blocks() as demo:
with gr.Row():
with gr.Column(scale=2):
chatbot = gr.ChatInterface(fn=run_agent)
with gr.Column(scale=1):
tool_list = gr.Markdown(value=reload_tools())
reload_btn = gr.Button("πŸ”„ Recharger les outils MCP")
reload_btn.click(fn=reload_tools, outputs=tool_list)
demo.launch()
mcp_client.disconnect()