|
import os |
|
import gradio as gr |
|
from mcp import StdioServerParameters |
|
from smolagents import InferenceClientModel, CodeAgent, ToolCollection, MCPClient |
|
|
|
|
|
if __name__ == "__main__": |
|
|
|
only_list_tools = True |
|
|
|
try: |
|
|
|
mcp_client = MCPClient( |
|
{"url": "https://agents-mcp-hackathon-f1-mcp-server.hf.space/gradio_api/mcp/sse", "transport": "sse"}) |
|
tools = mcp_client.get_tools() |
|
|
|
print("### MCP tools ### ") |
|
print("\n".join(f"{t.name}: {t.description}" for t in tools)) |
|
|
|
if only_list_tools: |
|
mcp_client.close() |
|
exit(0) |
|
|
|
|
|
model = InferenceClientModel( |
|
model_id="Qwen/Qwen2.5-32B-Instruct", |
|
token=os.getenv("HF_TOKEN") |
|
) |
|
|
|
agent = CodeAgent(tools=[*tools], model=model) |
|
|
|
|
|
chat_interface = gr.ChatInterface( |
|
fn=lambda message, history: str(agent.run(message)), |
|
type="messages", |
|
examples=["Prime factorization of 68"], |
|
title="Agent with MCP Tools", |
|
description="This is a simple agent that uses MCP tools to answer questions." |
|
) |
|
|
|
chat_interface.launch() |
|
|
|
finally: |
|
mcp_client.close() |