Skip to main content
Glama

Rendex: Rendering API for Images, PDFs & Content Extraction

Server Details

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

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
copperline-labs/rendex-mcp
GitHub Stars
7
Server Listing
rendex-mcp

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 13 of 13 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose with explicit 'use when' and 'do NOT use' guidance in descriptions. The rendering tools are differentiated by output type (screenshot/PDF, hosted URL, branded artifact, extracted text), and the watch tools follow a patterned CRUD/run/test structure, leaving no ambiguity.

Naming Consistency4/5

Most tools follow a 'prefix_verb' or 'prefix_verb_noun' pattern (e.g., rendex_screenshot, watch_create), but there are minor inconsistencies: 'render_artifact' lacks the 'rendex_' prefix, and 'watch_runs' is a noun rather than a verb. Overall, the names are still predictable and readable.

Tool Count5/5

With 13 tools, the server is well-scoped. It covers two domains—rendering (5 tools) and monitoring (8 tools)—without unnecessary overlap or excessive complexity. Each tool earns its place in the set.

Completeness5/5

The rendering side covers screenshots, PDFs, hosted URLs, branded artifacts, and content extraction. The watch side provides full lifecycle management (create, get, list, update, delete), plus immediate runs, run history, and testing. There are no obvious gaps or dead ends in user workflows.

Available Tools

13 tools
render_artifactRender Branded Artifact (PDF + PNG)A
Read-only
Inspect

Use this when the user asks to make or create a branded report, invoice, summary, release notes, or document — or to 'turn this Markdown/HTML into a PDF and PNG' (optionally with a logo or accent color). Do NOT use to screenshot an existing URL (use rendex_screenshot). Turns Markdown or HTML into a branded, downloadable artifact — a PDF, a PNG, and a hosted share page — in one call. Apply a logo, accentColor, font, header, and footer. Returns hosted URLs { pdfUrl, pngUrl, shareUrl, expiresAt }. Each requested format costs 1 render credit.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNoOptional Mustache data. When present, content is rendered as a logic-less Mustache template (plus the branding fields as {{logo}}/{{header}}/...) before conversion.
fontNoCSS font-family stack for the body (e.g. 'Georgia, serif').
logoNoAbsolute http(s) URL of a logo image shown in the header.
footerNoPlain-text footer line shown at the bottom.
headerNoPlain-text header line shown beside the logo.
contentYesThe Markdown or HTML body to render (up to ~4MB).
formatsNoWhich formats to produce. Each costs 1 credit. Default both.
expiresInNoSeconds until the hosted URLs expire (3600-2592000). Default 86400 (24h).
pageSetupNoOptional paper/viewport setup.
accentColorNoCSS accent color for the bar, links, and headings (e.g. '#EA580C').
inputFormatNoHow to interpret content. 'markdown' is converted to styled HTML; 'html' is used as a body fragment.markdown
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds important behavioral context: each requested format costs 1 render credit, and the tool returns hosted URLs (pdfUrl, pngUrl, shareUrl, expiresAt). This goes beyond the annotations and helps agents understand side effects and cost implications.

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 three sentences, front-loaded with the primary use case, followed by an exclusion and the return value summary. Every sentence adds value, and there is no repetition of schema details. It is concise yet comprehensive for orientation.

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?

Given the tool's complexity (11 parameters, nested pageSetup object) but a fully documented schema, the description provides enough context for initial selection: it defines the core output (PDF + PNG + share page), mentions branding options, and states the return format and credits. It does not cover every nuance (e.g., Mustache templating, pageSetup defaults), but the schema fills those gaps, making this a complete high-level description.

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 input schema already documents all 11 parameters and nested objects in detail. The description adds minimal parameter info beyond naming logo, accentColor, font, header, and footer as branding fields, which is helpful but not substantial. It does not explain the Mustache templating in the 'data' parameter, but that is covered by the schema.

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's purpose: converting Markdown or HTML into branded PDF/PNG artifacts with logo, accent color, font, header, and footer. It uses specific verbs ('turns', 'create') and explicitly distinguishes itself from rendex_screenshot, preventing confusion with sibling tools.

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

