Mercury Parser
About
Mercury Parser fetches web pages with a headless Chromium (via Playwright) to capture JavaScript-rendered content, then uses the Mercury Parser to extract the article and returns it as Markdown. It follows pagination links automatically. Designed for AI agents like Claude to…
Details
- Author
- koichikawamura
- GitHub stars
- 2
- Downloads
- 462
- Categories
- Other
Jump to
- Automatically fetches web pages with headless Chromium for JS-rendered content
- Extracts articles as Markdown including title, author, date, summary, and content
- Follows pagination links automatically to capture full articles
- Falls back to direct fetch when Playwright fails, ensuring partial content
- Supports per-call proxy override and default proxy via environment variable
- Available over stdio or Streamable HTTP transport
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Mercury ParserCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
The server exposes a single tool called extract which takes a URL and optional proxy argument. It can be used via Claude Desktop (local stdio) by adding the configuration to claude_desktop_config.json, or run over Streamable HTTP for remote access. It can also be tested via CLI with node extractContent.js <url> [proxy].
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"mercury parser": {
"mercury-parser": {
"command": "npx",
"args": [
"@koichikawamura/mercury-parser",
"mercury-parser-mcp"
]
}
}
}
}
McpServers
{
"mercury-parser": {
"command": "npx",
"args": [
"@koichikawamura/mercury-parser",
"mercury-parser-mcp"
]
}
}
mercury-parser
An MCP wrapper around jocmp/mercury-parser (a maintained fork of Postlight Parser). Fetches a web page with a headless Chromium (Playwright) so JavaScript-rendered content is captured, then runs Mercury Parser to extract the article and returns it as Markdown. Follows pagination links automatically.
Tool
The server exposes a single tool:
extract
| Argument | Type | Required | Description |
|---|---|:-:|---|
| url | string | yes | URL of the page to extract |
| proxy | string | no | Proxy URL for the headless browser, e.g. http://host:port, socks5://host:port, http://user:pass@host:port. Overrides the MERCURY_PROXY env var for this call. |
Returns the article as Markdown (title, author, date, summary, content). On Playwright failure (HTTP/2 protocol errors, navigation timeouts, etc.) falls back to a direct fetch via Mercury Parser so partial content is still returned.
Environment variables
| Variable | Default | Description |
|---|---|---|
| MCP_TRANSPORT | stdio | stdio or http. Use http for remote/Streamable HTTP transport. |
| MCP_HOST | 127.0.0.1 | Bind address when MCP_TRANSPORT=http. |
| MCP_PORT | 3000 | Bind port when MCP_TRANSPORT=http. |
| MCP_PATH | /mcp | URL path when MCP_TRANSPORT=http. |
| MERCURY_PROXY | — | Default proxy for the headless browser. Overridden per-call by the proxy tool argument. |
Usage
Claude Desktop (local stdio)
Add to claude_desktop_config.json:
{
"mcpServers": {
"mercury-parser": {
"command": "npx",
"args": [
"@koichikawamura/mercury-parser",
"mercury-parser-mcp"
]
}
}
}
To route the headless browser through a proxy on every call:
{
"mcpServers": {
"mercury-parser": {
"command": "npx",
"args": [
"@koichikawamura/mercury-parser",
"mercury-parser-mcp"
],
"env": {
"MERCURY_PROXY": "socks5://localhost:1080"
}
}
}
}
Remote MCP (Streamable HTTP)
Run the server over HTTP — useful behind a reverse proxy / Cloudflare Tunnel:
MCP_TRANSPORT=http \
MCP_HOST=127.0.0.1 \
MCP_PORT=3030 \
MERCURY_PROXY=http://your-proxy:3128 \
npx @koichikawamura/mercury-parser mercury-parser-mcp
Clients reach it at http://<host>:<port>/mcp. Pair with mcp-remote on the client side, or register directly as a connector in Claude.ai / ChatGPT if the endpoint is gated by an OAuth-aware proxy (e.g. Cloudflare Access).
CLI (ad-hoc testing)
node extractContent.js <url> [proxy]
Requirements
- Node.js 18+
- Playwright Chromium (auto-installed on first launch if missing)
License
MIT — see LICENSE.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



