{"id":18533,"library":"mcp-fetch-server","title":"Fetch MCP Server","description":"MCP server and CLI for fetching web content as HTML, Markdown, plain text, JSON, or YouTube transcripts. Current stable version 1.1.2, released regularly on npm. Key differentiators: multiple output formats, Mozilla Readability integration for article extraction, YouTube transcript support via yt-dlp or direct page extraction, and proxy support. Minimal configuration, designed for MCP ecosystem but also usable as standalone CLI. Requires Node.js >=18.","status":"active","version":"1.1.2","language":"javascript","source_language":"en","source_url":"https://github.com/zcaceres/fetch-mcp","tags":["javascript","mcp","fetch","web","scrape","markdown","youtube","transcript"],"install":[{"cmd":"npm install mcp-fetch-server","lang":"bash","label":"npm"},{"cmd":"yarn add mcp-fetch-server","lang":"bash","label":"yarn"},{"cmd":"pnpm add mcp-fetch-server","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Used for fetch_readable tool to extract article content","package":"mozilla/readability","optional":false},{"reason":"Used to parse HTML and extract plain text / markdown","package":"jsdom","optional":false},{"reason":"Converts HTML to Markdown for fetch_markdown tool","package":"turndown","optional":false},{"reason":"Optional binary used for fetching YouTube transcripts; falls back to direct page extraction if not available","package":"yt-dlp","optional":true}],"imports":[{"note":"This package is a CLI/MCP server; there is no exported JavaScript module to import. Use via npx or install globally.","wrong":"require('mcp-fetch-server') or import from 'mcp-fetch-server' as a module","symbol":"mcp-fetch-server","correct":"npx mcp-fetch-server (CLI) or add to MCP configuration as a tool (no programmatic import)"}],"quickstart":{"code":"// Add to your Claude Desktop or MCP client config:\n{\n  \"mcpServers\": {\n    \"fetch\": {\n      \"command\": \"npx\",\n      \"args\": [\"mcp-fetch-server\"]\n    }\n  }\n}\n\n// Or use as CLI:\nnpx mcp-fetch markdown https://example.com --max-length 10000\nnpx mcp-fetch youtube https://www.youtube.com/watch?v=dQw4w9WgXcQ --lang es","lang":"javascript","description":"Shows how to add the MCP server to client config and run CLI commands for markdown and YouTube transcript."},"warnings":[{"fix":"Use npx mcp-fetch-server to run as MCP server, or use CLI commands. If you need a fetch function programmatically, use libraries like undici or node-fetch directly.","message":"The package does not export any programmatic API; it is designed to be used via command line or as an MCP server. Attempting to require() or import it in Node.js will result in an error.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Install yt-dlp globally (pip install yt-dlp) for more reliable transcript fetching.","message":"YouTube transcript extraction may fail if yt-dlp is not installed and the direct page extraction method encounters issues (e.g., non-standard player, captions not accessible). The tool falls back silently but may return empty output.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use fetch_html or fetch_markdown for non-article pages; fetch_readable is designed for blog posts and articles.","message":"fetch_readable uses Mozilla Readability which may not work well on non-article pages (e.g., homepage, video pages). It may return incomplete content or empty string.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Set max_length parameter appropriately per request, or configure DEFAULT_LIMIT environment variable to a higher value or 0 for no limit (with caution).","message":"Default max_length is 5000 characters, which may truncate content unexpectedly for large pages. Setting DEFAULT_LIMIT=0 can return full content but may cause memory issues for very large pages.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Keep up-to-date with the MCP specification and package changelog on GitHub: https://github.com/zcaceres/fetch-mcp","message":"The package may change its tool names or parameters in future releases as the MCP specification evolves. Check changelog when upgrading.","severity":"deprecated","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Install Node.js >=18 and ensure npm is up to date. Run: node --version && npm --version","cause":"Node.js version is below 18 or npm not installed.","error":"npx mcp-fetch-server: command not found"},{"fix":"Do not try to import this package in code. Use npx mcp-fetch-server to run it as an MCP server, or use CLI commands directly.","cause":"Attempting to import the package programmatically (require('mcp-fetch-server')) instead of using CLI/MCP server.","error":"Error: Cannot find module 'mcp-fetch-server'"},{"fix":"Try a different language code (--lang). Install yt-dlp globally for better extraction: pip install yt-dlp","cause":"Video does not have captions in the requested language, or yt-dlp is missing and direct extraction failed.","error":"Failed to fetch YouTube transcript: no captions found"},{"fix":"Check network connectivity. If using a proxy, verify proxy URL. Try a different URL. Consider adding custom headers to simulate a browser User-Agent.","cause":"Network issues, proxy misconfiguration, or target server blocking the request.","error":"Error: read ECONNRESET"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}