# Page2AI — Web to Markdown [Health: Active]

**Category:** 🔎 Search & Data Extraction  
**Repository:** https://github.com/igorsaevets/page2ai-mcp  
**GitHub Stars:** 0  
**npm Downloads (last month):** 2873  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/page2ai-web-to-markdown

## Description
Convert web pages or HTML to clean Markdown for LLM context. Local, no external API calls.

## Tools
Capabilities this server exposes over MCP:

- **page_to_markdown** — Fetch a web page URL and convert it to clean Markdown optimized for LLM context. Preserves headings, code blocks (with language hints), links, and tables; keeps the main content and drops navigation, headers, footers, and sidebars. It fetches without cookies and runs no page scripts, so a page behind a sign-in or one rendered only by JavaScript comes back as its login page or with no content. For those, pass the page HTML you already have from a browser tool as `html` (with its `url`, relative links resolve and nothing is fetched), or ask the user to turn on Agent Bridge in the Page2AI browser extension 1.6.0 or later (if its popup has no Agent Bridge switch, that install is an older store version and the extension must be updated first): while it is connected, `url` pages open in the user's own browser with its cookies and scripts, and a page the extension declines is fetched by the server, with a note saying why. It requests only the URL given, as a browser opens a page, so docs sites return the page itself, not a Markdown copy of it; a URL that names a Markdown or text file (a raw GitHub README.md, an llms.txt) comes back as written. A long page comes back in parts (`max_length`, `start_index`), the first part listing the page's sections, and a page the server cannot read comes back with the next step to take. Discovers tab groups statically and emits each panel as a `### Tab: {label}` section instead of concatenating (prevents Python+TypeScript examples merging into one broken block). Zero external API calls: pages are parsed locally (linkedom) or in the user's browser.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "page2ai-web-to-markdown": {
    "command": "npx",
    "args": ["-y","page2ai-mcp"]
  }
}
```

## Documentation

## What Page2AI — Web to Markdown does

Page2AI — Web to Markdown converts web content into Markdown that an MCP client can pass to an LLM. The server accepts either a URL to fetch or HTML supplied directly by the caller. Conversion is performed locally with the Page2AI core package, and the server does not require an account, API key, or telemetry service.

The output is intended for tasks such as reading documentation, extracting structured page content, and giving an agent a cleaner representation than raw HTML. Code blocks retain language hints, tables are preserved, and the document's reading structure is carried into the result.

## How it works

Run the server as a stdio process with `npx -y page2ai-mcp`, then register that command in an MCP client. The client calls `page_to_markdown` with a URL, or with `html` and its corresponding `url`. When HTML is supplied, the server converts that content instead of fetching the URL; the URL provides the base for resolving relative links and is recorded in the result's provenance.

A hosted Streamable HTTP endpoint is also available at `https://page2ai-mcp-remote.vercel.app/api/mcp`. It uses the same tool and is rate-limited per IP, but URLs sent there are fetched from the author's hosted infrastructure rather than from the local machine.

## Setup and configuration

Node.js 20 or newer is required for the local installation. Add the stdio command to a compatible MCP client, or install the downloadable MCP bundle in Claude Desktop. Configuration examples are available for Claude Code, Cursor, VS Code with GitHub Copilot, Codex CLI, Gemini CLI, Windsurf, Zed, Cline, Continue, JetBrains AI Assistant, and LM Studio.

The optional Agent Bridge connects the server to the Page2AI browser extension for pages that need browser cookies or JavaScript. Enable Agent Bridge in the extension, copy its key, and provide that value as `PAGE2AI_BRIDGE_KEY` to the MCP server. Restart the MCP client after changing the key. Multiple browser keys can be separated by commas.

## Tools and capabilities

- `page_to_markdown`: fetch a web page by URL or convert caller-supplied HTML into clean Markdown.
- Preserves code blocks with language information, tables, and reading structure.
- Supports optional image and frontmatter handling, including through the browser bridge.
- Resolves relative links against the supplied page URL when converting provided HTML.
- Returns provenance information when HTML was supplied instead of fetched.

## Limitations and notes

Normal server fetches do not send cookies and do not execute page scripts, so authenticated or JavaScript-rendered pages may not produce their complete content. Supplying HTML from Playwright, browser developer tools, or another browser tool avoids a second fetch. The Agent Bridge can instead open eligible HTTP(S) pages in a connected browser tab, but sign-in provider pages and refused URLs fall back to the server fetch behavior.

Local execution keeps URL fetching on the user's machine. The hosted endpoint changes that privacy boundary because its infrastructure performs the fetch. The browser bridge listens on `ws://127.0.0.1:3025`; only a client with the configured key can use it, and anyone who can read the MCP configuration or browser profile can read that key.

_Full upstream README: https://allmcps.com/mcp/page2ai-web-to-markdown/readme_

