MCP HubMCP Hub
zcaceres

fetch-mcp

by: zcaceres

A flexible HTTP fetching Model Context Protocol server.

274created 18/12/2024
Visit
HTTP
Protocol

📌Overview

Purpose: To provide a robust server that fetches web content in various formats like HTML, JSON, plain text, and Markdown.

Overview: The Fetch MCP Server simplifies the retrieval and transformation of online web content, enabling users to obtain data in their preferred format easily and effectively. With an emphasis on modern API usage, it caters to diverse content needs from developers.

Key Features:

  • Fetch HTML: Retrieves a webpage and returns its content in raw HTML format, allowing users to access the entire structure of the page.

  • Fetch JSON: Obtains JSON files from specified URLs, ensuring that users can work directly with structured data for applications or services.

  • Fetch Plain Text: Strips away all HTML tags, scripts, and styles to return clean text content, beneficial for text analysis or readability.

  • Fetch Markdown: Converts webpage content into Markdown format, making it easy for users to integrate web content into markdown-compatible platforms.


Fetch MCP Server

This MCP server fetches web content in various formats, including HTML, JSON, plain text, and Markdown.

Components

Tools

  • fetch_html

    • Description: 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: Raw HTML content
  • fetch_json

    • Description: 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: Parsed JSON content
  • fetch_txt

    • Description: Fetch a website and return the content as plain text
    • Input:
      • url (string, required): URL of the website to fetch
      • headers (object, optional): Custom headers to include in the request
    • Returns: Text content with HTML tags, scripts, and styles removed
  • fetch_markdown

    • Description: 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: Content converted to Markdown format

Getting Started

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

Usage

To run the server:

npm start

Usage with Desktop App

To integrate 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

Licensed under the MIT License.