关于 Rendex
Rendex 是面向 Agent 的 MCP 服务,可捕获网页,并将 HTML 或 Markdown 渲染为图片和 PDF。它还可提取可读网页内容、生成托管渲染链接与品牌化文件,并监测网页变化。
主要功能
- 01捕获 URL、HTML 或 Markdown
- 02输出图片和 PDF
- 03提取可读网页内容
- 04生成托管渲染链接
- 05生成品牌化 PDF 和 PNG 文件
- 06监测视觉或文本变化
适用场景
- 01将网页捕获为 PDF
- 02提取 SPA 文章供摘要使用
- 03生成可分享的社交预览图片
- 04追踪价格页面变化
MCP 相关
向 MCP 客户端提供截图、内容提取、渲染、文件生成和监测工具。支持本地 stdio 配置和托管远程服务。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.rendex.dev/mcpclaude mcp add --transport http rendex https://mcp.rendex.dev/mcp{"mcpServers":{"rendex":{"type":"http","url":"https://mcp.rendex.dev/mcp"}}}在 Cursor 中打开{"servers":{"rendex":{"type":"http","url":"https://mcp.rendex.dev/mcp"}}}在 VS Code 中打开{"mcpServers":{"rendex":{"type":"http","url":"https://mcp.rendex.dev/mcp"}}}{"mcpServers":{"rendex":{"serverUrl":"https://mcp.rendex.dev/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://mcp.rendex.dev/mcp需要授权工具
13| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| js | string | 否 | 捕获前在页面中执行的自定义 JavaScript。在浏览器沙箱中运行。最大 50KB。 |
| css | string | 否 | 在页面中注入的自定义 CSS。可隐藏 Cookie 横幅、添加水印或覆盖样式。最大 50KB。 |
| geo | string | 否 | 用于地理定位捕获的 ISO 3166-1 alpha-2 国家/地区代码(例如 'US'、'DE'、'JP')。按从该国家/地区访问时的视图渲染页面。仅限 Pro/Enterprise。注意:地理定位时,CSS/JS 注入、Cookie、元素捕获、暗色模式及其他部分功能不可用。 |
| url | string | 否 | 要捕获的网页 URL(也接受不带 scheme 的主机名,如 'example.com')。不能与 'html' 和 'markdown' 同时使用。 |
| data | object | 否 | 用于 Mustache 模板的键值数据对象。提供后,捕获前会将 'html' 或 'markdown' 字符串渲染为无逻辑的 Mustache 模板 — {{var}} 插入经过 HTML 转义的内容,{{{var}}} 插入原始内容,{{#items}}...{{/items}} 遍历数组,{{a.b}} 访问嵌套字段。不能与 'url' 同时使用。序列化后最大为 256KB。 |
| html | string | 否 | 要渲染并捕获的原始 HTML。不能与 'url' 和 'markdown' 同时使用。适用于发票、社交卡片、电子邮件模板和 OG 图片。 |
| delay | integer | 否 | 页面加载后、捕获前等待的毫秒数(适用于 JS 渲染的内容) |
| width | integer | 否 | 视口宽度(像素,320-3840) |
| device | enum | 否 | 设备预设,一次性设置视口、缩放系数和 user agent。例如,使用 'iphone_15' 截取移动设备屏幕截图。会覆盖 width/height/deviceScaleFactor/userAgent。desktop | iphone_15 | iphone_se | pixel_8 | ipad | ipad_pro |
| format | enum | 否 | 输出格式 — png(无损)、jpeg(较小)、webp(最小)或 pdf(文档)。发票、报告和归档请使用 pdf。png | jpeg | webp | pdf |
| height | integer | 否 | 视口高度(像素,240-2160) |
| cookies | array | 否 | 捕获前要设置的 Cookie。适用于需要身份验证的页面。最多 50 个 Cookie。 |
| geoCity | string | 否 | 用于更精确地进行地理定位的城市(例如,'Berlin'、'New York')。需要 'geo'。 |
| headers | object | 否 | 随页面请求发送的自定义 HTTP 标头。不能覆盖 Host、Connection、Content-Length 或 Transfer-Encoding。 |
| quality | integer | 否 | 图像质量 1-100(仅适用于 JPEG/WebP,PNG/PDF 会忽略此项) |
| timeout | integer | 否 | 等待页面加载的最长时间(秒,5-60)。Cloudflare 的硬性上限为 60 秒。 |
| blockAds | boolean | 否 | 捕获前屏蔽广告和跟踪器 |
| darkMode | boolean | 否 | 模拟深色配色方案(prefers-color-scheme: dark) |
| fullPage | boolean | 否 | 捕获整个可滚动页面,而非仅捕获视口 |
| geoState | string | 否 | 用于更精确地进行地理定位的州或地区(例如,'California')。需要 'geo'。 |
| markdown | string | 否 | 将 Markdown 渲染为图像或 PDF。不能与 'url' 和 'html' 同时使用。服务端会先将其转换为 HTML,再进行渲染。适用于报告、发行说明、README 快照和文档卡片。 |
| pdfScale | number | 否 | PDF 缩放系数(0.1-2)。默认值:1 |
| selector | string | 否 | 用于截取特定元素而非整个页面的 CSS 选择器。适用于 OG 图片、组件提取(例如 `#hero`、`.pricing-card`)。 |
| pdfFormat | enum | 否 | PDF 页面尺寸。仅在 format='pdf' 时使用。默认值:A4A4 | Letter | Legal | Tabloid | A3 |
| pdfMargin | object | 否 | PDF 页边距。仅在 format='pdf' 时使用。接受 CSS 值。 |
| pdfMargin.top | string | 否 | 上边距(CSS 值,例如 '1cm'、'20px') |
| pdfMargin.left | string | 否 | 左边距 |
| pdfMargin.right | string | 否 | 右边距 |
| pdfMargin.bottom | string | 否 | 下边距 |
| userAgent | string | 否 | 覆盖浏览器的 user agent 字符串。 |
| waitUntil | enum | 否 | 页面就绪事件。networkidle2(默认值)适用于大多数网站。使用 domcontentloaded 可提高速度,使用 networkidle0 可确保内容完整。load | domcontentloaded | networkidle0 | networkidle2 |
| bestAttempt | boolean | 否 | 如果为 true(默认值),超时时捕获已渲染的内容,而不是报错。设为 false 可在超时时返回明确错误。 |
| resizeWidth | integer | 否 | 将捕获的图像缩小到此宽度(像素,16-3840)。如果未指定 resizeHeight,则保持宽高比。PDF 中忽略此项。 |
| pdfLandscape | boolean | 否 | PDF 横向。仅在 format='pdf' 时使用。 |
| resizeHeight | integer | 否 | 将捕获的图像缩小到此高度(像素,16-2160)。如果未指定 resizeWidth,则保持宽高比。PDF 中忽略此项。 |
| hideSelectors | array | 否 | 捕获前隐藏的 CSS 选择器(display:none)。例如,['.modal', '#newsletter-popup'] 可移除遮罩层。最多 50 个选择器。 |
| waitForSelector | string | 否 | 捕获前等待的 CSS 选择器。对于 SPA 至关重要(例如 '.main-content'、'#app-loaded')。 |
| deviceScaleFactor | number | 否 | 设备像素比(1 = 标准,2 = Retina)。默认值为 2× Retina。 |
| blockCookieBanners | boolean | 否 | 捕获前隐藏常见的 Cookie/同意提示遮罩(GDPR/CCPA 横幅)。使用精选的选择器列表,比自定义 hideSelectors 更轻量。 |
| blockResourceTypes | array | 否 | 屏蔽特定资源类型以加快捕获速度。例如,['font', 'image'] 可用于仅包含文本的截图。 |
| pdfPrintBackground | boolean | 否 | 在 PDF 中打印背景颜色/图像。默认值:true |
详细介绍
@copperline/rendex-mcp
面向 Rendex 的 MCP 服务,可通过 Model Context Protocol 让 AI Agent 将原始 HTML、Markdown 或任意 URL 渲染为图片或 PDF。
快速开始
Claude Desktop / Cursor / Windsurf(npx)
添加到 MCP 客户端配置中:
{
"mcpServers": {
"rendex": {
"command": "npx",
"args": ["-y", "@copperline/rendex-mcp"],
"env": {
"RENDEX_API_KEY": "your-api-key"
}
}
}
}
添加位置:
| 客户端 | 配置位置 |
|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json(macOS) |
| Cursor | 项目根目录下的 .cursor/mcp.json,或“设置”>“MCP” |
| Windsurf | “设置”>“MCP Servers” |
Claude Code(CLI)
在项目根目录中添加 .mcp.json,使用上面的相同配置。然后重启 Claude Code。
重要:将
.mcp.json添加到.gitignore中——它包含你的 API 密钥。
远程(零安装,OAuth 或 API 密钥)
连接到托管服务 https://mcp.rendex.dev/mcp——无需安装。
它由 OAuth 2.1(authorization-code + PKCE S256)提供支持,因此支持 OAuth 的
客户端(ChatGPT、Claude、Cursor、MCP Inspector)连接时无需 API 密钥——
你只需通过一次性邮箱验证码登录,每个调用方的费用都从其自己的
Rendex 套餐和额度池中扣除。
偏好使用静态密钥的客户端仍可直接传入密钥:
{
"mcpServers": {
"rendex": {
"url": "https://mcp.rendex.dev/mcp",
"headers": {
"Authorization": "Bearer your-api-key"
}
}
}
}
工具
rendex_screenshot
将任意网页、原始 HTML 或 Markdown 渲染为图像或 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"
参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
url | string | 必填* | 要捕获的网页 URL。不能与 html 和 markdown 同时使用。 |
html | string | — | 要渲染的原始 HTML。不能与 url 和 markdown 同时使用。 |
markdown | string | — | 要渲染的 Markdown(服务端会将其转换为 HTML)。不能与 url 和 html 同时使用。 |
data | object | — | 用于 Mustache 模板的数据键值对。设置后,捕获前会将 html 或 markdown 字符串作为无逻辑 Mustache 模板进行渲染。不能与 url 同时使用。 |
format | "png" | "jpeg" | "webp" | "pdf" | "png" | 输出格式 |
fullPage | boolean | false | 捕获整个可滚动页面 |
darkMode | boolean | false | 模拟深色配色方案 |
width | number | 1280 | 视口宽度(320-3840) |
height | number | 800 | 视口高度(240-2160) |
resizeWidth | number | — | 将输出缩小至此宽度(像素);若未指定 resizeHeight,则保持宽高比。对 PDF 无效 |
resizeHeight | number | — | 将输出缩小至此高度(像素);若未指定 resizeWidth,则保持宽高比。对 PDF 无效 |
quality | number | 80 | 图像质量 1-100(仅适用于 JPEG/WebP,默认值为 80) |
delay | number | 0 | 捕获前等待的毫秒数 |
blockAds | boolean | true | 屏蔽广告和跟踪器 |
blockCookieBanners | boolean | — | 捕获前隐藏常见的 Cookie/同意横幅(GDPR/CCPA) |
blockResourceTypes | string[] | — | 要屏蔽的资源类型:font、image、media、stylesheet、other |
device | string | — | 设备预设:desktop、iphone_15、iphone_se、pixel_8、ipad、ipad_pro — 一次性设置视口、缩放比例和用户代理。覆盖 width/height/deviceScaleFactor/userAgent |
deviceScaleFactor | number | 2 | 设备像素比(1-3)。默认采用 2× Retina |
timeout | number | 30 | 等待页面加载的最长秒数(5-60) |
waitUntil | string | "networkidle2" | 页面就绪条件:load、domcontentloaded、networkidle0、networkidle2 |
waitForSelector | string | — | 捕获前等待的 CSS 选择器 |
bestAttempt | boolean | true | 超时时返回部分渲染结果,而不是失败 |
selector | string | — | 要捕获的元素的 CSS 选择器,而非整个页面 |
hideSelectors | string[] | — | 捕获前要隐藏的 CSS 选择器(display:none),例如 ['.modal', '#newsletter-popup']。最多 50 个 |
css | string | — | 捕获前注入的自定义 CSS(最多 50KB) |
js | string | — | 捕获前执行的自定义 JavaScript(最多 50KB) |
cookies | array | — | 为经过身份验证的捕获设置 Cookie(最多 50 个) |
headers | object | — | 页面请求的自定义 HTTP 标头 |
userAgent | string | — | 覆盖浏览器用户代理字符串 |
pdfFormat | string | — | PDF 页面尺寸:A4、Letter、Legal、Tabloid、A3 |
pdfLandscape | boolean | — | PDF 横向排版 |
pdfPrintBackground | boolean | true | 在 PDF 中打印背景 |
pdfScale | number | 1 | PDF 缩放系数(0.1-2) |
pdfMargin | object | — | PDF 页边距:{top, right, bottom, left},使用 CSS 值 |
geo | string | — | 用于按地理位置定向捕获的 ISO 国家代码(Pro/Enterprise) |
geoCity | string | — | 定向地理位置的城市(需要 geo) |
geoState | string | — | 定向地理位置的州(需要 geo) |
async | boolean | — | 异步处理(返回任务 ID) |
webhookUrl | string | — | 异步捕获完成时接收回调的 URL(Starter+;Free/Basic 需轮询任务状态) |
cacheTtl | number | — | 结果缓存秒数(3600-2592000) |
rendex_extract
将任意网页中的清爽阅读模式内容提取为 Markdown、JSON 或 HTML。运行与截图相同的 Chromium 渲染流程,因此能够捕获 JavaScript 运行后的内容——可处理仅抓取页面的阅读器无法读取的 SPA。移除导航栏、广告和模板内容,返回文章正文以及标题、署名和摘要。非常适合将页面内容提供给大模型进行总结或导入 RAG。
"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"
参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
url | string | 必填 | 要从中提取可读内容的网页 URL |
extractFormat | "markdown" | "json" | "html" | "markdown" | 输出格式——markdown(适合大模型的文本)、json(结构化数据:title/byline/excerpt/siteName/length)或 html(清理后的阅读模式 HTML) |
device | string | — | 设备预设(desktop、iphone_15、iphone_se、pixel_8、ipad、ipad_pro)——提取网页的移动版或平板版 |
blockAds | boolean | true | 提取前屏蔽广告和跟踪器 |
blockCookieBanners | boolean | — | 提取前隐藏常见的 Cookie/同意提示 |
hideSelectors | string[] | — | 提取前要隐藏的 CSS 选择器,例如 ['.modal', '#newsletter-popup']。最多 50 个 |
waitUntil | string | "networkidle2" | 页面就绪条件:load、domcontentloaded、networkidle0、networkidle2 |
timeout | number | 30 | 等待页面加载的最长秒数(5-60) |
rendex_render_link
渲染 URL、原始 HTML 或 Markdown,并返回经过签名、托管且由边缘缓存的图片 URL,而非图片字节数据——非常适合动态 OG 图片。将该 URL 放入 <meta property="og:image"> 或 <img> 标签,Rendex 就会在每次分享时提供缓存副本。接受与 rendex_screenshot 相同的参数,另加可选的 expiresIn。返回 { 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"
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
(所有 rendex_screenshot 参数) | — | — | 相同的来源(url/html/markdown)、格式、尺寸和模板选项 |
expiresIn | number | 服务端 TTL | 签名 URL 过期前的秒数(60–2592000) |
render_artifact
一键将 Markdown 或 HTML 转换为带品牌元素、可下载的成品——PDF、PNG 和托管分享页面。非常适合生成 Agent 输出:报告、发票、摘要、发行说明、仪表板。可应用徽标、强调色、字体、页眉和页脚;还可选择 PDF 页面尺寸/方向/边距。返回托管 URL { pdfUrl, pngUrl, shareUrl, expiresAt }——你无需自行存储。每种请求的格式消耗 1 个渲染额度。
"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"
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
content | string | 必填 | 要渲染的 Markdown 或 HTML 正文(最大约 4MB) |
inputFormat | "markdown" | "html" | "markdown" | 如何解析 content——markdown 会转换为带样式的 HTML;html 则作为正文片段使用 |
formats | ("pdf" | "png")[] | ["pdf","png"] | 要生成的格式。每种格式消耗 1 个额度 |
accentColor | string | — | 用于色条、链接和标题的 CSS 强调色(例如 #EA580C) |
logo | string | — | 显示在页眉中的徽标图片 http(s) URL |
header | string | — | 显示在徽标旁的纯文本页眉行 |
footer | string | — | 显示在底部的纯文本页脚行 |
font | string | — | 正文的 CSS font-family 字体栈 |
pageSetup | object | — | { size, orientation, margin{top,right,bottom,left}, scale, width, height, fullPage } |
data | object | — | Mustache 数据——设置后,转换前会将 content 渲染为无逻辑 Mustache 模板(以及来自 branding 的 {{logo}}/{{header}}/…) |
expiresIn | number | 86400 | 托管 URL 过期前的秒数(3600–2592000)。默认 24 小时 |
Rendex Watch
按计划监控 URL,并在其发生变化时收到通知——可选择真实 Chrome 视觉差异(带高亮叠加层)、提取的文本差异,或两者兼有。八种工具可让 Agent 在共享的 Rendex 平台上创建、查看、编辑和删除监控(一个 rdx_ 密钥,一个额度池)。
"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?"
| 工具 | 用途 | 关键输入 |
|---|---|---|
watch_create | 创建监控(启用后立即捕获基线) | url、name?、intervalMinutes?、diffMode?(visual/text/both)、threshold?、renderParams?、webhookUrl?(Starter+)、notifyEmail?、paused? |
watch_test | 先试运行配置(不会创建任何内容) | 与 watch_create 相同 |
watch_list | 列出你的监控 | status?(active/paused/all)、cursor?、limit? |
watch_get | 获取一项监控(以及基线 URL) | id |
watch_run | 立即运行一次检查(1 个额度) | id |
watch_runs | 获取运行历史及签名的前后对比/叠加层 URL | id、cursor?、limit? |
watch_update | 原地编辑监控——间隔、差异模式、通知渠道、渲染参数 | id,以及任意 watch_create 字段;webhookUrl/notifyEmail 可设为 null 以清除通知渠道 |
watch_delete | 删除监控及其运行记录 | id |
renderParams 包含每次检查的捕获选项(fullPage 默认为 true、selector、device、geo(Pro+),以及降噪选项 ignoreRegions/ignoreText/minTextChars/suppressWhilePresent 和 uaMode)。各套餐的最短间隔不同(Free 1440 / Basic 180 / Starter 60 / Pro 30 / Enterprise 5)。监控元数据和签名图片 URL 会以 JSON 文本形式返回。
rendex_account
可在 Agent 内查看账户信息:所属套餐、本月已使用的渲染额度与额度上限(以及重置时间)、每分钟速率限制和一键升级链接。Agent 无需将用户引导至控制面板,即可回答“我用了多少?”或“如何获得更多渲染额度?”只读——不消耗额度。
"How many Rendex renders do I have left this month?"
"What plan am I on, and how do I upgrade for more?"
返回 { plan, usage: { used, limit, remaining, unlimited, resetsAt }, rateLimitPerMinute, upgrade: { recommendedPlan, recommendedPlanCredits, upgradeUrl, manageBillingUrl } }。
数据模板
将一个可复用模板转换为多份文档。在 html 或 markdown 旁传入 data 对象,Rendex 会在捕获前将字符串渲染为无逻辑的 Mustache 模板——支持 {{var}} 插值、{{#items}}…{{/items}} 循环,以及嵌套的 {{a.b}} 访问。非常适合用于发票、报告、证书和 OG 卡片。
"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 仅可与 html 或 markdown 配合使用;与 url 同时使用会返回验证错误。
身份验证
在 rendex.dev 获取 API 密钥。
在 MCP 客户端配置中设置 RENDEX_API_KEY 环境变量。
定价
| 套餐 | 每月调用次数 | 速率 |
|---|---|---|
| Free | 100 | 3/min |
| Starter | 10,000 | 60/min |
| Pro | 100,000 | 300/min |
| Enterprise | 自定义 | 1,000/min |
许可证
MIT — Copperline Labs LLC
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。