mcp-websearch / app.py
AddChew's picture
add app
7f72992
import gradio as gr
from smolagents import WebSearchTool, VisitWebpageTool
def search_web(query: str) -> str:
"""
Performs a web search for a query and returns a string of the top search results formatted as markdown with titles, links, and descriptions.
Args:
query (str): The search query to perform.
Returns:
str: Web search results.
"""
tool = WebSearchTool()
return tool(query)
def visit_webpage(url: str) -> str:
"""
Visits a webpage at the given url and reads its content as a markdown string. Use this to browse webpages.
Args:
url (str): The url of the webpage to visit.
Returns:
str: Webpage content in markdown string format.
"""
tool = VisitWebpageTool()
return tool(url)
websearch = gr.Interface(
fn = search_web,
inputs = gr.Textbox(placeholder = "Enter your search query here.", label = "Search Query"),
outputs = gr.TextArea(),
title = "Web Search",
description = "Perform web search on search query.",
)
visitwebpage = gr.Interface(
fn = visit_webpage,
inputs = gr.Textbox(placeholder = "Enter your URL here.", label = "URL"),
outputs = gr.TextArea(),
title = "Vist Webpage",
description = "Visit webpage at given URL.",
)
app = gr.TabbedInterface(
[websearch, visitwebpage],
["Web Search", "Visit Webpage"]
)
if __name__ == "__main__":
app.launch(mcp_server = True)