MCP server for Rendex — capture screenshots, generate PDFs, and render HTML to images of any webpage via AI agents. Claude, Cursor, Windsurf compatible.
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
git clone https://github.com/copperline-labs/rendex-mcp{
"mcpServers": {
"rendex-mcp": {
"command": "node",
"args": ["/path/to/rendex-mcp/dist/index.js"]
}
}
}Resumen de MCP Servers
# @copperline/rendex-mcp
[](https://www.npmjs.com/package/@copperline/rendex-mcp)
[](https://www.npmjs.com/package/@copperline/rendex-mcp)
[](https://opensource.org/licenses/MIT)
[](https://lobehub.com/mcp/copperline-labs-rendex-mcp)
MCP server for [Rendex](https://rendex.dev) — render raw HTML, Markdown, or any URL to an image or PDF via AI agents using the Model Context Protocol.
## Quick Start
### Claude Desktop / Cursor / Windsurf (npx)
Add to your MCP client config:
```json
{
"mcpServers": {
"rendex": {
"command": "npx",
"args": ["-y", "@copperline/rendex-mcp"],
"env": {
"RENDEX_API_KEY": "your-api-key"
}
}
}
}
```
**Where to add this:**
| Client | Config location |
|--------|----------------|
| Claude Desktop | `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) |
| Cursor | `.cursor/mcp.json` in project root, or Settings > MCP |
| Windsurf | Settings > MCP Servers |
### Claude Code (CLI)
Add a `.mcp.json` to your project root with the same config above. Then restart Claude Code.
> **Important**: Add `.mcp.json` to your `.gitignore` — it contains your API key.
### Remote (zero-install)
Connect directly — no installation needed (Claude Desktop only):
```json
{
"mcpServers": {
"rendex": {
"url": "https://mcp.rendex.dev/mcp",
"headers": {
"Authorization": "Bearer your-api-key"
}
}
}
}
```
## Tools
### `rendex_screenshot`
Render any webpage, raw HTML, or Markdown to an image or PDF.
```
"Take a screenshot of https://example.com"
"Capture the full page of https://news.ycombinator.com in dark mode"
"Generate a PDF of https://github.com with A4 page size"
"Capture https://amazon.de as seen from Germany"
"Render this HTML invoice as a PDF"
"Render this Markdown release note as a PDF"
```
**Parameters:**
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `url` | string | required* | Webpage URL to capture. Mutually exclusive with `html` and `markdown`. |
| `html` | string | — | Raw HTML to render. Mutually exclusive with `url` and `markdown`. |
| `markdown` | string | — | Markdown to render (server converts to HTML). Mutually exclusive with `url` and `html`. |
| `data` | object | — | Key-value data for Mustache templating. When set, the `html` or `markdown` string is rendered as a logic-less Mustache template before capture. Invalid with `url`. |
| `format` | `"png"` \| `"jpeg"` \| `"webp"` \| `"pdf"` | `"png"` | Output format |
| `fullPage` | boolean | `false` | Capture full scrollable page |
| `darkMode` | boolean | `false` | Emulate dark color scheme |
| `width` | number | `1280` | Viewport width (320-3840) |
| `height` | number | `800` | Viewport height (240-2160) |
| `resizeWidth` | number | — | Downscale output to this width in px (aspect ratio preserved if `resizeHeight` omitted). Ignored for PDF |
| `resizeHeight` | number | — | Downscale output to this height in px (aspect ratio preserved if `resizeWidth` omitted). Ignored for PDF |
| `quality` | number | `80` | Image quality 1-100 (JPEG/WebP only, default 80) |
| `delay` | number | `0` | Wait ms before capture |
| `blockAds` | boolean | `true` | Block ads and trackers |
| `blockCookieBanners` | boolean | — | Hide common cookie/consent banners (GDPR/CCPA) before capture |
| `blockResourceTypes` | string[] | — | Block resource types: `font`, `image`, `media`, `stylesheet`, `other` |
| `device` | string | — | Device preset: `desktop`, `iphone_15`, `iphone_se`, `pixel_8`, `ipad`, `ipad_pro` — sets viewport, scale, and user agent in one shot. Overrides `width`/`height`/`deviceScaleFactor`/`userAgent` |
| `deviceScaleFactor` | number | `2` | Device pixel ratio (1-3). 2× Retina by default |
| `timeout` | number | `30` | Max seconds to wait for page load (5-60) |
| `waitUntil` | string | `"networkidle2"` | Page readiness: `load`, `domcontentloaded`, `networkidle0`, `networkidle2` |
| `waitForSelector` | string | — | CSS selector to wait for before capture |
| `bestAttempt` | boolean | `true` | Return partial render on timeout instead of failing |
| `selector` | string | — | CSS selector of element to capture instead of full page |
| `hideSelectors` | string[] | — | CSS selectors to hide (`display:none`) before capture, e.g. `['.modal', '#newsletter-popup']`. Max 50 |
| `css` | string | — | Custom CSS to inject before capture (max 50KB) |
| `js` | string | — | Custom JavaScript to execute before capture (max 50KB) |
| `cookies` | array | — | Cookies to set for authenticated captures (max 50) |
| `headers` | object | — | Custom HTTP headers for the page request |
| `userAgent` | string | — | Override browser user agent string |
| `pdfFormat` | string | — | PDF page size: `A4`, `Letter`, `Legal`, `Tabloid`, `A3` |
| `pdfLandscape` | boolean | — | PDF landscape orientation |
| `pdfPrintBackground` | boolean | `true` | Print background in PDF |
| `pdfScale` | number | `1` | PDF scale factor (0.1-2) |
| `pdfMargin` | object | — | PDF margins: `{top, right, bottom, left}` as CSS values |
| `geo` | string | — | ISO country code for geo-targeted capture (Pro/Enterprise) |
| `geoCity` | string | — | City for geo-targeting (requires `geo`) |
| `geoState` | string | — | State for geo-targeting (requires `geo`) |
| `async` | boolean | — | Process asynchronously (returns job ID) |
| `webhookUrl` | string | — | URL to receive callback when async capture completes |
| `cacheTtl` | number | — | Seconds to cache result (3600-2592000) |
### `rendex_extract`
Extract clean reader-mode content from any webpage as Markdown, JSON, or HTML. Runs the same Chromium render pass as a screenshot, so it captures content **after JavaScript runs** — handling SPAs that fetch-only readers miss. Strips nav, ads, and boilerplate, returning the article body plus title, byline, and excerpt. Great for feeding page content to an LLM, summarization, or RAG ingestion.
```
"Extract the article text from https://example.com/post as Markdown"
"Pull the readable content from this SPA as JSON so I can summarize it"
```
**Parameters:**
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `url` | string | required | Webpage URL to extract readable content from |
| `extractFormat` | `"markdown"` \| `"json"` \| `"html"` | `"markdown"` | Output shape — `markdown` (LLM-friendly prose), `json` (structured: title/byline/excerpt/siteName/length), or `html` (cleaned reader-mode HTML) |
| `device` | string | — | Device preset (`desktop`, `iphone_15`, `iphone_se`, `pixel_8`, `ipad`, `ipad_pro`) — extract the mobile/tablet version of a page |
| `blockAds` | boolean | `true` | Block ads and trackers before extraction |
| `blockCookieBanners` | boolean | — | Hide common cookie/consent walls before extraction |
| `hideSelectors` | string[] | — | CSS selectors to hide before extraction, e.g. `['.modal', '#newsletter-popup']`. Max 50 |
| `waitUntil` | string | `"networkidle2"` | Page readiness: `load`, `domcontentloaded`, `networkidle0`, `networkidle2` |
| `timeout` | number | `30` | Max seconds to wait for page load (5-60) |
### Rendex Watch
Monitor a URL on a schedule and get notified when it changes — real-Chrome **visual diff** (with a highlighted overlay), an extracted-**text** diff, or **both**. Seven tools let an agent set up, inspect, and tear down watches on the shared Rendex platform (one `rdx_` key, one credit pool).
```
"Watch https://example.com/pricing for visual changes and alert my webhook"
"Before I save it, test whether you can capture #pricing on that page"
"Show me the last few runs of watch <id> — did anything change?"
```
| Tool | Purpose | Key inputs |
|------|---------|-----------|
| `watch_create` | Create a watch (active → captures its baseline now) | `url`, `name?`, `intervalMinutes?`, `diffMode?` (visual/text/both), `threshold?`, `renderParams?`, `webhookUrl?` (Starter+), `notifyEmail?`, `paused?` |
| `watch_test` | Dry-run a config first (creates nothing) | same as `watch_create` |
| `watch_list` | List your watches | `status?` (active/paused/all), `cursor?`, `limit?` |
| `watch_get` | Fetch one watch (+ baseline URL) | `id` |
| `watch_run` | Run a check now (1 credit) | `id` |
| `watch_runs` | Run history with signed before/after/overlay URLs | `id`, `cursor?`, `limit?` |
| `watch_delete` | Delete a watch + its runs | `id` |
`renderParams` carries the per-check capture knobs (`fullPage` defaults to **true**, `selector`, `device`, `geo` (Pro+), plus noise controls `ignoreRegions`/`ignoreText`/`minTextChars`/`suppressWhilePresent` and `uaMode`). Interval floors are per-plan (Free 1440 / Starter 180 / Pro 30 / Enterprise 5). Watch metadata + signed image URLs are returned as JSON text.
## Data templating
Turn one reusable template into many documents. Pass a `data` object alongside `html`
or `markdown`, and Rendex renders the string as a logic-less [Mustache](https://mustache.github.io/)
template before capture — `{{var}}` interpolation, `{{#items}}…{{/items}}` loops, and
nested `{{a.b}}` access. Great for invoices, reports, certificates, and OG cards.
```
"Render this HTML invoice template to a PDF, filling it with this data:
<h1>Invoice {{number}}</h1><p>Total: {{total}}</p>
data = { number: 'INV-014', total: '$2,400' }"
```
`data` is valid only with `html` or `markdown` — combining it with `url` returns a
validation error.
## Authentication
Get your API key at [rendex.dev](https://rendex.dev).
Set the `RENDEX_API_KEY` environment variable in your MCP client configuration.
## Pricing
| Plan | Calls/Month | Rate |
|------|------------|------|
| Free | 500 | 10/min |
| Starter | 10,000 | 60/min |
| Pro | 100,0Lo que la gente pregunta sobre rendex-mcp
¿Qué es copperline-labs/rendex-mcp?
+
copperline-labs/rendex-mcp es mcp servers para el ecosistema de Claude AI. MCP server for Rendex — capture screenshots, generate PDFs, and render HTML to images of any webpage via AI agents. Claude, Cursor, Windsurf compatible. Tiene 3 estrellas en GitHub y se actualizó por última vez today.
¿Cómo se instala rendex-mcp?
+
Puedes instalar rendex-mcp clonando el repositorio (https://github.com/copperline-labs/rendex-mcp) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar copperline-labs/rendex-mcp?
+
Nuestro agente de seguridad ha analizado copperline-labs/rendex-mcp y le ha asignado un Trust Score de 87/100 (tier: Trusted). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene copperline-labs/rendex-mcp?
+
copperline-labs/rendex-mcp es mantenido por copperline-labs. La última actividad registrada en GitHub es de today, con 0 issues abiertos.
¿Hay alternativas a rendex-mcp?
+
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.
Despliega rendex-mcp en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/copperline-labs-rendex-mcp)<a href="https://claudewave.com/repo/copperline-labs-rendex-mcp"><img src="https://claudewave.com/api/badge/copperline-labs-rendex-mcp" alt="Featured on ClaudeWave: copperline-labs/rendex-mcp" width="320" height="64" /></a>Más MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!
⭐AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts.🎯 告别信息过载,你的 AI 舆情监控助手与热点筛选工具!聚合多平台热点 + RSS 订阅,支持关键词精准筛选。AI 智能筛选新闻 + AI 翻译 + AI 分析简报直推手机,也支持接入 MCP 架构,赋能 AI 自然语言对话分析、情感洞察与趋势预测等。支持 Docker ,数据本地/云端自持。集成微信/飞书/钉钉/Telegram/邮件/ntfy/bark/slack 等渠道智能推送。