Back to Directory/Documentation

Web2MD

Turn any web page into clean Markdown, text or token-bounded RAG chunks (via RapidAPI).

DocumentationTypeScriptv0.1.0

Web2MD MCP server

An MCP server that turns any web page into clean Markdown, plain text or token-bounded RAG chunks, using the Web2MD API on RapidAPI.

npm CI

What it does

  • read_url: fetch a web page and return its main content as Markdown or plain text, without nav, ads or boilerplate.
  • chunk_url: fetch a web page and split it into heading-aware chunks sized in tokens, for RAG and embeddings.
  • convert_html: convert raw HTML you already have into Markdown or plain text.
  • page_metadata: get a page's title, author, published date, description and similar fields without the full content.

Setup in 3 steps

  1. Subscribe to Web2MD on RapidAPI. The BASIC plan is free and includes 500 requests per month.
  2. Copy your X-RapidAPI-Key from the Endpoints tab of the listing.
  3. Add the server to your client.

Requires Node.js 22 or newer.

Claude Code:

claude mcp add web2md -e RAPIDAPI_KEY=your-key -- npx -y web2md-rag-mcp

Claude Desktop (claude_desktop_config.json) and Cursor (~/.cursor/mcp.json) use the same JSON:

{
  "mcpServers": {
    "web2md": {
      "command": "npx",
      "args": ["-y", "web2md-rag-mcp"],
      "env": { "RAPIDAPI_KEY": "your-key" }
    }
  }
}

Windsurf: put the same block in ~/.codeium/windsurf/mcp_config.json.

Tools

ToolWhat it doesArgumentsReturns
read_urlFetch a page as clean Markdown or texturl (up to 2048 chars); format: markdown, text or json; include_links, include_images, include_tablesTitle, token count and the content; format: "json" returns the full JSON document
chunk_urlSplit a page into RAG chunksurl; max_tokens 64-8192 (default 512); overlap_tokens 0-1024 (default 50); include_links, include_images, include_tablesJSON with total_tokens and chunks, each with its heading path and token count
convert_htmlConvert raw HTMLhtml (up to 5,000,000 chars); optional url to resolve relative links; format; include_links, include_images, include_tablesSame as read_url
page_metadataGet page metadataurlJSON with title, author, date, description, site name, language, canonical URL, image, word count, reading time

Limits and plans

PlanPriceRequests per month
BASIC$0500
PRO$910,000
ULTRA$2960,000
MEGA$79250,000
  • RapidAPI rate limit: 1,000 requests per hour.
  • Pages up to 5 MB.
  • robots.txt is respected.
  • JavaScript-heavy pages may return no_content. Rendering support is planned.

Errors

Tool errors look like Web2MD error [code]: message. Input-validation failures (a bad URL, out-of-range numbers) come from the MCP SDK as MCP error -32602: Input validation error ... instead.

CodeMeaning
missing_keyRAPIDAPI_KEY is not set
invalid_keyRAPIDAPI_KEY contains characters not allowed in an HTTP header, often a pasted newline
rapidapi_authRapidAPI rejected the key, or you are not subscribed
rapidapi_quotaYour plan's quota or rate limit is used up
invalid_requestThe request failed validation (HTTP 422)
invalid_url400: not http/https, has credentials, no host, bad port, or longer than 2048 chars
blocked_destination400: host resolves to a private, loopback, link-local or metadata address; port not 80/443; localhost/.local/.internal. Applies to every redirect
dns_error400: the host does not resolve
robots_disallowed403: the site's robots.txt disallows the web2md user agent for that path
page_too_large413: page larger than 5 MB
unsupported_content_type415: not HTML
no_content422: fewer than 10 words of main content, often a JavaScript-only page
host_rate_limited429: per-target-site limit that protects the sites fetched. It is not your quota
target_blocked502: the site answered 401/403/429/503, often a bot wall
target_error502: the site answered another 4xx/5xx
fetch_failed502: could not connect, or TLS failed
too_many_redirects502: more than 5 redirects
fetch_timeout504: the fetch took more than 15 s
timeoutThe Web2MD request timed out
network_errorThe request could not reach the API
bad_responseThe API returned a non-JSON success response
http_<status>Any other HTTP failure, with a short snippet of the response
internal_errorAn unexpected error inside the MCP server

Privacy

Your key is sent only to the RapidAPI gateway (web2md-webpage-to-markdown-rag-chunks.p.rapidapi.com) and is never logged.

Development

npm ci
npm test
npm run lint
npm run build
RAPIDAPI_KEY=your-key npm run smoke

Licence

MIT

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y web2md-rag-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-kanavsingla28-web2md-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "web2md-rag-mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

web2md-rag-mcpnpm

Compatible MCP Clients

Web2MD works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More