fetch-urlLABSCO SUMMARY
A proper HTTP client, not just a page reader.
fetch-url takes a method, headers and a body, which is what separates it from tools that only GET a page: you can POST to an API and get the JSON parsed back. The fragment extractor keeps a long page from arriving whole, and check-status answers 'is this up' without paying for the body.
What it is
A Node server built on undici with a general HTTP fetch, a CSS-selector extractor for pulling one fragment out of a page, and a status check that does not download the body.
What you get
- Any URL fetched with the HTTP method, headers and request body you supply
- The response parsed as text, JSON, binary or an HTML fragment, chosen per call
- A CSS selector applied to return just the part of the page you want, optionally anchored to an element ID
- A reachability check that returns the status without pulling the full content
- Timeout and redirect behaviour set per request
Requirements
Node.js, and the built dist/index.js launched by the client. No key and no account — requests go out as whatever machine it runs on.
Setup effort
Build from source — git clone https://github.com/mcollina/mcp-node-fetch.git
USE CASES
Calling an API that has no MCP server of its own
POST with your own headers and body, and get the response parsed as JSON.
Reading one section of a long page
Pass a CSS selector, and optionally an anchor ID, so only that fragment comes back.
Checking whether a URL is alive
Get the status back without downloading the content behind it.
Downloading something that is not text
Set the response type to binary and handle the bytes rather than a mangled string.
Dealing with a slow or redirect-happy endpoint
Set the timeout, and turn redirect-following off, on that request alone.
3 tools
Listed in project docs. Your client may show a different list.
extract-html-fragmentcheck-statusBEFORE YOU INSTALL
What to know first
Tools you get
3 tools named in the project's documentation. package.json declares no bin, so npx has nothing to run; the tools use kebab-case names such as fetch-url.
Requires
node on PATH
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
This one is built from source rather than installed with a single command.
Server setup
git clone https://github.com/mcollina/mcp-node-fetch.git
cd mcp-node-fetch
npm install
npm run buildMCP Clients
Claude Desktop
{
"mcpServers": {
"node-fetch": {
"command": "node",
"args": [
"dist/index.js"
]
}
}
}dist/index.js is relative, and Claude Desktop does not start in your clone, so it has to be the absolute path to dist/index.js inside the mcp-node-fetch folder you built.