Usage Guidelines5/5

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

The description opens with 'Use this when...' and gives concrete triggers (user asks for a branded report, invoice, summary, or to convert Markdown/HTML to PDF/PNG). It also states a clear exclusion: 'Do NOT use to screenshot an existing URL (use rendex_screenshot)', naming the alternative tool.

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

rendex_accountCheck Plan & UsageA
Read-onlyIdempotent
Inspect

Check the Rendex account: which plan it's on, how many render credits have been used vs. the monthly limit (and when it resets), the per-minute rate limit, and a one-tap link to upgrade to a higher tier. Use this whenever the user asks about their usage, remaining quota, current plan, or how to get more renders / stop hitting limits. Read-only — costs no credits.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare read-only and idempotent, and the description adds valuable behavior context by outlining exactly what information is returned and explicitly stating 'Read-only — costs no credits.' This goes beyond the safety hints, though it does not describe edge cases or failure modes.

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, front-loaded with the core purpose, and every clause adds meaningful detail (plan, credits, limit, reset, rate limit, upgrade link, usage cue, credit cost). No redundancy or filler.

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

Completeness5/5

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

With zero parameters, strong annotations, and no output schema, the description covers all necessary context: what the tool checks, what specific data it returns, when to use it, and its safety profile. It fully compensates for the lack of an output schema.

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

Parameters4/5

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

The tool has zero parameters, so the description carries no parameter burden. Per guidelines, 0 params earns a baseline of 4, and the description appropriately focuses on the tool's purpose and outputs rather than nonexistent inputs.

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 states a specific action ('Check the Rendex account') and enumerates distinct outputs: plan, credit usage vs monthly limit, reset time, per-minute rate limit, and upgrade link. This clearly distinguishes it from sibling tools like render_artifact or watch_list.

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

Usage Guidelines5/5

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

Explicitly states when to use it: 'whenever the user asks about their usage, remaining quota, current plan, or how to get more renders / stop hitting limits.' This provides clear context for tool selection and even notes it costs no credits.

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

rendex_extractExtract Reader-Mode ContentA
Read-only
Inspect

Use this when the user asks to read, extract, get the text/content/article of, or summarize a webpage/URL. Do NOT use for a visual screenshot (use rendex_screenshot). Extracts 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 — handles 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. Costs 1 render credit per call.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe webpage URL to extract readable content from (a schemeless host like 'example.com' is accepted).
deviceNoDevice preset that sets viewport, scale factor, and user agent in one shot. E.g. 'iphone_15' to extract the mobile version of a page.
timeoutNoMaximum seconds to wait for page load (5-60). Cloudflare has a 60s hard cap.
blockAdsNoBlock ads and trackers before extraction
waitUntilNoPage readiness event. networkidle2 (default) is best for most sites. Use domcontentloaded for speed, networkidle0 for completeness.networkidle2
extractFormatNoOutput shape — markdown (default, LLM-friendly prose), json (structured fields: title/byline/excerpt/siteName/length), or html (cleaned reader-mode HTML).markdown
hideSelectorsNoCSS selectors to hide (display:none) before extraction. E.g. ['.modal', '#newsletter-popup'] to remove overlays. Max 50 selectors.
blockCookieBannersNoHide common cookie/consent walls (GDPR/CCPA banners) before extraction. A curated selector list, lighter than custom hideSelectors.
Behavior5/5

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

Beyond the readOnlyHint/openWorldHint annotations, the description reveals meaningful behavior: it 'Runs the same Chromium render pass as a screenshot, so it captures content after JavaScript runs — handles SPAs that fetch-only readers miss,' and it 'Strips nav, ads, and boilerplate.' It also discloses the cost: 'Costs 1 render credit per call.' No contradiction with annotations.

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 concise and front-loaded: it begins with the trigger condition, then the exclusion, then the core behavior and output, then use cases and cost. Every sentence adds distinct value — none are generic or repeated. It is structured for quick parsing by an AI agent.

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

Completeness5/5

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

