fetch-mcp

MCP.Pizza Chef: zcaceres

The fetch-mcp server is a versatile Model Context Protocol server designed to retrieve web content in multiple formats including HTML, JSON, plain text, and Markdown. It offers specialized tools such as fetch_html for raw HTML retrieval, fetch_json for parsing JSON data from URLs, and fetch_txt for extracting plain text content without HTML tags or scripts. This server enables seamless integration of live web data into AI workflows, enhancing context awareness and real-time information access across various applications.

Use This MCP server To

Fetch live HTML content from websites Retrieve and parse JSON data from APIs Extract plain text from web pages Integrate real-time web data into AI models Support dynamic content fetching for agents Enable custom header requests for web fetching

README

Fetch MCP Server

fetch mcp logo

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 fetch
      • headers (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 fetch
      • headers (object, optional): Custom headers to include in the request
    • 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 fetch
      • headers (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 fetch
      • headers (object, optional): Custom headers to include in the request
    • 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

  1. Clone the repository
  2. Install dependencies: npm install
  3. Build the server: npm run build

Usage

To use the server, you can run it directly:

npm start

This 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 dev to start the TypeScript compiler in watch mode
  • Use npm test to run the test suite

License

This project is licensed under the MIT License.

fetch-mcp FAQ

How do I specify custom headers in fetch-mcp requests?
You can include an optional 'headers' object in your fetch_html, fetch_json, or fetch_txt tool inputs to add custom HTTP headers.
Can fetch-mcp handle different content types?
Yes, fetch-mcp supports fetching HTML, JSON, plain text, and Markdown content from URLs.
Is fetch-mcp suitable for real-time web data integration?
Absolutely, fetch-mcp is designed to provide live web content to AI models for enhanced context and decision-making.
How does fetch-mcp return JSON data?
The fetch_json tool fetches the URL and returns the parsed JSON content directly to the client.
Can fetch-mcp be used with multiple LLM providers?
Yes, it is compatible with models from OpenAI, Anthropic Claude, and Google Gemini, enabling flexible AI integrations.
What happens if the fetched URL is unreachable?
The server will return an error response indicating the failure to fetch the requested content.
Does fetch-mcp support Markdown content fetching?
While primarily supporting HTML, JSON, and plain text, Markdown content can be fetched as plain text if available at the URL.