Skip to main content
Glama

Render a PDF and page previews

fullbleed_render_preview
DestructiveIdempotent

Render a PDF plus PNG page previews to visually inspect document changes, returning artifact paths for review.

Instructions

Render a PDF plus PNG page previews for visual inspection after document changes; returns their artifact paths. Supply exactly one of html or html_path. Use fullbleed_render for PDF-only output and fullbleed_verify for explicit failure checks.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cssNoOptional inline CSS, applied before css_paths. Use @page for print page size and margins.
htmlNoInline static HTML or SVG markup. Supply exactly one of html and html_path; JavaScript is not executed.
pdf_nameNoSingle PDF filename within output_dir, without directory components; defaults to preview.pdf.preview.pdf
css_pathsNoExisting UTF-8 CSS files under the MCP workspace root, read in array order after inline css. Relative paths are resolved from the server's --root.
html_pathNoExisting UTF-8 HTML or SVG file under the MCP workspace root. Relative to the server's --root. Supply exactly one of html and html_path.
image_dpiNoPNG preview resolution in dots per inch; defaults to 144. Higher values increase image dimensions and rendering cost without changing PDF page geometry.
font_pathsNoExisting embeddable font files under the MCP workspace root. Register these fonts before rendering; do not rely on system fonts. Relative paths are resolved from the server's --root.
output_dirYesDestination directory under the MCP workspace root. Writes pdf_name here and per-page PNGs in its pages subdirectory; directories are created as needed and matching files replaced.
pdf_vt_jobNoOptional Job/Record/Document hierarchy and private Fullbleed DPM for pdf_profile='pdfvt1'. Omit records to generate one record and document per input, compiled copy, or binding row.
pdf_profileNoPDF export profile; omitted means ordinary PDF. Read fullbleed_capabilities.pdf_profile_catalog for names and font, ICC, title, and timestamp requirements. This is separate from the render tool's dev/preflight/prod preset.
document_langNoDocument language for PDF metadata, as a BCP-47 tag such as 'en-US'.
document_titleNoHuman-readable title stored in PDF metadata. Required for pdfx4 and pdfvt1 output.
allow_fallbacksNoAllow missing-glyph and font-substitution signals without failing those selected fail_on checks. Does not enable a browser fallback or fetch fonts.
document_timestampNoPDF write date: UTC YYYY-MM-DDTHH:MM:SSZ, 'current', or 'source-date-epoch' (reads SOURCE_DATE_EPOCH). Required for pdfx4 and pdfvt1. Resolved once per engine; use an explicit value for repeatable output.
output_intent_infoNoOptional human-readable description of the output condition. Requires output_intent_icc_path.
output_intent_icc_pathNoExisting ICC profile file under the MCP workspace root, used as the PDF output intent. Required by PDF/A, PDF/X, and PDF/VT profiles.
output_intent_componentsNoICC color-component count: 1 for gray, 3 for RGB, 4 for CMYK. Defaults to 3 and must match the profile supplied by output_intent_icc_path.
output_intent_identifierNoNonblank output-condition identifier for the ICC output intent; defaults to 'Custom'. Requires output_intent_icc_path.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed22 schema fields changedv2.5.2
    • addedInput schema / properties / allow_fallbacks / description
      Added value: +"Allow missing-glyph and font-substitution signals without failing those selected fail_on checks. Does not enable a browser fallback or fetch fonts."
    • changedInput schema / properties / css / description
      Previous value: -"Inline CSS."New value: +"Optional inline CSS, applied before css_paths. Use @page for print page size and margins."
    • changedInput schema / properties / css_paths / description
      Previous value: -"Workspace-relative CSS paths."New value: +"Existing UTF-8 CSS files under the MCP workspace root, read in array order after inline css. Relative paths are resolved from the server's --root."
    • addedInput schema / properties / document_lang / description
      Added value: +"Document language for PDF metadata, as a BCP-47 tag such as 'en-US'."
    • changedInput schema / properties / document_timestamp / description
      Previous value: -"UTC job write date YYYY-MM-DDTHH:MM:SSZ, current, or source-date-epoch. Resolved once when the engine is created."New value: +"PDF write date: UTC YYYY-MM-DDTHH:MM:SSZ, 'current', or 'source-date-epoch' (reads SOURCE_DATE_EPOCH). Required for pdfx4 and pdfvt1. Resolved once per engine; use an explicit value for repeatable output."
    • addedInput schema / properties / document_title / description
      Added value: +"Human-readable title stored in PDF metadata. Required for pdfx4 and pdfvt1 output."
    • changedInput schema / properties / font_paths / description
      Previous value: -"Workspace-relative embeddable font paths."New value: +"Existing embeddable font files under the MCP workspace root. Register these fonts before rendering; do not rely on system fonts. Relative paths are resolved from the server's --root."
    • changedInput schema / properties / html / description
      Previous value: -"Inline HTML or SVG markup."New value: +"Inline static HTML or SVG markup. Supply exactly one of html and html_path; JavaScript is not executed."
    • changedInput schema / properties / html_path / description
      Previous value: -"Workspace-relative HTML or SVG path."New value: +"Existing UTF-8 HTML or SVG file under the MCP workspace root. Relative to the server's --root. Supply exactly one of html and html_path."
    • addedInput schema / properties / image_dpi / description
      Added value: +"PNG preview resolution in dots per inch; defaults to 144. Higher values increase image dimensions and rendering cost without changing PDF page geometry."
    • addedInput schema / properties / output_dir / description
      Added value: +"Destination directory under the MCP workspace root. Writes pdf_name here and per-page PNGs in its pages subdirectory; directories are created as needed and matching files replaced."
    • addedInput schema / properties / output_intent_components / description
      Added value: +"ICC color-component count: 1 for gray, 3 for RGB, 4 for CMYK. Defaults to 3 and must match the profile supplied by output_intent_icc_path."
    • changedInput schema / properties / output_intent_icc_path / description
      Previous value: -"Workspace-relative ICC profile path."New value: +"Existing ICC profile file under the MCP workspace root, used as the PDF output intent. Required by PDF/A, PDF/X, and PDF/VT profiles."
    • addedInput schema / properties / output_intent_identifier / description
      Added value: +"Nonblank output-condition identifier for the ICC output intent; defaults to 'Custom'. Requires output_intent_icc_path."
    • addedInput schema / properties / output_intent_info / description
      Added value: +"Optional human-readable description of the output condition. Requires output_intent_icc_path."
    • addedInput schema / properties / pdf_name / description
      Added value: +"Single PDF filename within output_dir, without directory components; defaults to preview.pdf."
    • addedInput schema / properties / pdf_profile / description
      Added value: +"PDF export profile; omitted means ordinary PDF. Read fullbleed_capabilities.pdf_profile_catalog for names and font, ICC, title, and timestamp requirements. This is separate from the render tool's dev/preflight/prod preset."
    • addedInput schema / properties / pdf_vt_job / description
      Added value: +"Optional Job/Record/Document hierarchy and private Fullbleed DPM for pdf_profile='pdfvt1'. Omit records to generate one record and document per input, compiled copy, or binding row."
    • addedInput schema / properties / pdf_vt_job / properties / id / description
      Added value: +"Nonblank part identifier, at most 4096 UTF-8 bytes. Record IDs must be unique in the job; document IDs must be unique within their record."
    • addedInput schema / properties / pdf_vt_job / properties / records / items / properties / documents / description
      Added value: +"Ordered documents in this record. Each consumes one input document, compiled copy, or binding row; final pagination supplies its page range."
    • addedInput schema / properties / pdf_vt_job / properties / records / items / properties / documents / items / properties / id / description
      Added value: +"Nonblank part identifier, at most 4096 UTF-8 bytes. Record IDs must be unique in the job; document IDs must be unique within their record."
    • addedInput schema / properties / pdf_vt_job / properties / records / items / properties / id / description
      Added value: +"Nonblank part identifier, at most 4096 UTF-8 bytes. Record IDs must be unique in the job; document IDs must be unique within their record."
  2. First observed

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false and openWorldHint=false, so the write/overwrite safety profile is covered by structured data. The description adds that artifacts are paths returned and frames this as a post-change visual check, but does not elaborate on which files get replaced or how outputs are named (that detail lives only in the output_dir schema). With annotations carrying the risk profile, a 3 is appropriate.

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 tight clauses with zero filler, front-loaded on purpose and output, followed by the input constraint, then sibling routing. Every sentence 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?

With an output schema present and a fully documented schema, the description needn't explain return values or parameter mechanics, and it correctly focuses on purpose and routing. It is slightly thin on the destructive-replace behavior mentioned only in the output_dir schema, but that is a minor gap given the annotation coverage.

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% across all 18 parameters, so the schema already documents every argument in detail (dpi bounds, font registration, ICC/output-intent requirements, etc.). The description adds the 'supply exactly one of html or html_path' constraint, but that is already stated in both parameter descriptions, so it is repetition. Baseline 3 applies when the schema does the heavy lifting.

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 gives a specific verb+resource (render a PDF plus PNG page previews) and even states the return shape ('returns their artifact paths'). It explicitly distinguishes itself from two siblings, fullbleed_render and fullbleed_verify, so an agent can select it without opening any schema.

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?

It states the context of use ('after document changes; for visual inspection') and names both alternatives with the condition that selects them: fullbleed_render for PDF-only output, fullbleed_verify for explicit failure checks. It also states the one-of constraint on html/html_path, removing ambiguity.

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