Synthetic logistics document & photo dataset generator. Exposes document generation (PDF + PNG) and realistic photo variation creation as MCP tools.
This server has significant definition quality gaps. Tool names follow a consistent prefix convention (penquify_*) but lack action verbs that clearly convey intent. Schema definitions are present and structured correctly with types and descriptions, but parameter documentation is sparse and inconsistent. Five tools are registered with JSON Schema inputs, but descriptions for many parameters are minimal or missing entirely. Error handling is not evident from the code provided. The tools themselves operate on file I/O and document generation, which is reasonable, but the definitions would not enable an LLM to reliably determine when and how to use each tool without additional context. Output schemas are not explicitly documented.
Full pipeline: document data → PDF → realistic photos. Returns all file paths.
Generate a logistics document (PDF + PNG) from structured data. Returns file paths.
Generate realistic smartphone photos of a document image. Returns photo file paths.
List all available photo variation presets and camera models.
Convert natural language to a photo variation JSON config. Example: 'blurry photo with coffee stain taken from above'
Tool names lack clear action verbs. 'penquify_generate_document' would be clearer as 'generate_logistics_document'. 'penquify_text_to_config' is vague, does it generate a variation config? Parse text? The names do not clearly convey intent before the LLM reads the description.
Parameter descriptions are incomplete or missing for many fields. In penquify_generate_document, 'items' is documented as an array with sub-properties (description, qty, unit, unit_price), but the description does not explain what these represent, line items? Product SKUs? In penquify_generate_photos, 'presets' lacks a description of what presets are available or what they do. In penquify_generate_dataset, 'date' has format 'DD/MM/YYYY' in the description, but other parameters lack format guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
No output schemas documented. The tools return file paths or results, but the exact structure of the response is not specified in the tool definitions. LLMs cannot determine what fields to extract or how to chain results to subsequent tools.
penquify_list_presets has an empty input schema (no properties, no required fields). While this is technically valid for a tool that takes no inputs, the tool description does not explain what data it returns or how to use it in conjunction with other tools.
No error handling or recovery guidance visible in tool definitions. If doc_type is invalid, or image_path does not exist, or presets include unknown values, the definitions do not indicate what error messages the LLM should expect or how to recover.
Parameters that accept constrained values use free-form strings instead of enums. 'doc_type' defaults to 'guia_despacho' and mentions templates (guia_despacho, factura_sii, purchase_order, bill_of_lading) but is defined as type 'string' with no enum constraint. This invites the LLM to hallucinate invalid doc types. 'presets' in penquify_generate_photos is an array of strings with no enum or validation.
Composition: penquify_generate_document, penquify_generate_photos, and penquify_generate_dataset overlap in responsibility. The server offers both 'generate a document then generate photos' (penquify_generate_dataset) and separate tools (penquify_generate_document, penquify_generate_photos). This creates ambiguity for LLM planning. Additionally, penquify_text_to_config generates a config, but it is not clear how that config output chains into penquify_generate_photos (does it accept a 'variations' parameter? the tool definition does not mention this).
Date format inconsistency and lack of validation. penquify_generate_document specifies 'DD/MM/YYYY' format, but penquify_generate_dataset and penquify_generate_photos do not include format guidance for their date parameters. No regex pattern or constraint visible to validate input.