This fork adds possiblity to send JSON requests with defined method (by default it always sends GET request) and body (for non-GET requests). Also it is outputting raw HTTP response when it throws an error, so LLM has more context and can perform better. This is something that was missing in original version and I find this useful for improved feedback loop during backend development
This MCP server provides functionality to fetch web content in various formats, including HTML, JSON, plain text, and Markdown.
-
fetch_html
- Fetch a website and return the content as HTML
- Input:
url
(string, required): URL of the website to fetchheaders
(object, optional): Custom headers to include in the request
- Returns the raw HTML content of the webpage
-
fetch_json
- Fetch a JSON file from a URL
- Input:
url
(string, required): URL of the JSON to fetchheaders
(object, optional): Custom headers to include in the requestmethod
(string, optional): HTTP method to use for the requestbody
(object, optional): Optional body to include in the request. It is transformed to string under the hood.
- Returns the parsed JSON content
-
fetch_txt
- Fetch a website and return the content as plain text (no HTML)
- Input:
url
(string, required): URL of the website to fetchheaders
(object, optional): Custom headers to include in the request
- Returns the text content of the webpage with HTML tags, scripts, and styles removed
-
fetch_markdown
- Fetch a website and return the content as Markdown
- Input:
url
(string, required): URL of the website to fetchheaders
(object, optional): Custom headers to include in the request
- Returns the content of the webpage converted to Markdown format
This server does not provide any persistent resources. It's designed to fetch and transform web content on demand.
- Clone the repository
- Install dependencies:
npm install
- Build the server:
npm run build
To use the server, you can run it directly:
npm start
This will start the Fetch MCP Server running on stdio.
To integrate this server with a desktop app, add the following to your app's server configuration:
{
"mcpServers": {
"fetch": {
"command": "node",
"args": [
"{ABSOLUTE PATH TO FILE HERE}/dist/index.js"
]
}
}
}
- Fetches web content using modern fetch API
- Supports custom headers for requests
- Provides content in multiple formats: HTML, JSON, plain text, and Markdown
- Uses JSDOM for HTML parsing and text extraction
- Uses TurndownService for HTML to Markdown conversion
- Run
npm run dev
to start the TypeScript compiler in watch mode - Use
npm test
to run the test suite
This project is licensed under the MIT License.