Fetch MCP Server
@zcaceres
A flexible HTTP fetching Model Context Protocol server.
Overview
What is Fetch MCP Server?
Fetch MCP Server is an MCP (Model Context Protocol) server that fetches web content and returns it in multiple formats: HTML, JSON, plain text, Markdown, readable article content (via Mozilla Readability), and YouTube video transcripts. It is intended for AI agents and developers who need to programmatically retrieve and process web content.
How to use Fetch MCP Server?
Install with npx mcp-fetch-server or globally via npm install -g mcp-fetch-server. Add it as an MCP server in your client configuration under "mcpServers", or use the CLI: mcp-fetch <command> <url> [flags]. Commands include html, markdown, readable, txt, json, and youtube. All tools accept common parameters: url, headers, max_length, start_index, and proxy.
Key features of Fetch MCP Server
- 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
- SSRF protection (blocks private/localhost addresses and DNS rebinding)
- Response size limits and configurable character limit via environment variables
Use cases of Fetch MCP Server
- An AI agent fetching a webpage to answer user questions about its content
- Extracting the main article from a news or blog post, free of ads and navigation
- Retrieving JSON from an API endpoint for structured data processing
- Obtaining a YouTube video transcript for summarization or translation
- Browsing web pages with custom headers or through a proxy in restricted networks
FAQ from Fetch MCP Server
What content formats does Fetch MCP Server support?
It supports HTML, Markdown, plain text, JSON, readable article content (Markdown via Mozilla Readability), and YouTube transcripts.
How can I set a custom character limit for responses?
Use the max_length parameter in the tool call, or set the DEFAULT_LIMIT environment variable (default 5000 characters; 0 for no limit).
Does Fetch MCP Server support proxy requests?
Yes. Pass the proxy parameter (e.g., http://proxy:8080) to route requests through a proxy.
Is there protection against SSRF attacks?
Yes. The server blocks requests to private/localhost addresses and implements DNS rebinding protection.
Can I get YouTube transcripts with a specific language?
Yes. Use the youtube command or fetch_youtube_transcript tool with the optional lang parameter (default "en").