Server facts
Fetch MCP Server
Project
- Author
- zcaceres
- Repository
- github.com/zcaceres/fetch-mcp
- License
- MIT
- Category
- Search & Web Data
Tech
- Runtime / language
- node
- Transports
- stdio
- Remote available
- No
- Authentication
- Not specified
Activity
- GitHub stars
- 825
- Last commit
- Data as of
Tags
- Content Extraction
- Http
- Markdown
- Web Content
- Youtube
Overview
Fetch MCP Server is a web-content retrieval service for MCP clients, with a companion command-line interface. The README describes separate tools for raw HTML, Markdown conversion, plain text, JSON responses, readable articles, and YouTube transcripts. Article extraction uses Mozilla Readability to remove surrounding navigation and other boilerplate before returning Markdown. Transcript retrieval can use yt-dlp when installed or fall back to direct page extraction, with a language option for captions. These are distinct output choices for bringing external material into an assistant's context.
Requests accept custom headers and an optional proxy. Returned content can be divided into character ranges using a start index and maximum length, with a default response character limit of 5,000. A separate response-body limit defaults to 10 MB, and the README describes protections against private-address requests and DNS rebinding. The documented MCP configuration starts mcp-fetch-server through npx; the mcp-fetch CLI offers matching format-oriented commands. The input also includes a structured tool list naming generic HTTP, GraphQL, browser, and WebSocket operations, while the README presents the format-specific tool set. That difference matters when checking the capabilities actually exposed by a running installation. The strongest documented fit is retrieving and converting web material, especially articles, structured responses, and video captions.
Install & configure
Requirements
- Node.js with npx
- Optional yt-dlp for transcript extraction
npx mcp-fetch-serverThis is the README MCP launch, not the mcp-fetch CLI invocation. The supplied structured tool catalog and README list different tools; verify the running server tool list.
Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.
Config file · macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Use Settings → Developer → Edit Config when available. Do not assume a Linux configuration path; check the client documentation for your platform. Remote servers use the app’s connector flow when supported, not the local stdio file shown here. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"fetch-mcp-zcaceres": {
"command": "npx",
"args": [
"mcp-fetch-server"
],
"env": {
"DEFAULT_LIMIT": "<Optional default response character limit>",
"MAX_RESPONSE_BYTES": "<Optional response-body byte limit>"
}
}
}
}Config file · Project: .cursor/mcp.json
User: ~/.cursor/mcp.json
The project path is relative to the workspace root. The tilde denotes your user home directory. Use Cursor’s MCP settings to confirm which configuration and scope your installed version is reading. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"fetch-mcp-zcaceres": {
"command": "npx",
"args": [
"mcp-fetch-server"
],
"env": {
"DEFAULT_LIMIT": "<Optional default response character limit>",
"MAX_RESPONSE_BYTES": "<Optional response-body byte limit>"
}
}
}
}Config file · Workspace: .vscode/mcp.json
For user scope, use the “MCP: Open User Configuration” command if available. Do not guess a user configuration path across operating systems, profiles, containers, or remote workspaces; check the client documentation. Merge this example with existing settings; do not overwrite unrelated servers.
{
"servers": {
"fetch-mcp-zcaceres": {
"type": "stdio",
"command": "npx",
"args": [
"mcp-fetch-server"
],
"env": {
"DEFAULT_LIMIT": "<Optional default response character limit>",
"MAX_RESPONSE_BYTES": "<Optional response-body byte limit>"
}
}
}
}Config file · macOS/Linux: ~/.codeium/windsurf/mcp_config.json
Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json
Open the MCP configuration through Windsurf’s settings when possible to confirm the active file. Paths can differ in managed or future releases; check the client documentation if this location is not present. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"fetch-mcp-zcaceres": {
"command": "npx",
"args": [
"mcp-fetch-server"
],
"env": {
"DEFAULT_LIMIT": "<Optional default response character limit>",
"MAX_RESPONSE_BYTES": "<Optional response-body byte limit>"
}
}
}
}Config file · Project scope: .mcp.json at the repository root
The project file uses mcpServers. For user scope, use claude mcp add --scope user rather than assuming .mcp.json in your home directory is the user configuration. Check the client documentation for managed settings and storage details. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"fetch-mcp-zcaceres": {
"type": "stdio",
"command": "npx",
"args": [
"mcp-fetch-server"
],
"env": {
"DEFAULT_LIMIT": "<Optional default response character limit>",
"MAX_RESPONSE_BYTES": "<Optional response-body byte limit>"
}
}
}
}Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.
Tools
Source: repository README and repository tool metadata. Tool descriptions are a documented snapshot, not a live capability check.
| Tool | What it does |
|---|---|
| fetch_html | Retrieve a page as raw HTML. |
| fetch_markdown | Convert fetched page content to Markdown. |
| fetch_txt | Return page text without HTML tags, scripts, or styles. |
| fetch_json | Retrieve a URL returning JSON. |
| fetch_readable | Extract the main article body as Markdown using Readability. |
| fetch_youtube_transcript | Retrieve video captions with an optional language selection. |
| fetch | Issue an HTTP request with configurable method, headers, body, and options. |
| get-rules | Retrieve guidance on using the server tools. |
| graphql | Run GraphQL queries or mutations with variables and headers. |
| puppeteer | Operate browser pages, execute JavaScript, and capture screenshots. |
| socket | Open, inspect, use, or close WebSocket connections. |
Names, permissions, and defaults can change. Check the current upstream documentation before granting access.
Use cases
- Bring a web article into an assistant as cleaned Markdown.
- Retrieve JSON from a URL with custom request headers.
- Read long pages in character-based chunks.
- Extract a YouTube transcript in a selected language.
Strengths
- Several content formats plus dedicated article extraction.
- Supports headers, proxies, and character-range pagination.
- Documents SSRF defenses and response-size limits.
Limitations
- Default response character and byte limits constrain large fetches.
- Structured input tools differ from the README tool list.
- Private and localhost targets are blocked by the documented SSRF protection.
Frequently asked questions
Independent listing, not an affiliation or security review. Grant the least access needed and verify the upstream instructions before running code.