https://github.com/mcollina/mcp-node-fetch
https://github.com/mcollina/mcp-node-fetch
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/mcollina/mcp-node-fetch
- Owner: mcollina
- License: mit
- Created: 2025-03-08T23:03:13.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-03-10T09:42:16.000Z (3 months ago)
- Last Synced: 2025-04-30T18:15:47.859Z (about 2 months ago)
- Language: TypeScript
- Size: 18.6 KB
- Stars: 10
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- mcp-index - Node Fetch - Fetch web content from any URL using various HTTP methods, handle headers and request bodies, and support multiple response formats. Configurable timeout and redirect settings streamline reliable content retrieval. (APIs and HTTP Requests)
README
# MCP Node Fetch
An MCP server that enables fetching web content using the Node.js [undici](https://github.com/nodejs/undici) library.
## Features
- 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## MCP Tools
This server provides the following MCP tools:
### `fetch-url`
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)### `extract-html-fragment`
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)### `check-status`
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## Claude for Desktop Configuration
To use with Claude for Desktop, add this to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"node-fetch": {
"command": "node",
"args": ["dist/index.js"]
}
}
}
```## License
MIT