An MCP server for parsing PDF files from local paths or URLs, extracting text content, metadata, and detecting language
Three tools with minimal quality. read_local_pdf and read_pdf_url have bare-minimum descriptions (under 50 chars each) that lack context on when to use them, what they return, or error recovery. Schemas are present but parameters lack descriptions beyond the tool docstring. read_root is a utility endpoint with no clear purpose in a PDF parser. No output schemas documented. Error handling returns unstructured success/error objects without guidance for LLM recovery. No parameter validation, enums, or constraints. Naming is acceptable (verb_noun pattern) but descriptions fail the 20-char minimum quality bar.
Read text content from a local PDF file. Args-> path: local file path of the PDF File
Read text content from a PDF URL. Args-> url: Valid URL of the PDF.
Welcome endpoint returning a greeting message
Parameter descriptions missing. 'path' and 'url' parameters have no descriptions in the schema, only inline in docstring. LLMs cannot parse docstring text from JSON Schema.
Tool descriptions under 50 characters lack context. 'Read text content from a local PDF file' does not explain when to use this vs read_pdf_url, what format chunks are in, or what metadata is returned.
No output schema documented. Tools return {success, data/error} but LLMs do not know the structure of 'chunks' (array? strings?) or 'metadata' fields. Undocumented output forces LLMs to guess.
Error responses lack recovery guidance. Returning {success: false, error: string} gives LLMs no actionable next step. Should indicate: is this retryable? Should the user provide a different path/URL?
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | <=2025-11-25 | v2 |
read_root is a welcome endpoint with no clear purpose in a PDF parser tool suite. It does not parse PDFs and adds noise to the tool list.