Skip to main content
Glama

images_to_pdf

Idempotent

Convert JPEG, PNG, TIFF, BMP, GIF, or WEBP files into a PDF with one page per image, applying EXIF orientation and optional clockwise rotations while preserving image bytes.

Instructions

One PDF page per image (JPEG, PNG, TIFF, BMP, GIF, WEBP). JPEGs are embedded byte-for-byte; EXIF orientation and the optional clockwise rotations are applied by page placement, never by re-encoding. The report checks bytes or pixels (colour and alpha separately) and orientation. [docbridge schema 0.2.4]

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
detailNosummary: report_summary + report_id (get_report has the rest). full: the whole report inline.summary
inputsYes
overwriteNo
page_sizeNoimage
rotationsNoClockwise degrees, one per image.
output_pathYesAbsolute file path.
report_pathNo
max_differencesNoDifferences kept in the full report; the rest are counted.
apply_exif_orientationNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
toolYes
errorNo
reportNoThe full report. Over MCP only with detail='full'.
outputsNo
report_idNoPass to get_report for the full report (held for this server session).
disclaimerNodocbridge never alters, summarizes or silently truncates source evidence. docbridge reports what it compared. PASS on an axis covers only that axis's stated scope; NOT_CHECKED and UNSUPPORTED are never passes. PDF text is the text layer as PyMuPDF decodes it, not the rendered glyphs. Nothing here interprets meaning: numbers are compared as characters, not as values.
report_pathNo
report_summaryNo
schema_versionYes
conversion_notesNo
operation_completedYesThe operation ran and wrote its outputs. Says NOTHING about fidelity: read the report status.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.4

TDQS

A3.9/5.0
Behavior4/5

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

With only weak annotations (readOnly=false, idempotent=true, destructive=false), the description carries most of the load and does so well: JPEGs are embedded byte-for-byte, EXIF orientation and rotations are applied at page-placement time rather than by re-encoding, and the report verifies bytes or pixels (colour and alpha separately) plus orientation. It still omits what happens when output_path already exists with overwrite=false and whether report_path is always written.

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?

Three dense, front-loaded sentences: the page-per-image rule and format list come first, followed by encoding guarantees and report checking. Only the trailing '[docbridge schema 0.2.4]' tag is dispensable noise.

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?

An output schema exists, so return values need not be explained; the description focuses usefully on conversion fidelity and report content. Remaining gaps are the page_size and overwrite semantics and the role of report_path, which an agent would need to inspect the schema for.

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 only 44% across 9 parameters. The description meaningfully clarifies rotations (clockwise, applied by page placement, not re-encoding) and EXIF orientation behavior, but says nothing about page_size, overwrite, report_path, or how detail interacts with get_report, so it only partially compensates for the coverage gap.

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 precise verb+resource: build a PDF with one page per image, and enumerates the accepted input formats (JPEG, PNG, TIFF, BMP, GIF, WEBP). No sibling in the list does image-to-PDF conversion, so an agent can immediately distinguish this tool from pdf_merge, docx_to_markdown, etc.

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?

Usage is only implied by the operation itself (you have images and want a PDF). There is no explicit when-to-use vs. when-not guidance, no mention of prerequisites, and no pointer to related tools such as validate_conversion or document_compare for verifying the produced PDF.

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