With no output schema, the description compensates by specifying what is returned ('article body plus title, byline, and excerpt') and the formats available (Markdown, JSON, HTML). It also covers important caveats like JavaScript rendering, SPA support, and render credit cost. The parameter schema handles the rest, making this 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?

Schema description coverage is 100% — all 8 parameters have detailed descriptions, so the schema does the heavy lifting. The description adds high-level context (e.g., 'Strips nav, ads, and boilerplate' relating to blockAds/blockCookieBanners) but no parameter-level syntax or format details beyond what the schema already provides. 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?

The description opens with a specific trigger: 'Use this when the user asks to read, extract, get the text/content/article of, or summarize a webpage/URL.' It clearly names the resource (webpage) and the action (extract reader-mode content), and distinguishes itself from the sibling tool by explicitly directing screenshot requests to rendex_screenshot.

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

Usage Guidelines5/5

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

Explicitly states when to use ('when the user asks to read, extract, get the text/content/article of, or summarize a webpage/URL') and when not ('Do NOT use for a visual screenshot (use rendex_screenshot)'). It also provides additional context by mentioning ideal use cases: 'Great for feeding page content to an LLM, summarization, or RAG ingestion.'

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

rendex_screenshotCapture Screenshot or PDFA
Read-only
Inspect

Use this when the user asks to screenshot, capture, or take a picture of a webpage/URL, or to render raw HTML or Markdown to an image or PDF. Do NOT use to get a reusable hosted image URL (use rendex_render_link) or to make a branded multi-format document (use render_artifact). Captures a screenshot or PDF of any webpage, raw HTML, or Markdown. Supports full-page capture, dark mode, ad blocking, custom viewports, CSS/JS injection, cookie/header injection, PDF output, HTML and Markdown rendering, and progressive fallback for heavy sites. Returns partial renders on timeout by default (bestAttempt mode). Costs 1 render credit per call. Cookie/header injection requires Starter+; geo-targeting requires Pro+.

