org.web2md/web2md

Registre officiel Productivité

MCP Server for Web2MD — convert URLs to Markdown from Claude Desktop, Cursor, etc.

Que pouvez-vous faire avec org.web2md/web2md ?

  • Finds the actual article. Strips navigation, sidebars, ads, cookie banners,
  • Preserves structure. Headings, lists, tables, and fenced code blocks survive
  • Reports tokens. Estimated counts for both the original HTML and the cleaned
  • Runs anywhere. Uses linkedom

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

NPM package web2md-mcp-server
Claude Code
claude mcp add web2md -e 'WEB2MD_API_KEY=<your web2md_api_key>' -- npx -y web2md-mcp-server@0.12.2
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "web2md": {
            "command": "npx",
            "args": [
                "-y",
                "web2md-mcp-server@0.12.2"
            ],
            "env": {
                "WEB2MD_API_KEY": "<your web2md_api_key>"
            }
        }
    }
}

Variables d'environnement

  • WEB2MD_API_KEY secret Web2MD API key (w2m_...). Get one at https://web2md.org/dashboard, or run npx web2md-cli login instead.

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. web2md-core
  2. Why convert at all
  3. What it does
  4. API
  5. Site-specific extraction
  6. Scope
  7. License

web2md-core

Turn messy HTML into clean, LLM-ready Markdown.

This is the extraction and conversion engine behind Web2MD. It is a pure library — give it an HTML string, get Markdown back. No network calls, no API key, no account. Nothing in this package talks to a server.

npm install web2md-core

Why convert at all

Feeding raw HTML to a language model wastes most of your context window on markup, navigation, and ads. Converting first cuts that down and gives the model a document it can actually follow.

The library reports both numbers so you can see the difference:

import { convertToMarkdown } from 'web2md-core'

const result = convertToMarkdown(html, { url: 'https://example.com/post' })

console.log(result.markdown)
console.log(result.metadata.originalTokenCount, '→', result.metadata.tokenCount)
// e.g. 417 → 281

convertToMarkdown returns null when it cannot find a main content block — check for that rather than assuming a result.

What it does

  • Finds the actual article. Strips navigation, sidebars, ads, cookie banners, and footers, keeping the content a reader came for.
  • Preserves structure. Headings, lists, tables, and fenced code blocks survive the round trip — that structure is what lets a model answer questions about one specific section.
  • Reports tokens. Estimated counts for both the original HTML and the cleaned Markdown, plus helpers to split or trim for a target context window.
  • Runs anywhere. Uses linkedom for parsing, so it works in Node without a browser.

API

convertToMarkdown(html, options?)

The main entry point. Note the signature takes two arguments — the URL goes inside options, not as a positional parameter:

convertToMarkdown(html, { url: 'https://example.com/post' })
OptionDefaultMeaning
url—Source URL. Used to resolve relative links and fill metadata.url.
includeLinksfalseKeep <a> as Markdown links. Off by default because link URLs are often the bulk of the tokens on navigation-heavy pages.
includeImagesfalseKeep images. Off by default for the same reason.
includeMetafalsePrepend a metadata block (title, source, timestamp).
customRule—A CustomRule for site-specific extraction.
detectCodeLanguagefalseTry to infer the language of fenced code blocks.

includeLinks and includeImages default to off. That is deliberate — the primary use case is feeding an LLM, where both are usually noise. Turn them on when you are archiving rather than summarising.

Other exports
quickConvert(html, url?)        // same result, but with links, images and
                                // metadata turned ON — the "archive it" preset
extractContent(html, url?)      // main content element, before conversion
htmlToMarkdown(html, options?)  // low-level conversion, no extraction
countTokens(text)               // token estimate
splitByTokens(md, limit)        // chunk for RAG ingestion
optimizeForContextWindow(md, model)
htmlLooksLikeLoginWall(html)    // detect login walls so you can fail loudly
MODEL_CONTEXT_LIMITS            // context sizes for common models

Markdown → sanitized HTML (via DOMPurify), for previewing output:

renderMarkdownSync(md)
renderMarkdownFull(md)          // async; includes syntax highlighting
renderMarkdownWithFormulas(md)  // KaTeX math

getPageHTML() and getSelectionHTML() read document directly and therefore only work in a browser. They throw in Node — that boundary is intentional.

Site-specific extraction

Generic extraction handles most pages. When a site needs special treatment, pass a rule:

convertToMarkdown(html, {
  url: 'https://example.com/thread',
  customRule: {
    name: 'Example forum',
    domain: 'example.com',
    contentSelector: '.thread-body',
    removeSelectors: ['.signature', '.ad-slot'],
  },
})

Scope

This package covers extraction and conversion. It does not include Web2MD's browser extension, hosted API, or account system — those stay in the product.

Contributions to extraction quality are especially welcome: if a site converts badly, an issue with the URL and what went wrong is genuinely useful.

License

MIT

Questions fréquentes

Qu'est-ce que org.web2md/web2md ?

MCP Server for Web2MD — convert URLs to Markdown from Claude Desktop, Cursor, etc.

Comment installer org.web2md/web2md ?

Il s'exécute sur votre machine. Dans Claude Code : claude mcp add web2md -e 'WEB2MD_API_KEY=<your web2md_api_key>' -- npx -y web2md-mcp-server@0.12.2. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour org.web2md/web2md ?

Oui. Il attend WEB2MD_API_KEY, à renseigner dans sa configuration.

org.web2md/web2md est-il open source ?

Oui. Son code est sur GitHub sous licence MIT.

Qui maintient org.web2md/web2md ?

Il est publié par io-oi-ai. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.