Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Rendex: Rendering API for Images, PDFs & Content Extraction

by copperline-labsversion 1.8.2i★ –iComputer or cloud
Registry nameio.github.copperline-labs/rendex-mcp

Install

Overview

Description from the maker (original English)

Render HTML, Markdown, or URLs to images, PDF, or branded artifacts; extract and watch pages.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Computer or cloud
  • Transport: stdio, Streamable HTTP
  • Category: Design, images & audio
  • You need to fill in: RENDEX_API_KEY, Authorization

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on the maker’s server: what you ask it goes through their server.
  • You fill in yourself: RENDEX_API_KEY, Authorization

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • Runs in the cloudNothing to install; it connects over the internet
  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.

Or run it on your computer

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "rendex": {
      "command": "npx",
      "args": [
        "-y",
        "@copperline/rendex-mcp"
      ],
      "env": {
        "RENDEX_API_KEY": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add --transport http rendex https://mcp.rendex.dev/mcp --header 'Authorization: your-value'

Or run it on your computer

claude mcp add rendex --env RENDEX_API_KEY=your-value -- npx -y @copperline/rendex-mcp

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "rendex": {
      "url": "https://mcp.rendex.dev/mcp",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

Or run it on your computer

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "rendex": {
      "command": "npx",
      "args": [
        "-y",
        "@copperline/rendex-mcp"
      ],
      "env": {
        "RENDEX_API_KEY": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "rendex": {
      "type": "http",
      "url": "https://mcp.rendex.dev/mcp",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

Or run it on your computer

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "rendex": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@copperline/rendex-mcp"
      ],
      "env": {
        "RENDEX_API_KEY": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • RENDEX_API_KEY secret required env
    API key from rendex.dev dashboard
  • Authorization secret HTTP header
    Optional: a static 'Bearer rdx_ ' from the rendex.dev dashboard. Zero-config clients (Claude, ChatGPT) can instead use the built-in OAuth 2.1 (auth-code + PKCE) flow — no header needed.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

We have not read this server’s tool list yet; we check endpoints in rotation.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account copperline-labs, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • … Not checked yet

    Endpoint responds

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    Sign-in with OAuth

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    No hidden instructions in tool descriptions

    Not checked yet; we read the tool list when we check the endpoint

Compared with others in Design, images & audioi

  • More stars than 0% of the other 2759 servers in this category
  • Published to the registry more recently than 17% of the other 2759 servers in this category
  • Basic checks equal to or better than 100% of the other 2759 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Rendex: Rendering API for Images, PDFs & Content Extraction safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: RENDEX_API_KEY, Authorization

Does it run on my computer or in the cloud?

Either way works: install it on your computer or connect to the cloud version.

Is it still maintained?

The GitHub repo last changed –, and the latest version (1.8.2) reached the registry 4 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.

What can I use instead?

In the same category: Figma Context MCP, Claude Real Video, Figma MCP Server

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.

Runs on your computer★ 16,165MITUpdated 5 months ago
Install

Claude Real Video

by HUANGCHIHHUNGLeo

Let any LLM watch a video locally — and search everything it has ever watched.

Runs on your computer★ 2,284MITUpdated 2 months ago
Install

Figma’s official server gives AI your design data so it can turn designs into code or describe them accurately. Connects to Figma’s cloud.

Runs in the cloud★ 2,152Updated 13 months ago
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

@copperline/rendex-mcp

MCP server for Rendex — 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:

{

"mcpServers": { "rendex": { "command": "npx", "args": ["-y", "@copperline/rendex-mcp"], "env": { "RENDEX_API_KEY": "your-api-key" } } } }

Where to add this:

ClientConfig location
Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
Cursor.cursor/mcp.json in project root, or Settings > MCP
WindsurfSettings > 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, OAuth or API key)

Connect to the hosted server at https://mcp.rendex.dev/mcp — no install needed. It's fronted by OAuth 2.1 (authorization-code + PKCE S256), so OAuth-capable clients (ChatGPT, Claude, Cursor, the MCP Inspector) connect with no API key — you sign in with a one-time email code and each caller bills against their own Rendex plan and credit pool.

Clients that prefer a static key can still pass one directly:

{

"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:

ParameterTypeDefaultDescription
urlstringrequired*Webpage URL to capture. Mutually exclusive with html and markdown.
htmlstring—Raw HTML to render. Mutually exclusive with url and markdown.
markdownstring—Markdown to render (server converts to HTML). Mutually exclusive with url and html.
dataobject—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
fullPagebooleanfalseCapture full scrollable page
darkModebooleanfalseEmulate dark color scheme
widthnumber1280Viewport width (320-3840)
heightnumber800Viewport height (240-2160)
resizeWidthnumber—Downscale output to this width in px (aspect ratio preserved if resizeHeight omitted). Ignored for PDF
resizeHeightnumber—Downscale output to this height in px (aspect ratio preserved if resizeWidth omitted). Ignored for PDF
qualitynumber80Image quality 1-100 (JPEG/WebP only, default 80)
delaynumber0Wait ms before capture
blockAdsbooleantrueBlock ads and trackers
blockCookieBannersboolean—Hide common cookie/consent banners (GDPR/CCPA) before capture
blockResourceTypesstring[]—Block resource types: font, image, media, stylesheet, other
devicestring—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
deviceScaleFactornumber2Device pixel ratio (1-3). 2× Retina by default
timeoutnumber30Max seconds to wait for page load (5-60)
waitUntilstring"networkidle2"Page readiness: load, domcontentloaded, networkidle0, networkidle2
waitForSelectorstring—CSS selector to wait for before capture
bestAttemptbooleantrueReturn partial render on timeout instead of failing
selectorstring—CSS selector of element to capture instead of full page
hideSelectorsstring[]—CSS selectors to hide (display:none) before capture, e.g. ['.modal', '#newsletter-popup']. Max 50
cssstring—Custom CSS to inject before capture (max 50KB)
jsstring—Custom JavaScript to execute before capture (max 50KB)
cookiesarray—Cookies to set for authenticated captures (max 50)
headersobject—Custom HTTP headers for the page request
userAgentstring—Override browser user agent string
pdfFormatstring—PDF page size: A4, Letter, Legal, Tabloid, A3
pdfLandscapeboolean—PDF landscape orientation
pdfPrintBackgroundbooleantruePrint background in PDF
pdfScalenumber1PDF scale factor (0.1-2)
pdfMarginobject—PDF margins: {top, right, bottom, left} as CSS values
geostring—ISO country code for geo-targeted capture (Pro/Enterprise)
geoCitystring—City for geo-targeting (requires geo)
geoStatestring—State for geo-targeting (requires geo)
asyncboolean—Process asynchronously (returns job ID)
webhookUrlstring—URL to receive callback when async capture completes (Starter+; Free/Basic poll job status)
cacheTtlnumber—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:

ParameterTypeDefaultDescription
urlstringrequiredWebpage 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)
devicestring—Device preset (desktop, iphone_15, iphone_se, pixel_8, ipad, ipad_pro) — extract the mobile/tablet version of a page
blockAdsbooleantrueBlock ads and trackers before extraction
blockCookieBannersboolean—Hide common cookie/consent walls before extraction
hideSelectorsstring[]—CSS selectors to hide before extraction, e.g. ['.modal', '#newsletter-popup']. Max 50
waitUntilstring"networkidle2"Page readiness: load, domcontentloaded, networkidle0, networkidle2
timeoutnumber30Max seconds to wait for page load (5-60)
rendex_render_link

Render a URL, raw HTML, or Markdown and get back a signed, hosted, edge-cached image URL instead of the bytes — ideal for dynamic OG images. Drop the URL into or an tag and Rendex serves a cached copy on every share. Takes the same parameters as `rendex_screenshot`, plus an optional expiresIn. Returns { url, expiresAt, format, cacheTtl }.

"Make me a hosted OG-image URL for this Markdown release note"

"Give me a render link for this HTML card that I can drop into og:image"

ParameterTypeDefaultDescription
*(all rendex_screenshot params)*——Same source (url/html/markdown), format, sizing, and templating options
expiresInnumberserver TTLSeconds until the signed URL expires (60–2592000)
render_artifact

Turn Markdown or HTML into a branded, downloadable artifact — a PDF, a PNG, and a hosted share page — in one call. Ideal for agent outputs: reports, invoices, summaries, release notes, dashboards. Apply a logo, accent color, font, header, and footer; choose PDF page size/orientation/margins. Returns hosted URLs { pdfUrl, pngUrl, shareUrl, expiresAt } — no storage needed on your side. Each requested format costs 1 render credit.

"Turn this Markdown report into a branded PDF and PNG with our logo and an orange accent"

"Render this invoice HTML to a PDF and give me a share link that expires in a week"

ParameterTypeDefaultDescription
contentstringrequiredThe Markdown or HTML body to render (up to ~4MB)
inputFormat"markdown" \"html""markdown"How to interpret content — markdown is converted to styled HTML; html is used as a body fragment
formats`("pdf" \"png")[]`["pdf","png"]Which formats to produce. Each costs 1 credit
accentColorstring—CSS accent color for the bar, links, and headings (e.g. #EA580C)
logostring—http(s) URL of a logo image shown in the header
headerstring—plain-text header line shown beside the logo
footerstring—plain-text footer line shown at the bottom
fontstring—CSS font-family stack for the body
pageSetupobject—{ size, orientation, margin{top,right,bottom,left}, scale, width, height, fullPage }
dataobject—Mustache data — when set, content is rendered as a logic-less Mustache template (plus {{logo}}/{{header}}/… from branding) before conversion
expiresInnumber86400Seconds until the hosted URLs expire (3600–2592000). Default 24h
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. Eight tools let an agent set up, inspect, edit, 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 — did anything change?"

ToolPurposeKey inputs
watch_createCreate a watch (active → captures its baseline now)url, name?, intervalMinutes?, diffMode? (visual/text/both), threshold?, renderParams?, webhookUrl? (Starter+), notifyEmail?, paused?
watch_testDry-run a config first (creates nothing)same as watch_create
watch_listList your watchesstatus? (active/paused/all), cursor?, limit?
watch_getFetch one watch (+ baseline URL)id
watch_runRun a check now (1 credit)id
watch_runsRun history with signed before/after/overlay URLsid, cursor?, limit?
watch_updateEdit a watch in place — interval, diff mode, channels, render paramsid, plus any watch_create field; webhookUrl/notifyEmail accept null to clear a channel

| watch_delete | Delete a watc

Only the beginning is shown; read the rest in the repo

Ask PopNx