fetch-html-to-md

fetch-html-to-md

MCP server that fetches remote or local HTML resources and converts them to Markdown, enabling AI clients to summarize or process web content.

Category
Visit Server

README

<div align="center">

<h1>fetch-html-to-md</h1>

Convert remote or local HTML resources to Markdown via CLI or Node.js API.

NodeJS Version NPM License

English | įŽ€äŊ“中文

Preview in Terminal

</div>

📖 Introduction

fetch-html-to-md is a lightweight, high-performance Node.js solution designed to bridge the gap between web content and structured Markdown. Built with flexibility in mind, it operates seamlessly both as a developer-friendly SDK and as an intuitive command-line utility.

Quick Start

npx @kabeep/fetch-html-to-md@latest https://example.com

MCP Server

npx @kabeep/fetch-html-to-md@latest mcp

đŸ“Ļ Installation

As Node.js API

npm install @kabeep/fetch-html-to-md

As CLI

npm install --global @kabeep/fetch-html-to-md

âš™ī¸ Usage

ESModule

import fetchHtml2md, {
    html2md,
    type Html2MdOptions
} from '@kabeep/fetch-html-to-md';

// 1. Facade Function: Automatically converts local file path or remote URL
const markdown = await fetchHtml2md('https://example.com', {
    // ...Html2MdOptions
});

// 2. Built-in html-to-md
const rawMarkdown = html2md('<h1>Hello World</h1>');

CommonJS

const fetchHtml2md = require('@kabeep/fetch-html-to-md');
const { html2md } = require('@kabeep/fetch-html-to-md');

async function main() {
    // 1. Facade Function
    const markdown = await fetchHtml2md('./index.html');
    console.log(markdown);

    // 2. Built-in html-to-md
    const rawMarkdown = html2md('<h1>Hello World</h1>');
}

CLI

Convert a local file

fetch-html-to-md ./docs/index.html

Convert a remote URL

fetch-html-to-md https://example.com

Pass a raw HTML string to convert

fetch-html-to-md --raw "<strong><em>strong and italic</em></strong>"

Read from stdin

echo https://example.com | fetch-html-to-md

Use Options

fetch-html-to-md ./index.html --skip-tags div section --alias-tags "figure=p"

🔩 CLI Options

Input Options

Note: Input flags are mutually exclusive. Only one input source can be provided per execution.

Option Short Type Description
[uri] - string Positional argument. Path to a local HTML file or a remote URL.
--url - string Specify an HTML page URL.
--filepath -f string Specify a local HTML file path.
--raw - boolean Pass a raw HTML string directly instead of [uri] for conversion.

Configuration Options

See more: https://github.com/stonehank/html-to-md/blob/HEAD/README-EN.md#configoptional

Option Type Default Description
--skip-tags array (native) Tags to skip rendering while keeping their inner content intact. (space-separated list)
--empty-tags array [] Tags to skip along with all content inside them.
--ignore-tags array (native) Tags to completely ignore (both tag and content).
--alias-tags array - Rename HTML tags using key=value pairs. <br>(e.g., --alias-tags figure=p dd=p)
--render-custom-tags enum 'true' Rule for non-standard HTML tags. <br>Choices: 'true', 'false', 'SKIP', 'EMPTY', 'IGNORE'
--force boolean false Force custom configurations to overwrite native defaults.

General Options

Option Short Description
--help -h Display help menu and command options.
--version -v Display package version.

🔌 MCP Server

The fetch-html-to-md CLI natively supports the Model Context Protocol (MCP). This enables AI clients such as Claude Desktop, Cursor, and Windsurf to seamlessly invoke it as a background tool for web scraping and local HTML conversion.

1. Client Setup

Add the following snippet to your client configuration file (e.g., claude_desktop_config.json or .cursor/mcp.json):

{
    "mcpServers": {
        "fetch-html-to-md": {
            "command": "npx",
            "args": [
                "-y",
                "@kabeep/fetch-html-to-md",
                "mcp"
            ]
        }
    }
}

2. Tool Schema

The MCP server exposes a default tool named fetch_html_to_md with the following parameters:

Parameter Type Required Description
uri string Yes Target webpage URL (http:// or https://) or local HTML file path

đŸ’Ŧ Example Prompt

Once configured, you can simply ask your AI assistant:

"Fetch https://example.com using fetch_html_to_md and summarize the key takeaways."

💐 Credits

  • html-to-md - A JS library for convert HTML<String> to markdown<String>, gzip 10kb.

🤝 Contribution

Contributions via Pull Requests or Issues are welcome.

📄 License

This project is licensed under the MIT License. See the LICENSE file for details.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured