Skip to main content
Glama

Verify a print document

fullbleed_verify
DestructiveIdempotent

Validate HTML/CSS by rendering through the checks and return structured diagnostics for overflow, missing glyphs, or font substitution before PDF delivery.

Instructions

Render HTML/CSS through Fullbleed's validation path and return structured diagnostics and failures before delivery. Supply exactly one of html or html_path and select fail_on checks explicitly. Use fullbleed_inspect for an existing PDF. Internal checks do not establish independent standards conformance.

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.
fail_onNoFailure checks to run: overflow, missing-glyphs, or font-subst. Defaults to none. The budget value requires budget limits available through the CLI, which this tool does not expose.
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.
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.
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'.
emit_pdf_pathNoOptional destination PDF under the MCP workspace root; creates parent directories and replaces an existing file. Omit to return diagnostics without saving the PDF.
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. Changed21 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."
    • addedInput schema / properties / emit_pdf_path / description
      Added value: +"Optional destination PDF under the MCP workspace root; creates parent directories and replaces an existing file. Omit to return diagnostics without saving the PDF."
    • addedInput schema / properties / fail_on / description
      Added value: +"Failure checks to run: overflow, missing-glyphs, or font-subst. Defaults to none. The budget value requires budget limits available through the CLI, which this tool does not expose."
    • 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 / 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_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/5.0
Behavior4/5

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

Annotations declare destructiveHint=true and readOnlyHint=false; the description does not contradict these, but it also fails to explain the destructive nature (e.g., emit_pdf_path replacing files). It does add valuable context that JavaScript is not executed, internal checks do not establish independent standards conformance, and budget checks require the CLI, which are not inferable from 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?

Three sentences, front-loaded with the core action and output, then usage constraints, then a critical scope caveat. No redundancy, 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?

For a complex tool with 17 parameters, nested schema, and an output schema, the description covers the main entry points (html/html_path exclusivity, fail_on, alternative tool) and a key behavioral caveat. It omits guidance on the many PDF export parameters (pdf_profile, emit_pdf_path, document metadata), which are left to the exhaustive schema, but the output schema exists so return values need not be explained.

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 all 17 parameters, including the fail_on enum and pdf_vt_job hierarchy. The description mentions selecting fail_on explicitly but adds no syntax or format details beyond the schema, so it earns the baseline 3.

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?

States a specific verb+resource: renders HTML/CSS through the validation path and returns diagnostics/failures before delivery. It distinguishes from fullbleed_inspect by name, but does not clarify how it differs from the render siblings (fullbleed_render, fullbleed_render_preview, fullbleed_render_compiled), which is a missed routing opportunity.

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?

Provides concrete usage conditions: supply exactly one of html or html_path, select fail_on checks explicitly, and use fullbleed_inspect for existing PDFs. It lacks 'when not to use' beyond that single alternative, so it doesn't fully meet the 5-level bar of explicit alternatives and exclusions.

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