mcp_fetch
Fetches website content for analysis or integration by providing a URL. This tool retrieves web page data for use within development workflows.
Instructions
Fetches a website and returns its content
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to fetch |
Implementation Reference
- mcp_simple_tool/server.py:99-131 (handler)Core handler function that asynchronously fetches the website using httpx, follows redirects, handles timeouts, HTTP errors, and exceptions, returning the HTML content or error as TextContent.async def fetch_website( url: str, ) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]: headers = { "User-Agent": "MCP Test Server (github.com/modelcontextprotocol/python-sdk)" } try: timeout = httpx.Timeout(10.0, connect=5.0) async with httpx.AsyncClient( follow_redirects=True, headers=headers, timeout=timeout ) as client: response = await client.get(url) response.raise_for_status() return [types.TextContent(type="text", text=response.text)] except httpx.TimeoutException: return [types.TextContent( type="text", text="Error: Request timed out while trying to fetch the website." )] except httpx.HTTPStatusError as e: return [types.TextContent( type="text", text=(f"Error: HTTP {e.response.status_code} " "error while fetching the website.") )] except Exception as e: return [types.TextContent( type="text", text=f"Error: Failed to fetch website: {str(e)}" )]
- mcp_simple_tool/server.py:208-214 (handler)Dispatch logic in the call_tool handler that routes 'mcp_fetch' calls to the fetch_website function after validating the 'url' argument.if name == "mcp_fetch": if "url" not in arguments: return [types.TextContent( type="text", text="Error: Missing required argument 'url'" )] return await fetch_website(arguments["url"])
- mcp_simple_tool/server.py:252-260 (schema)Input schema defining the required 'url' parameter as a string for the mcp_fetch tool."type": "object", "required": ["url"], "properties": { "url": { "type": "string", "description": "URL to fetch", } }, },
- mcp_simple_tool/server.py:248-261 (registration)Tool registration in list_tools() that defines the name, description, and schema for 'mcp_fetch'.types.Tool( name="mcp_fetch", description="Fetches a website and returns its content", inputSchema={ "type": "object", "required": ["url"], "properties": { "url": { "type": "string", "description": "URL to fetch", } }, }, ),