Skip to main content
Glama
Djsand
by Djsand

RenderProof

Rendered web evidence for coding agents.

RenderProof is a local-first MCP server that lets Codex, Claude Code, Cursor, and other agents capture what Chromium actually rendered: screenshots, motion, CSS animation metadata, pixel diffs, gates, loading states, and visual evidence that plain fetch tools miss.

It is not a scraper. It is not a bypass tool. It is the receipt for what the browser saw.

Why This Exists

Coding agents are very good at reading source. The web is increasingly bad at being understood from source alone.

Modern pages hide their real state behind client rendering, consent walls, cookie modals, skeleton loaders, canvas, video surfaces, iframes, maps, bot checks, and motion. A text fetch can say "Google Maps"; a browser screenshot can show "Danish consent wall blocking the map."

RenderProof gives agents a grounded visual evidence layer before they make claims or copy a design.

Related MCP server: mcp-page-capture

What It Does

Tool

Use it when

Output

route_web_task

The agent needs to choose text, screenshot, motion, search, or another platform tool

Route recommendation with evidence

read_url

Text is enough

Normalized direct fetch text, with optional remote reader

capture_page

Layout, gates, rendered state, canvas, images, maps, PDFs-as-browser-state, or visual QA matter

PNG screenshot + metadata

capture_motion

A human needs to see animation, loading, scroll, transitions, or media motion

WebM video + keyframe PNGs

analyze_motion

A coding agent needs to recreate or critique motion

Contact sheet, diff image, CSS animation metadata, pixel-diff JSON, design notes

clone_website

A coding agent needs to rebuild an authorized website or study how a page is put together

Clone brief, desktop/mobile screenshots, design tokens, assets, topology, behaviors, component specs

doctor

You want to verify local runtime/browser setup

Runtime and Playwright checks

The Core Idea

flowchart LR
  A["Agent task"] --> B["route_web_task"]
  B --> C["read_url"]
  B --> D["capture_page"]
  B --> E["capture_motion"]
  B --> F["analyze_motion"]
  B --> H["clone_website"]
  C --> G["Grounded answer"]
  D --> G
  E --> G
  F --> G
  H --> G

RenderProof makes the expensive path explicit: read text first when text is enough, escalate to rendered evidence when pixels matter.

Example Prompts

Use RenderProof to capture a full-page screenshot of https://example.com with autoScrollBeforeCapture true.
Use RenderProof to analyze the animation style on this page and return the contact sheet, pixel-diff summary, and CSS animation metadata.
Use RenderProof to check what the browser actually sees on this Instagram/TikTok/YouTube page.
Use RenderProof to capture visual evidence before claiming whether this page is blocked by a consent wall, login wall, CAPTCHA, or skeleton loader.
Use RenderProof clone_website on https://example.com and give me the clone brief paths for a Next.js rebuild.

Motion Analysis

Video is useful for humans. Agents need structured evidence.

analyze_motion samples frames over time and returns:

  • a contact sheet PNG

  • a red-highlight diff PNG

  • frame timestamps

  • changed-pixel ratios

  • changed-region bounds and centroid movement

  • dominant movement direction

  • document.getAnimations() metadata

  • CSS keyframes, duration, easing, direction, iterations, target selector, animated properties

  • design notes written for a coding agent

Example design notes:

[
  "Detected 2 CSS/Web Animation target(s), affecting transform.",
  "Primary timing appears to use duration 1200ms, easing ease-in-out, direction alternate.",
  "Pixel sampling saw up to 5.81% of sampled pixels change between adjacent frames.",
  "The changed region centroid trends right across sampled frames."
]

That is the difference between "there is an animation" and "recreate this with transform, 1200ms, ease-in-out, alternate, moving right while scaling."

Website Clone Briefs

clone_website turns a live rendered page into clone-ready artifacts for an AI coding workflow. It is inspired by section-by-section website reverse-engineering templates: inspect first, write durable specs, then build from those specs.

