@s-h-a-d-o-w/fetch-mcp
v1.0.8
Published
A flexible HTTP fetching Model Context Protocol server.
Maintainers
Readme
Notable changes from the original
Available on npmjs: npm install @s-h-a-d-o-w/fetch-mcp
- Markdown conversion looks for a container that contains heading tags. It used to be that it included essentially the whole document.
- Markdown conversion outputs more common markdown syntax.
Fetch MCP Server

This MCP server provides functionality to fetch web content in various formats, including HTML, JSON, plain text, and Markdown.
Components
Tools
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 requestmax_length(number, optional): Maximum number of characters to return (default: 5000)start_index(number, optional): Start content from this character index (default: 0)
- 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 requestmax_length(number, optional): Maximum number of characters to return (default: 5000)start_index(number, optional): Start content from this character index (default: 0)
- 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 requestmax_length(number, optional): Maximum number of characters to return (default: 5000)start_index(number, optional): Start content from this character index (default: 0)
- 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 requestmax_length(number, optional): Maximum number of characters to return (default: 5000)start_index(number, optional): Start content from this character index (default: 0)
- Returns the content of the webpage converted to Markdown format
Resources
This server does not provide any persistent resources. It's designed to fetch and transform web content on demand.
Getting started
- Clone the repository
- Install dependencies:
npm install - Build the server:
npm run build
Usage
To use the server, you can run it directly:
npm startThis will start the Fetch MCP Server running on stdio.
Usage with Desktop App
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"
]
}
}
}Features
- 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
Development
- Run
npm run devto start the TypeScript compiler in watch mode - Use
npm testto run the test suite
License
This project is licensed under the MIT License.
