An MCP server that enables fetching web content using the Node.js undici library.
- Fetch content from any URL using various HTTP methods
- Support for headers and request body
- Return content in various formats (text, JSON, binary, HTML fragments)
- Handle errors gracefully
- Configure timeout and redirect behavior
This server provides the following MCP tools:
Fetches content from a URL and returns it.
Parameters:
-
url
(string, required): The URL to fetch -
method
(string, optional): HTTP method (default: "GET") -
headers
(object, optional): HTTP headers to include -
body
(string, optional): Request body for POST/PUT requests -
timeout
(number, optional): Request timeout in milliseconds -
responseType
(string, optional): How to parse the response ("text", "json", "binary", "html-fragment") -
fragmentSelector
(string, optional): CSS selector to extract specific HTML fragments (when responseType is "html-fragment") -
followRedirects
(boolean, optional): Whether to follow redirects (default: true)
Extracts specific HTML content from a webpage using CSS selectors and optionally navigates to anchor points.
Parameters:
-
url
(string, required): The URL to fetch -
selector
(string, required): CSS selector for the HTML fragment to extract -
anchorId
(string, optional): Optional anchor ID to locate a specific fragment -
method
(string, optional): HTTP method (default: "GET") -
headers
(object, optional): HTTP headers to include -
body
(string, optional): Request body for POST requests -
timeout
(number, optional): Request timeout in milliseconds -
followRedirects
(boolean, optional): Whether to follow redirects (default: true)
Checks if a URL is accessible without downloading the full content.
Parameters:
-
url
(string, required): The URL to check -
timeout
(number, optional): Request timeout in milliseconds
To use with Claude for Desktop, add this to your claude_desktop_config.json
:
{
"mcpServers": {
"node-fetch": {
"command": "node",
"args": ["dist/index.js"]
}
}
}
MIT