unrendered-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@unrendered-mcpcheck what GPTBot can read on example.com/pricing"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Unrendered: AI Crawler Checker (Chrome Extension + MCP Server)
Check what AI crawlers like GPTBot and ClaudeBot can read on any page.
Unrendered compares a page's raw HTML with its rendered HTML, so you can see which content only appears after JavaScript runs.
Install · MCP server · How it measures · 30-second demo · Website
Why
Vercel and MERJ measured AI crawler traffic in December 2024 and found that "none of the major AI crawlers currently render JavaScript" (The rise of the AI crawler). A page can allow every bot in robots.txt and still send them an empty shell.
Unrendered shows that gap on the page itself: how much of the main content is in the raw HTML, and which text appears only after JavaScript runs.
Related MCP server: ai-visibility-mcp
Install
Chrome extension
Add to Chrome, open any page and click the icon. The side panel opens with the result.
MCP server
Requires Node 20 or later and Google Chrome. No browser is downloaded.
Claude Code:
claude mcp add unrendered -- npx -y unrendered-mcpClaude Desktop and other clients that use the mcpServers format:
{
"mcpServers": {
"unrendered": {
"command": "npx",
"args": ["-y", "unrendered-mcp"]
}
}
}Then ask your assistant something like "Check which content on example.com/pricing AI crawlers can't see". Tools, output and options are in mcp/README.md.
What it shows
Content. The share of the main content that is in the raw HTML, and every text block with its state:
State | Meaning |
In raw HTML | This text is in the raw HTML. |
Partly | Part of this text is in the raw HTML. JavaScript adds or changes the rest. |
Repeated or moved | The same text is in the raw HTML, but not at this position. |
Varies per request | Only one of two raw HTML requests had this text. |
Only in JSON-LD | In the raw HTML this text exists only inside JSON-LD structured data. |
Only in hydration data | In the raw HTML this text exists only inside framework data, such as |
Only in rendered HTML | This text appears only after JavaScript runs. |
"Show on page" outlines each block on the page in its state's colour. Text that is in the raw HTML but gone from the rendered page is listed as "Only in raw HTML".
Fields. Title, meta description, canonical, hreflang, html lang, robots meta tags and JSON-LD, in the raw HTML and in the rendered HTML. It warns when the raw HTML says noindex and JavaScript removes it. It also lists links that exist only in the rendered HTML.
Bots. For 22 AI bot tokens: what robots.txt allows, and how the site answers a request with each bot's user-agent (same page, different page, challenge page, blocked, rate-limited or redirected). 17 are tested. Googlebot and Applebot run JavaScript and are not imitated. Google-Extended and Applebot-Extended never fetch pages. Claude-SearchBot has no verified user-agent string yet.
Share. A 1200 × 630 image, a one-line summary and a Markdown report.
How it measures
After the click, the extension waits until the page has made no DOM changes for 1 s, for at most 8 s. Then it splits the rendered page into text blocks.
The same tab fetches the URL again: twice without cookies, as a crawler would, and once with your cookies.
Each rendered block is matched, in order, against the blocks of the first raw response. The second raw response separates text that changes on every request. The response with cookies is used only to tell you when the raw HTML has more text with your cookies.
Main content is the page's
<main>element. Without one, it is all text outside the header, navigation, sidebars, footer and dialogs. Hidden text is counted on its own and is not part of the percentages.
Text is compared as words, so symbols such as ⌘ are not counted. The MCP server bundles the same snapshot and analysis code and runs it unchanged in a headless Chrome.
Limits
The extension is not a crawler. Requests come from your browser and your IP. Sites that verify bots by IP may answer the real bot differently.
When the raw HTML is not the page (an error status, a challenge page from Cloudflare, AWS WAF or DataDome, or a redirect), no percentage is shown.
Text inside iframes is not included.
Raw HTML over 5 MB is cut at 5 MB.
The page is measured at one width. The side panel narrows it, which can change what is hidden.
Chrome does not let extensions read its own pages, the Chrome Web Store or PDFs.
Build from source
You need Chrome 124 or later, Node.js and pnpm.
pnpm install
pnpm buildOpen chrome://extensions, turn on Developer mode, click "Load unpacked" and choose the dist folder.
pnpm check runs the type check, lint, unit tests, build and the Playwright tests. The Playwright tests need Chromium once: pnpm exec playwright install chromium.
Privacy
No data collection, no analytics, no storage. See PRIVACY.md.
Licence
The code is licensed under the GNU Affero General Public License v3.0. The names "Unrendered" and "Mission Growth" and their icons are not; see TRADEMARK.md.
Made by Mission Growth, an AI-led SEO and GEO growth service.
This server cannot be deployed
Related MCP Connectors
Audit any site's AI visibility from your assistant: crawler access, rendering, and schema.
Free AI-readiness audit of any URL: AI crawler rules, JS-free text, JSON-LD, llms.txt. Tool catalog.
Check which AI crawlers a site allows and see pages the way AI crawlers do. Free, read-only.
Checks llms.txt, AI crawler access in robots.txt, and sitemap - with a 0-100 AI readiness score.
Related MCP Servers
- AlicenseAqualityCmaintenanceAnalyze and generate robots.txt files with AI crawler awareness. Fetch any site's robots.txt, detect which AI bots (GPTBot, ClaudeBot, PerplexityBot, Google-Extended) are blocked or allowed, and generate optimized robots.txt with toggle controls for 20+ AI crawlers.51MIT
- AlicenseAqualityDmaintenanceAudits AI-bot visibility: robots.txt per-bot for 22 AI user-agents (GPTBot/ClaudeBot/PerplexityBot/etc), Cloudflare flags, JSON-LD, sitemap, llms.txt, SPA shell, plus cross-model brand mentions via Perplexity + OpenRouter. 0-100 score. SSRF-guarded, spend-capped.41MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to perform instant SEO audits, check robots.txt, sitemaps, and AI crawler access for any URL without API keys.MIT
- AlicenseAqualityCmaintenanceEnables inspection of any website's AI-search readiness, checking AI crawler blocks, llms.txt, schema markup, and indexing directives from MCP clients like Claude.434 npmMIT