It writes a local bundle under .renderproof/evidence/clones/:

  • research/CLONE_BRIEF.md

  • research/DESIGN_TOKENS.md

  • research/PAGE_TOPOLOGY.md

  • research/BEHAVIORS.md

  • research/components/*.spec.md

  • design-references/desktop-*.png

  • design-references/mobile-*.png

  • downloaded assets, capped by maxAssets and maxAssetBytes

The output is not a completed app. It is the extraction layer a coding agent needs before rebuilding: exact rendered references, computed CSS signals, real text, asset paths, interaction hints, and responsive evidence.

Install

One-liner:

curl -fsSL https://raw.githubusercontent.com/Djsand/renderproof/main/install.sh | bash -s -- codex

Windows PowerShell:

powershell -NoProfile -ExecutionPolicy Bypass -Command "& ([scriptblock]::Create((irm https://raw.githubusercontent.com/Djsand/renderproof/main/install.ps1))) -Target codex"

Swap codex for claude, cursor, cline, windsurf, gemini, or generic.

The codex target writes directly to ~/.codex/config.toml, so it works even when the Codex CLI is not available in your terminal PATH.

If Windows says Missing required command: node, install Node.js 20+ and reopen PowerShell:

winget install OpenJS.NodeJS.LTS

Manual install:

git clone https://github.com/Djsand/renderproof.git
cd renderproof
npm install
npx playwright install chromium

Then install it into your coding agent:

node dist/index.js install

One-liners:

curl -fsSL https://raw.githubusercontent.com/Djsand/renderproof/main/install.sh | bash -s -- codex
curl -fsSL https://raw.githubusercontent.com/Djsand/renderproof/main/install.sh | bash -s -- claude
curl -fsSL https://raw.githubusercontent.com/Djsand/renderproof/main/install.sh | bash -s -- cursor
curl -fsSL https://raw.githubusercontent.com/Djsand/renderproof/main/install.sh | bash -s -- cline
curl -fsSL https://raw.githubusercontent.com/Djsand/renderproof/main/install.sh | bash -s -- windsurf
curl -fsSL https://raw.githubusercontent.com/Djsand/renderproof/main/install.sh | bash -s -- gemini

Windows PowerShell one-liners:

powershell -NoProfile -ExecutionPolicy Bypass -Command "& ([scriptblock]::Create((irm https://raw.githubusercontent.com/Djsand/renderproof/main/install.ps1))) -Target codex"
powershell -NoProfile -ExecutionPolicy Bypass -Command "& ([scriptblock]::Create((irm https://raw.githubusercontent.com/Djsand/renderproof/main/install.ps1))) -Target claude"
powershell -NoProfile -ExecutionPolicy Bypass -Command "& ([scriptblock]::Create((irm https://raw.githubusercontent.com/Djsand/renderproof/main/install.ps1))) -Target cursor"
powershell -NoProfile -ExecutionPolicy Bypass -Command "& ([scriptblock]::Create((irm https://raw.githubusercontent.com/Djsand/renderproof/main/install.ps1))) -Target cline"
powershell -NoProfile -ExecutionPolicy Bypass -Command "& ([scriptblock]::Create((irm https://raw.githubusercontent.com/Djsand/renderproof/main/install.ps1))) -Target windsurf"
powershell -NoProfile -ExecutionPolicy Bypass -Command "& ([scriptblock]::Create((irm https://raw.githubusercontent.com/Djsand/renderproof/main/install.ps1))) -Target gemini"

Local helper equivalents:

node dist/index.js install codex --write-user
node dist/index.js install claude --apply
node dist/index.js install cursor --write-project
node dist/index.js install cline --write-user
node dist/index.js install windsurf --write-user
node dist/index.js install gemini --apply --scope user

See docs/installation.md for agent-specific setup.

Use With Codex

node dist/index.js install codex --write-user

Manual equivalent:

codex mcp add renderproof -- node /absolute/path/to/renderproof/dist/index.js mcp

Direct config equivalent:

[mcp_servers.renderproof]
command = "node"
args = ["/absolute/path/to/renderproof/dist/index.js", "mcp"]

Use With Claude Code

node dist/index.js install claude --apply

Manual equivalent:

claude mcp add renderproof -- node /absolute/path/to/renderproof/dist/index.js mcp

Use As CLI

npm run dev -- route "summarize this page" --url https://example.com
npm run dev -- read https://example.com
npm run dev -- capture https://example.com --full-page
npm run dev -- capture https://example.com --full-page --auto-scroll
npm run dev -- motion https://example.com --duration 5000 --keyframes true
npm run dev -- analyze-motion https://example.com --duration 3000 --samples 5
npm run dev -- clone-website https://example.com --max-sections 24
npm run dev -- install generic --json
npm run doctor

Safety Model

RenderProof is designed to show gates, not bypass them.

By default, it:

  • allows public http and https URLs

  • blocks localhost, private IP ranges, and hosts resolving to private IPs

  • does not use remote readers unless explicitly enabled

  • does not solve CAPTCHA

  • does not hide automation

  • does not click through consent, login, or payment walls

  • does not use clone outputs for phishing, impersonation, or unauthorized reproduction

  • returns structured failures instead of pretending a page was accessible

Environment controls:

RENDERPROOF_ALLOWED_HOSTS=example.com,*.example.org
RENDERPROOF_ALLOW_PRIVATE_NETWORK=1
RENDERPROOF_ENABLE_REMOTE_READERS=1
RENDERPROOF_OUTPUT_DIR=.renderproof/evidence
RENDERPROOF_MAX_CHARS=12000
JINA_API_KEY=...

Legacy GROUNDED_WEB_* variables are still supported for compatibility.

What RenderProof Is Good At

  • Seeing rendered browser state when direct fetch returns useless HTML

  • Capturing cookie modals, login walls, consent walls, reCAPTCHA widgets, and skeleton loaders

  • Capturing maps, video players, image pages, canvas/WebGL surfaces, and JS-computed UI

  • Producing full-page screenshots with optional pre-scroll for lazy loading

  • Recording short WebM motion evidence for humans

  • Turning animation into agent-readable CSS and pixel-diff evidence

  • Creating auditable local evidence files for coding workflows

  • Generating clone briefs for authorized rebuilds, migrations, and learning

What It Will Not Do

  • bypass paywalls, login walls, CAPTCHA, bot checks, or private networks by default

  • scrape social platforms as a data product

  • replace Playwright MCP for interactive browser control

  • guarantee semantic object tracking from pixel diffs alone

  • produce a finished application from a clone brief without a coding agent doing the build and QA

Playwright is the engine. RenderProof is the evidence layer.

Development

npm install
npm run typecheck
npm run build
npm run doctor

Run a browser launch check:

npm run dev -- doctor --check-browser-launch

Roadmap

  • PDF rendering and text extraction

  • page-state detection for consent/login/CAPTCHA/skeleton/download/blank-page states

  • visual diff scoring for clone QA workflows

  • safe user-provided auth/session support

  • evidence bundle manifests

  • optional interaction sequences with before/after evidence

License

MIT

Available Tools

7 tools
analyze_motionAnalyze MotionC

Analyze rendered page motion for coding agents using sampled keyframes, CSS animation metadata, pixel diffs, and a contact sheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe public http(s) URL to render and analyze.
widthNoViewport width in pixels.
heightNoViewport height in pixels.
outputDirNoDirectory where motion analysis evidence should be saved.
timeoutMsNoNavigation and analysis timeout.
waitUntilNoNavigation wait condition. Defaults to load for motion analysis.
durationMsNoHow long to sample motion after navigation. Defaults to 3000 ms.
sampleCountNoNumber of screenshots to sample across the duration. Defaults to 5.
scrollStepPxNoPixels to scroll per step when sampling scroll motion.
includeImagesNoEmbed contact sheet and diff image resources in the MCP response. Defaults to true.
scrollDelayMsNoDelay between scroll steps in milliseconds.
scrollMaxStepsNoMaximum number of scroll steps.
changeThresholdNoPer-pixel channel delta threshold for pixel-diff detection. Defaults to 40.
diffSampleStrideNoPixel sampling stride for diff analysis. Higher values are faster but less precise. Defaults to 2.
includePixelDiffNoCompute pixel-diff summaries across sampled frames. Defaults to true.
includeFrameImagesNoAlso embed each raw sampled frame as an image resource. Defaults to false.
allowPrivateNetworkNoAllow localhost/private network URLs for this call. Defaults to false.
scrollDuringCaptureNoScroll through the page while sampling to analyze scroll-driven motion and lazy loading.
includeCssAnimationsNoExtract document.getAnimations() metadata from the page. Defaults to true.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose side effects and safety. It mentions the analysis techniques but not that the tool renders a page, may write files via outputDir, or whether it's read-only. Missing information about navigation or resource consumption.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is reasonably concise and front-loads the main purpose. It includes a few extra words like 'for coding agents' but is not bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 19 parameters and no output schema, the description is too brief. It doesn't explain the output format, return value, or workflow, leaving the agent with insufficient context for a complex tool. The parameter schema helps but doesn't fill the output gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds no extra meaning about parameters, and only indirectly hints at sampling and diffs without referencing specific parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool analyzes page motion, specifying the methods (keyframes, CSS animations, pixel diffs, contact sheet). This is a specific verb+resource combination, but it doesn't explicitly distinguish from the sibling capture_motion, so not a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool vs alternatives. It doesn't mention use cases, exclusions, or refer to sibling tools like capture_motion or capture_page. The only context is implied by the parameter names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

capture_motionCapture MotionA

Record short rendered page motion evidence with Playwright video when animations, transitions, scrolling, or dynamic media matter.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe public http(s) URL to render and record.
widthNoViewport width in pixels.
heightNoViewport height in pixels.
outputDirNoDirectory where motion evidence should be saved.
timeoutMsNoNavigation and capture timeout.
waitUntilNoNavigation wait condition. Defaults to load for motion capture.
durationMsNoHow long to record motion after navigation. Defaults to 5000 ms.
includeVideoNoEmbed the WebM video in the MCP response. Defaults to true.
scrollStepPxNoPixels to scroll per step when recording scroll motion.
keyframeCountNoNumber of keyframe screenshots to capture. Defaults to 3.
scrollDelayMsNoDelay between scroll steps in milliseconds.
scrollMaxStepsNoMaximum number of scroll steps.
includeKeyframesNoCapture and embed PNG keyframes during the recording. Defaults to true.
allowPrivateNetworkNoAllow localhost/private network URLs for this call. Defaults to false.
scrollDuringCaptureNoScroll through the page while recording to capture scroll-driven motion and lazy loading.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full disclosure burden. It mentions Playwright video and motion evidence, but does not describe output behavior, file-saving side effects, default duration/video embedding, or safety implications. It is not misleading, but it is sparse for a non-trivial capture tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tightly written sentence front-loads the action, object, and use condition. No filler, no redundancy, and it earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although the tool has 15 parameters and no output schema, the schema itself is rich (100% coverage) and includes output hints such as includeVideo embedding WebM in the MCP response. The description establishes the use case succinctly; together with the schema, this is sufficient for an agent to select and invoke the tool, though the prose alone would be incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds no parameter-specific semantics beyond conceptual triggers like 'animations' and 'scrolling,' which lightly echo scrollDuringCapture and related fields. The schema already documents all parameters thoroughly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb ('Record') and a clear resource ('short rendered page motion evidence with Playwright video'), with explicit scope ('when animations, transitions, scrolling, or dynamic media matter'). This distinguishes it from static tools like capture_page and other siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool: 'when animations, transitions, scrolling, or dynamic media matter.' It stops short of naming alternatives or stating when not to use it, so it misses the full 5 criterion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

capture_pageCapture PageB

Capture rendered page evidence with Playwright when visual layout, screenshots, or browser state matter.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe public http(s) URL to render and capture.
widthNoViewport width in pixels.
heightNoViewport height in pixels.
fullPageNoCapture the full scrollable page instead of the viewport.
outputDirNoDirectory where screenshot evidence should be saved.
timeoutMsNoNavigation and screenshot timeout.
waitUntilNoNavigation wait condition.
includeImageNoEmbed the screenshot image in the MCP response. Defaults to true.
scrollStepPxNoPixels to scroll per step when auto-scrolling.
scrollDelayMsNoDelay between auto-scroll steps in milliseconds.
scrollMaxStepsNoMaximum number of auto-scroll steps.
allowPrivateNetworkNoAllow localhost/private network URLs for this call. Defaults to false.
autoScrollBeforeCaptureNoScroll through the page before capture to trigger lazy-loaded content, then restore the original scroll position.
includeAccessibilitySnapshotNoInclude Playwright's accessibility snapshot as supporting text evidence.

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions Playwright but does not disclose side effects like file saving, network requests, or that it renders JavaScript. The tool's full behavioral profile (output format, potential state changes) is left unexplained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the action and key context. It is concise with no redundant information, making optimal use of its limited length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high parameter count (14), no output schema, and no annotations, the description is too thin to be contextually complete. It omits return format, output location, and behavioral side effects, and does not adequately differentiate from sibling tools like read_url or capture_motion.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of the 14 parameters with descriptions, so the baseline is 3. The description adds no parameter-specific semantics beyond the schema, but no compensation is needed given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Capture') and resource ('rendered page evidence') and notes a use case ('when visual layout, screenshots, or browser state matter'), which reasonably distinguishes it from siblings like read_url. However, it could more explicitly mention screenshots as the primary output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'when visual layout, screenshots, or browser state matter' provides clear context for when to use this tool. It does not explicitly name alternatives or exclusions, but the context is sufficient for a single-sentence description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

clone_websiteClone WebsiteA

Generate a clone-ready evidence bundle for a public website: desktop/mobile screenshots, design tokens, assets, page topology, behaviors, and component specs. Use only for legitimate site migration, learning, or authorized rebuilds.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe public http(s) page to reverse-engineer into clone-ready artifacts.
settleMsNoExtra delay after navigation before extraction. Defaults to 500 ms.
maxAssetsNoMaximum assets to download. Defaults to 60.
outputDirNoDirectory where clone artifacts should be saved.
timeoutMsNoNavigation and screenshot timeout.
waitUntilNoNavigation wait condition. Defaults to networkidle.
autoScrollNoScroll through the page before extraction to trigger lazy-loaded content. Defaults to true.
maxSectionsNoMaximum page sections to spec. Defaults to 24.
mobileWidthNoMobile viewport width. Defaults to 390.
desktopWidthNoDesktop viewport width. Defaults to 1440.
mobileHeightNoMobile viewport height. Defaults to 844.
scrollStepPxNoPixels to scroll per step when auto-scrolling.
desktopHeightNoDesktop viewport height. Defaults to 900.
maxAssetBytesNoMaximum bytes per downloaded asset. Defaults to 10 MiB.
scrollDelayMsNoDelay between auto-scroll steps in milliseconds.
downloadAssetsNoDownload discovered images, favicons, stylesheets, and videos within size limits. Defaults to true.
scrollMaxStepsNoMaximum number of auto-scroll steps.
allowPrivateNetworkNoAllow localhost/private network URLs for this call. Defaults to false.
maxElementsPerSectionNoMaximum DOM outline nodes per section spec. Defaults to 80.
includeSectionScreenshotsNoCapture per-section screenshots for component specs. Defaults to true.

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full responsibility for disclosing behavioral traits. It only states the target is a 'public website' and that use should be legitimate, but it does not disclose that the tool actively downloads assets, generates numerous network requests, or may strain the target server. It also does not mention rate limits, robots.txt considerations, or the fact that the tool may produce a large local artifact bundle.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the primary purpose, and includes a concise list of deliverable types. The second sentence adds an important usage restriction without fluff. Every word contributes to defining the tool's scope and boundary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex with 20 parameters and no output schema, yet the description only provides a high-level summary of outputs. It does not state what the return format is (e.g., paths to saved files, an index, a summary) or mention side-effect behaviors such as asset downloading and network load. Because the schema covers parameters well, the description is adequate but not fully complete for an operation of this scale.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 20 parameters have individual descriptions in the schema with defaults and ranges, so schema coverage is 100%. The description adds no parameter-specific details, but the schema already provides complete guidance. This meets the baseline for high coverage and does not need further compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific action 'Generate a clone-ready evidence bundle for a public website' and enumerates concrete artifact categories (screenshots, design tokens, assets, page topology, behaviors, component specs). This clearly distinguishes it from sibling tools like read_url or capture_page, which focus on simpler retrieval. The verb and resource are unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear acceptable-use boundary: 'Use only for legitimate site migration, learning, or authorized rebuilds.' This gives a when-to-use context but does not compare against any sibling tools or mention when a simpler alternative (e.g., capture_page) would be more appropriate. It lacks explicit exclusions or alternative recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

doctorDoctorB

Check local runtime, security policy, optional remote readers, and Playwright availability.

ParametersJSON Schema
NameRequiredDescriptionDefault
checkBrowserLaunchNoLaunch Chromium to verify browser binaries are installed. Defaults to false.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so description must disclose behavior. It lists check areas but fails to describe output format, side effects, or prerequisites, leaving behavioral ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, efficiently communicates the tool's purpose with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Sparse description for a tool that checks multiple subsystems; no output details or guidance on interpreting results, especially without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema fully documents the checkBrowserLaunch parameter with description. The tool description doesn't add additional semantics beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it checks local runtime, security policy, remote readers, and Playwright availability. Distinguishes from sibling web tools by focusing on environment diagnostics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to run this diagnostic tool versus the web task siblings. Absence of explicit context leaves the agent to infer appropriate timing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_urlRead URLA

Read a public http(s) URL as normalized text, using direct fetch first and optional remote readers only when configured.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe public http(s) URL to read.
maxCharsNoMaximum characters to return.
strategyNoReader strategy. Defaults to auto.
allowPrivateNetworkNoAllow localhost/private network URLs for this call. Defaults to false.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full burden of behavioral disclosure. It adds useful context by mentioning direct fetch first and optional remote readers only when configured, but it does not cover error handling, redirects, or the default private-network blocking (though the schema covers the latter).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single succinct sentence that front-loads the core purpose and key behavior. Every word earns its place, and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose, output format (normalized text), and fallback behavior. It lacks explicit guidance on choosing among sibling tools and does not discuss error outcomes, but given the simple scope and full schema coverage, it is mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All parameters are described in the schema (100% coverage), so the description correctly avoids repeating parameter details. It adds no extra semantic value beyond the schema's own descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads a public http(s) URL as normalized text, which is a specific verb+resource+output. It distinguishes from sibling tools like capture_page by emphasizing text extraction rather than visual capture.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus siblings such as capture_page or clone_website. It only mentions the fetch approach, with no explicit alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

route_web_taskRoute Web TaskA

Choose the cheapest reliable web perception route before reading, browsing, or using screenshots.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoOptional URL involved in the task.
taskYesThe user's web task or question.

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of disclosing behavior. It does not explain whether the tool performs any web access, returns a recommendation, has side effects, or what 'cheapest' means (cost, latency, resources). This is a significant gap for a non-trivial routing tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no fluff. Every word contributes to the purpose ('choose', 'cheapest', 'reliable', 'before reading/browsing/screenshots'), making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a router tool with no output schema and no annotations, the description is incomplete. It fails to explain what 'route' means, what the tool returns, or how it selects the cheapest reliable route. The minimal description leaves the agent guessing about the tool's behavior and return value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description adds no extra meaning about how 'task' and 'url' influence the routing decision, leaving it at the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Choose') and resource ('cheapest reliable web perception route'), clearly distinguishing this as a router from sibling tools that perform actual perception actions. It also gives context ('before reading, browsing, or using screenshots') and aligns with the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: 'before reading, browsing, or using screenshots.' This provides clear context for its position in the workflow, though it does not mention exclusions or alternative tools to use instead. No explicit 'when not to use' guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 7 tool updatesv0.4.5
    • First observedanalyze_motion
    • First observedcapture_motion
    • First observedcapture_page
    • First observedclone_website
    • First observeddoctor
    • First observedread_url
    • First observedroute_web_task

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a distinct role: routing decisions, text reading, static page capture, motion capture, motion analysis, runtime diagnostics, and full site cloning. There is no overlap between tools; capture_page and capture_motion are clearly differentiated by media type, and analyze_motion builds on captured motion data rather than duplicating it.

Naming Consistency4/5

Most tools follow a clear verb_noun pattern (read_url, capture_page, capture_motion, analyze_motion, clone_website). The 'doctor' tool is a slight outlier as a noun-based name, but it's memorable and contextually acceptable. Overall the naming convention is predictable and consistent enough.

Tool Count5/5

Seven tools is well within the ideal range for a focused web perception and cloning utility. Each tool adds a distinct capability without bloat, and the count matches the server's stated purpose of routing, reading, capturing, analyzing, and cloning web content.

Completeness5/5

The toolset covers the full lifecycle of web task handling: route_web_task plans the approach, read_url extracts content, capture_page and capture_motion provide visual evidence, analyze_motion gives deeper insights, doctor ensures environment health, and clone_website produces a complete bundle. There are no obvious missing core operations for this domain.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Djsand/renderproof'

If you have feedback or need assistance with the MCP directory API, please join our Discord server