A Model Context Protocol server for PDF to image conversion and PDF manipulation operations
Server has 4 tools with complete input schemas and basic descriptions. However, descriptions are generic and lack actionable context for LLM selection. Parameter descriptions are minimal (e.g., 'Path to the PDF file' for pdf_path). No output schemas documented. Error handling is absent from visible code. Tool names follow verb_noun convention but lack specificity about side effects. No tool annotations (readOnlyHint/destructiveHint) despite clear WRITE vs READ_ONLY risk profiles.
Compress a PDF file to reduce its size
Get information about a PDF file
Extract a range of pages from a PDF into a new PDF file
Convert PDF pages to PNG or JPG images
No output schemas documented. LLMs cannot plan downstream calls or extract structured data from results.
Descriptions lack actionable context. 'Convert PDF pages to PNG or JPG images' does not explain when to use this vs pdf_split, what the output structure is, or what happens on error.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint). pdf_info is READ_ONLY; pdf_to_images, pdf_compress, pdf_split are WRITE. LLMs cannot distinguish safe from destructive operations.
Parameter descriptions are minimal. 'Path to the PDF file' does not specify format (absolute vs relative), validation rules, or error cases. 'DPI for rendering (default: 150)' lacks min/max bounds.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | <=2025-11-25 | v2 |
No error handling guidance in visible code. ExecuteTool returns generic errors; no recovery hints, categorization (retryable vs fatal), or actionable messages for LLM.