The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Fetch MCP listing page.

An MCP server for fetching web content in multiple formats — HTML, JSON, plain text, Markdown, readable article content, and YouTube transcripts.
All tools accept the following common parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | URL to fetch |
headers | object | No | Custom headers to include in the request |
max_length | number | No | Maximum characters to return (default: 5000) |
start_index | number | No | Start from this character index (default: 0) |
proxy | string | No | Proxy URL (e.g. http://proxy:8080) |
fetch_html — Fetch a website and return its raw HTML content.
fetch_markdown — Fetch a website and return its content converted to Markdown.
fetch_txt — Fetch a website and return plain text with HTML tags, scripts, and styles removed.
fetch_json — Fetch a URL and return the JSON response.
fetch_readable — Fetch a website and extract the main article content using Mozilla Readability, returned as Markdown. Strips navigation, ads, and boilerplate. Ideal for articles and blog posts.
fetch_youtube_transcript — Fetch a YouTube video's captions/transcript. Uses yt-dlp if available, otherwise extracts directly from the page. Accepts an additional lang parameter (default: "en") to select the caption language.
Add to your MCP client configuration:
Or install globally:
| Command | Description |
|---|---|
html | Fetch a URL and return raw HTML |
markdown | Fetch a URL and return Markdown |
readable | Fetch a URL and return article content as Markdown (via Readability) |
txt | Fetch a URL and return plain text |
json | Fetch a URL and return JSON |
youtube | Fetch a YouTube video transcript |
| Flag | Description |
|---|---|
--max-length <N> | Maximum characters to return |
--start-index <N> | Start from this character index |
--proxy <URL> | Proxy URL |
--lang <code> | Language code for YouTube transcripts (default: en) |
--help | Show help message |
--version | Show version |
| Variable | Description |
|---|---|
DEFAULT_LIMIT | Default character limit for responses (default: 5000, set to 0 for no limit) |
MAX_RESPONSE_BYTES | Maximum response body size in bytes (default: 10485760 / 10 MB) |
Example with a custom limit:
yt-dlp or direct extraction)max_length and start_indexThis project is licensed under the MIT License.