search-web
Access real-time, trusted web content with a natural language search query. Choose search depth for direct answers or in-depth analysis, supporting facts, news, and source-backed information retrieval.
Instructions
Search the web in real time using Linkup. Use this tool whenever the user needs trusted facts, news, or source-backed information. Returns comprehensive content from the most relevant sources.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| depth | Yes | The search depth to perform. Use 'standard' for queries with likely direct answers. Use 'deep' for complex queries requiring comprehensive analysis or multi-hop questions | |
| query | Yes | Natural language search query. Full questions work best, e.g., 'How does the new EU AI Act affect startups?' |
Implementation Reference
- src/mcp_search_linkup/server.py:54-85 (handler)The handler function decorated with @server.call_tool() that implements the logic for 'search-web'. It checks the tool name, validates query and depth arguments, uses LinkupClient to perform the search, and returns the result as TextContent.@server.call_tool() async def handle_call_tool( name: str, arguments: dict | None, ) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]: """Handle search tool execution requests.""" if name != "search-web": raise ValueError(f"Unknown tool: {name}") if not arguments: raise ValueError("Missing arguments") query = arguments.get("query") if not query: raise ValueError("Missing query") depth = arguments.get("depth") if not depth: raise ValueError("Missing depth") client = LinkupClient() search_response = client.search( query=query, depth=depth, output_type="searchResults", ) return [ types.TextContent( type="text", text=str(search_response), ) ]
- src/mcp_search_linkup/server.py:26-52 (registration)The registration of the 'search-web' tool via @server.list_tools(), defining the tool's name, description, and input schema.@server.list_tools() async def handle_list_tools() -> list[types.Tool]: """List available search tools.""" return [ types.Tool( name="search-web", description="Search the web in real time using Linkup. Use this tool whenever the user needs trusted facts, news, or source-backed information. Returns comprehensive content from the most relevant sources.", inputSchema={ "type": "object", "properties": { "query": { "type": "string", "description": "Natural language search query. Full questions work best, e.g., 'How does the new EU AI Act affect startups?'", }, "depth": { "type": "string", "description": "The search depth to perform. Use 'standard' for " "queries with likely direct answers. Use 'deep' for complex queries " "requiring comprehensive analysis or multi-hop questions", "enum": ["standard", "deep"], }, }, "required": ["query", "depth"], }, ) ]
- The input schema definition for the 'search-web' tool, specifying query and depth parameters.inputSchema={ "type": "object", "properties": { "query": { "type": "string", "description": "Natural language search query. Full questions work best, e.g., 'How does the new EU AI Act affect startups?'", }, "depth": { "type": "string", "description": "The search depth to perform. Use 'standard' for " "queries with likely direct answers. Use 'deep' for complex queries " "requiring comprehensive analysis or multi-hop questions", "enum": ["standard", "deep"], }, }, "required": ["query", "depth"], },