The Fetch MCP Server allows you to fetch web content in various formats and apply transformations:
Fetch HTML: Retrieve raw HTML content from a webpage
Fetch JSON: Fetch and parse JSON content from a URL
Fetch Plain Text: Extract text content from webpages without HTML tags, scripts, or styles
Fetch Markdown: Convert and retrieve webpage content in Markdown format
Custom Headers: Add optional headers to requests for additional customization
Allows converting web content to Markdown format using the fetch_markdown tool, using TurndownService for HTML to Markdown conversion
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Fetch MCP Serverfetch the latest blog post from techcrunch.com as markdown"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Fetch MCP Server

An MCP server for fetching web content in multiple formats — HTML, JSON, plain text, Markdown, readable article content, and YouTube transcripts.
Tools
All tools accept the following common parameters:
Parameter | Type | Required | Description |
| string | Yes | URL to fetch |
| object | No | Custom headers to include in the request |
| number | No | Maximum characters to return (default: 5000) |
| number | No | Start from this character index (default: 0) |
| string | No | Proxy URL (e.g. |
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-dlpif available, otherwise extracts directly from the page. Accepts an additionallangparameter (default:"en") to select the caption language.
Related MCP server: Fetch MCP Server
Installation
As an MCP server
Add to your MCP client configuration:
{
"mcpServers": {
"fetch": {
"command": "npx",
"args": ["mcp-fetch-server"]
}
}
}As a CLI
npx mcp-fetch <command> <url> [flags]Or install globally:
npm install -g mcp-fetch-server
mcp-fetch <command> <url> [flags]CLI Usage
mcp-fetch <command> <url> [flags]Commands
Command | Description |
| Fetch a URL and return raw HTML |
| Fetch a URL and return Markdown |
| Fetch a URL and return article content as Markdown (via Readability) |
| Fetch a URL and return plain text |
| Fetch a URL and return JSON |
| Fetch a YouTube video transcript |
Flags
Flag | Description |
| Maximum characters to return |
| Start from this character index |
| Proxy URL |
| Language code for YouTube transcripts (default: |
| Show help message |
| Show version |
Examples
# Fetch a page as markdown
mcp-fetch markdown https://example.com
# Extract article content without boilerplate
mcp-fetch readable https://example.com/blog/post
# Get a YouTube transcript in Spanish
mcp-fetch youtube https://www.youtube.com/watch?v=dQw4w9WgXcQ --lang es
# Fetch with a length limit
mcp-fetch html https://example.com --max-length 10000
# Fetch through a proxy
mcp-fetch json https://api.example.com/data --proxy http://proxy:8080Environment Variables
Variable | Description |
| Default character limit for responses (default: |
| Maximum response body size in bytes (default: |
Example with a custom limit:
{
"mcpServers": {
"fetch": {
"command": "npx",
"args": ["mcp-fetch-server"],
"env": {
"DEFAULT_LIMIT": "50000"
}
}
}
}Features
Fetch web content as HTML, JSON, plain text, or Markdown
Extract article content with Mozilla Readability (strips ads, nav, boilerplate)
Extract YouTube video transcripts (via
yt-dlpor direct extraction)Proxy support for requests behind firewalls
Pagination with
max_lengthandstart_indexCustom request headers
SSRF protection (blocks private/localhost addresses and DNS rebinding)
Response size limits to prevent memory exhaustion
Development
bun install
bun run dev # start with watch mode
bun test # run tests
bun run build # build for productionLicense
This project is licensed under the MIT License.