ParametersJSON Schema
NameRequiredDescriptionDefault
jsNoCustom JavaScript to execute in the page before capture. Runs in the browser sandbox. Max 50KB.
cssNoCustom CSS to inject into the page before capture. Hide cookie banners, add watermarks, override styles. Max 50KB.
geoNoISO 3166-1 alpha-2 country code for geo-targeted capture (e.g., 'US', 'DE', 'JP'). Renders the page as seen from that country. Pro/Enterprise only. Note: CSS/JS injection, cookies, element capture, dark mode, and some other features are not available with geo-targeting.
urlNoThe webpage URL to capture (a schemeless host like 'example.com' is accepted). Mutually exclusive with 'html' and 'markdown'.
dataNoKey-value data object for Mustache templating. When provided, the 'html' or 'markdown' string is rendered as a logic-less Mustache template before capture — {{var}} inserts HTML-escaped, {{{var}}} inserts raw, {{#items}}...{{/items}} iterates arrays, {{a.b}} accesses nested fields. Not valid with 'url'. Max 256KB serialized.
htmlNoRaw HTML to render and capture. Mutually exclusive with 'url' and 'markdown'. Great for invoices, social cards, email templates, OG images.
delayNoMilliseconds to wait after page load before capture (useful for JS-rendered content)
widthNoViewport width in pixels (320-3840)
deviceNoDevice preset that sets viewport, scale factor, and user agent in one shot. E.g. 'iphone_15' for a mobile screenshot. Overrides width/height/deviceScaleFactor/userAgent.
formatNoOutput format — png (lossless), jpeg (smaller), webp (smallest), or pdf (document). Use pdf for invoices, reports, archival.png
heightNoViewport height in pixels (240-2160)
cookiesNoCookies to set before capture. Useful for authenticated pages. Max 50 cookies.
geoCityNoCity for more precise geo-targeting (e.g., 'Berlin', 'New York'). Requires 'geo'.
headersNoCustom HTTP headers to send with the page request. Cannot override Host, Connection, Content-Length, or Transfer-Encoding.
qualityNoImage quality 1-100 (JPEG/WebP only, ignored for PNG/PDF)
timeoutNoMaximum seconds to wait for page load (5-60). Cloudflare has a 60s hard cap.
blockAdsNoBlock ads and trackers before capture
darkModeNoEmulate dark color scheme (prefers-color-scheme: dark)
fullPageNoCapture the full scrollable page instead of just the viewport
geoStateNoState or region for more precise geo-targeting (e.g., 'California'). Requires 'geo'.
markdownNoMarkdown to render to an image or PDF. Mutually exclusive with 'url' and 'html'. The server converts it to HTML before rendering. Great for reports, release notes, README snapshots, documentation cards.
pdfScaleNoPDF scale factor (0.1-2). Default: 1
selectorNoCSS selector of a specific element to capture instead of the full page. Useful for OG images, component extraction (e.g. '#hero', '.pricing-card')
pdfFormatNoPDF page size. Only used when format='pdf'. Default: A4
pdfMarginNoPDF page margins. Only used when format='pdf'. Accepts CSS values.
userAgentNoOverride the browser user agent string.
waitUntilNoPage readiness event. networkidle2 (default) is best for most sites. Use domcontentloaded for speed, networkidle0 for completeness.networkidle2
bestAttemptNoIf true (default), capture whatever is rendered on timeout instead of failing. Set to false to get a hard error on timeout.
resizeWidthNoDownscale the captured image to this width in pixels (16-3840). Aspect ratio is preserved if resizeHeight is omitted. Ignored for PDF.
pdfLandscapeNoPDF landscape orientation. Only used when format='pdf'.
resizeHeightNoDownscale the captured image to this height in pixels (16-2160). Aspect ratio is preserved if resizeWidth is omitted. Ignored for PDF.
hideSelectorsNoCSS selectors to hide (display:none) before capture. E.g. ['.modal', '#newsletter-popup'] to remove overlays. Max 50 selectors.
waitForSelectorNoCSS selector to wait for before capture. Essential for SPAs (e.g. '.main-content', '#app-loaded')
deviceScaleFactorNoDevice pixel ratio (1 = standard, 2 = retina). Defaults to 2× Retina.
blockCookieBannersNoHide common cookie/consent walls (GDPR/CCPA banners) before capture. A curated selector list, lighter than custom hideSelectors.
blockResourceTypesNoBlock specific resource types to speed up capture. E.g. ['font', 'image'] for text-only screenshots.
pdfPrintBackgroundNoPrint background colors/images in PDF. Default: true
Behavior5/5

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

Annotations already mark the tool as read-only and non-destructive, and the description adds meaningful behavioral detail beyond that: it returns partial renders on timeout by default, costs 1 render credit, uses progressive fallback for heavy sites, and requires specific plans for certain features (Starter+ for cookie/header injection, Pro+ for geo-targeting). No contradiction with annotations exists.

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 compact yet information-dense: it front-loads the trigger condition, then gives exclusions, a capability list, then behavior, cost, and access restrictions. Each sentence earns its place, and the structure guides the reader from selection to execution.

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

Completeness5/5

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

Despite having 37 parameters, no output schema, and considerable complexity, this description covers selection criteria, sibling distinctions, key behaviors (bestAttempt, fallback), cost, and plan limitations. The only minor gap is the exact output delivery format, but the tool title and phrasing ('captures a screenshot or PDF') make the return type sufficiently clear for an agent to select and invoke the tool.

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 has 100% parameter coverage with rich per-property descriptions (e.g., Mustache templating for 'data', 'waitUntil' semantics, PDF margin details). The description adds only a high-level capability summary without introducing parameter-level meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

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 explicit trigger phrases ('screenshot, capture, or take a picture of a webpage/URL') and clearly states the tool 'Captures a screenshot or PDF of any webpage, raw HTML, or Markdown.' It also names sibling tools (rendex_render_link, render_artifact) and explains exactly what this tool is NOT for, making distinction among siblings unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance ('Use this when the user asks to...') and when-not-to-use guidance with named alternatives ('Do NOT use to get a reusable hosted image URL...'). It also gives operational context: cost per call, plan requirements for cookie/header injection and geo-targeting, and the default bestAttempt fallback behavior.

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

watch_createCreate WatchAInspect

Use this when the user asks to monitor, watch, or track a webpage for changes, or to be alerted/notified when a page changes. Do NOT use for a one-time capture (use rendex_screenshot). Creates a Rendex Watch — monitors a URL on a schedule and notifies when it changes (real-Chrome visual diff with a highlighted overlay, an extracted-text diff, or both). An active watch captures its baseline immediately. Returns the created watch as JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe page to monitor (a schemeless host like 'rendex.dev/pricing' is upgraded to https).
nameNoOptional label for the watch.
pausedNoCreate the watch paused (no baseline capture or charge until resumed).
diffModeNoHow changes are detected. Default 'both' = a pixel diff (with a highlighted overlay) AND a FULL-PAGE text diff, alerting on either — catches any change, visual or text. 'visual' or 'text' narrow to one signal only.both
aiSummaryNoPro+ — attach a one-sentence AI 'what changed' summary to each detected change.
thresholdNoVisual sensitivity (0..1). Low (default 0.01) alerts on ANY change, including a small one on a long page (a changed-region test, not a whole-page pixel ratio). 0.06+ = only MAJOR visual changes (whole-page ratio). Text detection is unaffected.
webhookUrlNoStarter+ — HMAC-signed change-webhook target.
notifyEmailNoAny plan — send change alerts here. Must be your OWN account email (others are rejected). Defaults to it if omitted.
renderParamsNoRender knobs applied on every check (a subset of the screenshot capture params).
intervalMinutesNoCheck frequency in minutes. Minimum is your plan's floor — Free 1440 (daily), Basic 180, Starter 60, Pro 30, Enterprise 5.
Behavior4/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so mutation is communicated. The description adds behavioral context beyond annotations: the watch runs on a schedule, notifies upon changes, captures a baseline immediately, and returns JSON. It doesn't contradict annotations. It lacks details on cost or lifecycle but provides useful transparency for a mutation 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 four sentences: usage trigger, exclusion with alternative, core function with details, and return format. It is front-loaded, each sentence adds distinct value, and there is no filler or repetition.

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?

Given the tool's complexity (10 params, nested object, no output schema), the description adequately covers purpose, usage, a concise explanation of diff modes (visual/text/both), and the return type. It doesn't explain lifecycle costs, but those are documented in parameter descriptions (e.g., paused, plan floors). The description is sufficient for an agent to select and invoke the tool correctly.

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 has 100% description coverage for all 10 parameters, including detailed semantics for fields like 'paused', 'diffMode', 'threshold', and the nested 'renderParams'. The description itself adds minimal parameter guidance, only mentioning that an active watch captures a baseline. Since the schema is comprehensive, a baseline of 3 is appropriate.

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's purpose: 'Creates a Rendex Watch — monitors a URL on a schedule and notifies when it changes'. It also differentiates from sibling tools with the explicit directive: 'Do NOT use for a one-time capture (use rendex_screenshot)'. This is a specific verb+resource with clear scope.

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

Usage Guidelines5/5

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

The description provides explicit usage context: 'Use this when the user asks to monitor, watch, or track a webpage for changes, or to be alerted/notified when a page changes' and an explicit exclusion with an alternative tool: 'Do NOT use for a one-time capture (use rendex_screenshot)'. It also notes the baseline capture behavior, giving actionable guidance.

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

watch_deleteDelete WatchA
DestructiveIdempotent
Inspect

Delete a watch and its run history. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe watch ID (UUID).
Behavior4/5

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

The annotations already declare destructiveHint=true, but the description adds critical context by specifying that both the watch and its run history are deleted and that the action is 'Irreversible'. This goes beyond the minimal annotation, providing behavioral transparency about the extent and permanence of the operation.

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 extremely concise: two short sentences with no filler. It front-loads the core function ('Delete a watch') and includes the critical caveat ('Irreversible') in the second sentence. Every word 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?

Given the low complexity (one parameter, no output schema) and the strong annotations, the description is nearly complete. It covers the action, scope, and irreversibility. The only minor omission is not mentioning idempotency, but that is already covered by annotations (idempotentHint=true). Overall, sufficient for correct use.

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 schema description covers 100% of the single parameter (id) with a clear explanation. The tool description itself does not add any extra parameter semantics, but given the high schema coverage, a baseline of 3 is appropriate. No new meaning beyond the schema is provided.

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 action ('Delete'), the resource ('a watch'), and the additional scope ('and its run history'). This distinctly identifies the tool as the deletion operation among sibling tools like watch_create, watch_update, and watch_list, leaving no ambiguity.

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 implies usage by saying 'Delete', but it does not explicitly state when to use this tool versus alternative actions like disabling a watch or seeking a soft-delete option. No exclusions or alternatives are mentioned, so the guidance is only implicit.

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

watch_getGet WatchA
Read-onlyIdempotent
Inspect

Fetch one watch by ID, including its current baseline image URL and status. Returns JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe watch ID (UUID).
Behavior4/5

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

Annotations already declare it read-only, idempotent, and non-destructive, so the description need not repeat those. It adds useful context by specifying that the response is JSON and includes the current baseline image URL and status, which are not in the annotations.

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 that front-loads the verb and object, states the key output fields, and includes the response format. There is no wasted wording or unnecessary detail.

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?

For a simple single-parameter read operation, the description is sufficiently complete: it identifies the input, the output format, and the key fields returned. Error behavior is not mentioned, but given the simplicity and strong annotations, this is a minor 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 has 100% coverage and already explains that 'id' is a UUID. The description adds no additional semantic meaning beyond repeating the ID reference, so the baseline score of 3 is appropriate.

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 and resource ('Fetch one watch by ID') and clarifies scope ('one watch') and key outputs ('baseline image URL and status'). This clearly distinguishes it from sibling tools like watch_list, which would fetch multiple watches.

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 clearly implies the tool is for retrieving a single watch by its ID, which is the correct context. It does not explicitly name alternatives or when-not-to-use, but the singular 'one watch by ID' provides adequate guidance.

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

watch_listList WatchesA
Read-onlyIdempotent
Inspect

List your watches (newest first), optionally filtered by status and paged. Returns { items, nextCursor }.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (1–100).
cursorNoPagination cursor from a previous nextCursor.
statusNoFilter by status.all
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds useful behavioral context: ordering ('newest first') and return shape ('Returns { items, nextCursor }'), but these are modest additions beyond what annotations convey.

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, front-loaded with the action verb 'List', and includes only essential details (ordering, filtering, pagination, return shape). No filler or redundancy.

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

Completeness5/5

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

For a simple list tool with robust annotations and full schema coverage, the description is complete. It specifies the return shape ({ items, nextCursor }) and pagination behavior, which is sufficient given no output schema. The sibling tool names provide additional context for differentiation.

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 has 100% description coverage, with all three parameters (limit, cursor, status) already explained. The description mentions 'filtered by status' and 'paged' but adds no extra meaning beyond the schema, so the baseline of 3 is appropriate.

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+resource construction: 'List your watches' with added scope ('newest first', 'optionally filtered by status and paged'). It clearly distinguishes itself from sibling tools like watch_get (single watch) and watch_runs.

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: listing watches with optional filtering and pagination. However, it does not explicitly mention alternatives or exclusions (e.g., 'for a single watch, use watch_get'), so it falls short of a 5.

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

watch_runRun Watch NowAInspect

Run an immediate check now (charges 1 credit). Returns the queued run; poll watch_runs for the result or receive a watch.changed webhook.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe watch ID (UUID).
Behavior5/5

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

Beyond the annotations (which only signal non-read-only, non-idempotent, non-destructive), the description discloses critical behaviors: the operation charges 1 credit, and it returns a 'queued run' rather than the final result, meaning the actual result must be obtained via polling or webhook. This async behavior and cost implication are essential and not present in annotations.

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 filler. It packs the action, cost, immediate return, and follow-up retrieval method into one concise statement.

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

Completeness5/5

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

For a one-parameter tool with no output schema, the description is complete: it explains what it does, what it returns (queued run), how to get the actual result (poll or webhook), and the cost. No important behavioral aspect is left unexplained.

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% with the id parameter well-described as 'The watch ID (UUID)'. The tool description does not add any additional parameter meaning, but given full schema coverage, the baseline of 3 is appropriate.

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 action: 'Run an immediate check now', identifying the specific resource (a watch run) and scope (immediate). It distinguishes itself from sibling tools by noting you must 'poll watch_runs for the result', which differentiates the triggering action from the retrieval action.

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 conveys clear usage context: this is for running an immediate on-demand check, as opposed to scheduled or automated runs. It also guides the next step by pointing to watch_runs or webhook for result retrieval, but it does not explicitly state when not to use this tool or name direct alternatives like watch_test.

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

watch_runsList Watch RunsA
Read-onlyIdempotent
Inspect

Read a watch's run history (newest first), paged. Each run includes changed, diffScore, and signed before/after/overlay image URLs. Returns { items, nextCursor }.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe watch ID (UUID).
limitNoPage size (1–100).
cursorNoPagination cursor from a previous nextCursor.
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe read operation. The description adds substantial context beyond the annotations: it specifies that runs are ordered newest-first, paged, and details the content of each run (changed, diffScore, signed image URLs) plus the response structure { items, nextCursor }. This provides a clear picture of behavior without contradicting the annotations.

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 three sentences, front-loaded with the core purpose, and includes only relevant details about content and response shape. No word is wasted.

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

Completeness5/5

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

For a read-only paginated list tool with no output schema, the description covers the essential return structure and element fields. It specifies ordering, paging, and the cursor mechanism. Given the richness of annotations and schema, this is 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?

The input schema documents all three parameters (id, limit, cursor) with descriptions, achieving 100% coverage. The description references pagination via the nextCursor return but does not add new meaning to the parameters beyond what the schema already provides. Thus the baseline of 3 for high schema coverage is appropriate.

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 the specific verb 'Read' to identify the operation, clearly specifies the resource as 'a watch's run history', and includes ordering and paging behavior. It distinguishes from siblings like watch_list (which likely lists watches) and watch_get (which gets a single watch) by focusing on run history.

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 does not explicitly state when to use this tool vs alternatives, nor provide any exclusions or alternative tool references. However, the function is clear from the description and sibling tool names, making usage context implied. There is no explicit guidance for selecting between watch_run, watch_get, and watch_runs.

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

watch_testTest Watch Config (dry-run)A
Read-only
Inspect

Dry-run a watch config BEFORE creating it — render the proposed config once and report what was captured + whether the page is reachable (and the text a text-watch would compare). Creates no watch, no baseline, no diff. Use this to validate a selector/scope/identity first. Returns JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe page to monitor (a schemeless host like 'rendex.dev/pricing' is upgraded to https).
nameNoOptional label for the watch.
pausedNoCreate the watch paused (no baseline capture or charge until resumed).
diffModeNoHow changes are detected. Default 'both' = a pixel diff (with a highlighted overlay) AND a FULL-PAGE text diff, alerting on either — catches any change, visual or text. 'visual' or 'text' narrow to one signal only.both
aiSummaryNoPro+ — attach a one-sentence AI 'what changed' summary to each detected change.
thresholdNoVisual sensitivity (0..1). Low (default 0.01) alerts on ANY change, including a small one on a long page (a changed-region test, not a whole-page pixel ratio). 0.06+ = only MAJOR visual changes (whole-page ratio). Text detection is unaffected.
webhookUrlNoStarter+ — HMAC-signed change-webhook target.
notifyEmailNoAny plan — send change alerts here. Must be your OWN account email (others are rejected). Defaults to it if omitted.
renderParamsNoRender knobs applied on every check (a subset of the screenshot capture params).
intervalMinutesNoCheck frequency in minutes. Minimum is your plan's floor — Free 1440 (daily), Basic 180, Starter 60, Pro 30, Enterprise 5.
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces this with 'Creates no watch, no baseline, no diff.' It adds behavioral details beyond annotations by specifying the report content: 'what was captured + whether the page is reachable (and the text a text-watch would compare).' No contradiction with annotations.

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 four sentences that front-load the purpose ('Dry-run a watch config BEFORE creating it'), then add critical side-effect information and usage guidance. It is concise, with no wasted words or repeated schema content.

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 tool has no output schema, so the description carries the burden of explaining return values. It covers key aspects: 'what was captured', 'whether the page is reachable', and 'the text a text-watch would compare', plus 'Returns JSON'. However, given the complexity (10 params, nested renderParams), a more explicit output structure or further details would make it more complete, but it is adequate for a dry-run validation tool.

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 baseline is 3. The description's mention of 'render the proposed config once' and 'text a text-watch would compare' loosely references renderParams and diffMode, but it does not add meaning beyond the schema's thorough per-parameter descriptions. The schema already documents all parameters in detail.

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's purpose: 'Dry-run a watch config BEFORE creating it'. It uses a specific verb ('dry-run') and resource ('watch config'), and distinguishes itself from siblings by explicitly stating 'Creates no watch, no baseline, no diff', which differentiates it from watch_create and watch_run.

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 gives clear usage context: 'BEFORE creating it' and 'Use this to validate a selector/scope/identity first.' It implies the alternative is actual creation, and the sibling list includes watch_create and watch_run, which helps disambiguate. However, it does not explicitly name alternatives or state when not to use it.

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

watch_updateUpdate WatchA
Idempotent
Inspect

Update a watch in place — pause/resume (paused), re-point (url), change schedule/diff/notify settings, or turn a channel off (webhookUrl/notifyEmail = null). Only the fields you send change; renderParams is deep-merged over the existing config. A scope change (url/selector/fullPage/size/device) re-baselines on the next check. Returns the updated watch as JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe watch ID (UUID) to update.
urlNoRe-point to a new URL (clears the baseline; the next check re-baselines).
nameNoRename the watch (null to clear).
pausedNotrue to pause the watch, false to resume.
diffModeNoChange what counts as a change.
aiSummaryNoPro+ — toggle the one-sentence AI 'what changed' summary on each detected change.
thresholdNoChange the visual-change noise floor (0..1).
webhookUrlNoStarter+ — set or replace the change-webhook target; null to turn it off.
notifyEmailNoSet the alert email (your account email only); null to turn it off.
renderParamsNoRender knobs to deep-merge over the existing capture config.
intervalMinutesNoNew check frequency in minutes (subject to your plan's floor).
Behavior4/5

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

Annotations establish readOnly=false, destructive=false, idempotent=true; the description adds meaningful behavioral details beyond that: renderParams deep-merge semantics, scope-change re-baselining, and null values disabling channels. This goes beyond what annotations provide.

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?

Three compact sentences; the first sentence front-loads the tool's purpose and key actions, the second clarifies update semantics, the third covers re-baselining and return value. No redundant content.

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?

For an 11-parameter tool with nested objects, the description covers the essential behavioral contract: partial update, merge behavior, re-baselining, and return type. It doesn't enumerate every parameter, but the schema already does; the description adds the higher-level logic needed to use the tool correctly.

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

Parameters4/5

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

The schema already documents all 11 parameters with 100% coverage. The description adds cross-cutting semantic context that the schema cannot: partial-update behavior ('Only the fields you send change'), deep-merge for renderParams, and the re-baseline trigger for scope-related params. This is a slight but real lift above the schema baseline.

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 verb ('Update') and resource ('a watch'), enumerating concrete update actions (pause/resume, re-point, change settings, turn off channels). This clearly distinguishes it from sibling tools like watch_create and watch_delete.

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 establishes it as the in-place modification tool for existing watches, with explicit semantics for partial updates ('Only the fields you send change'). It does not explicitly name alternative tools, but the 'in place' framing and update verb make the usage context unambiguous.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.