Labsco
MCP SERVER

Web Fetch

by tatn

Fetch a page as raw text, browser-rendered HTML or clean Markdown — and read images with OCR.

Page Fetching & Content Extraction
Summary
Four fetches, because pages do not all behave the same.

A single-page app returns nothing useful to a plain fetch, and a JSON endpoint has no need of a browser. Keeping the raw, rendered, Markdown and media paths as separate tools means the right one is chosen per URL instead of fighting one general fetcher.

What it is

A fetching server with four ways to bring a URL back: raw text with no browser, fully rendered HTML from a headless browser for JavaScript-driven pages, well-formatted Markdown, and AI-powered extraction from images and video.

What you get
  • Raw text pulled straight from a URL, for JSON, XML, CSV, TSV and other structured formats (get-raw-text)
  • Fully rendered HTML from a headless browser, for modern apps and SPAs that need JavaScript to run (get-rendered-html)
  • A page converted to clean Markdown with its structure preserved (get-markdown)
  • Content extracted from images and video using computer vision and OCR (get-markdown-from-media)
  • The right fetch chosen per URL, rather than one general fetcher used for everything
Requirements

Uvx, which runs it with nothing installed. The media tool needs an OpenAI key and returns an error without one; the model it uses defaults to gpt-4o and can be overridden, and PYTHONIOENCODING can be set to utf-8 if output encoding misbehaves.

Setup effort

One command — uvx mcp-server-fetch-python