pdf-to-md-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PDF2MD_OCR_DPI | No | DPI used when rendering a page for OCR. Default is 200. | 200 |
| PDF2MD_OCR_LANG | No | Languages for Tesseract OCR (ISO 639-2 codes separated by '+'). Default is 'spa+eng'. | spa+eng |
| PDF2MD_MIN_CHARS_PER_PAGE | No | Threshold of extractable characters below which a page is reported as scanned in ocr_pages (informational only, does not trigger or prevent OCR). Default is 20. | 20 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| convert_pdf_to_markdownA | Convierte un PDF a un archivo Markdown (.md). Extrae texto y estructura (headers, listas, tablas simples) pagina por pagina. Las imagenes/diagramas incrustados se guardan en una carpeta aparte y se referencian desde el .md. Las paginas sin texto seleccionable (escaneos) se procesan con OCR (Tesseract) como fallback automatico. El .md generado arranca con un frontmatter YAML (title, author/
subject/keywords si el PDF los trae, pages, ocr_pages,
converted_at) que resume de que trata el documento, y cada pagina
queda delimitada por un comentario Args: pdf_path: Ruta al archivo .pdf a convertir output_dir: Carpeta donde escribir el .md y las imagenes (default: la misma carpeta del PDF de entrada) ocr_lang: Idioma(s) para Tesseract, formato ISO 639-2 separados por '+' (ej: "spa+eng"). Default: configurado en el server (PDF2MD_OCR_LANG, "spa+eng" si no esta seteado) Returns:
dict con |
| convert_pdf_directoryA | Convierte todos los PDF de una carpeta a archivos Markdown. Aplica la misma logica que convert_pdf_to_markdown a cada PDF
encontrado. Si un archivo puntual falla, se registra en Args: input_dir: Carpeta con los PDF a convertir output_dir: Carpeta base de salida (default: junto a cada PDF de origen). Si recursive=True, se replica la subcarpeta relativa de cada PDF dentro de output_dir recursive: Si busca PDFs en subcarpetas tambien (default: True) ocr_lang: Idioma(s) para Tesseract (ver convert_pdf_to_markdown) Returns:
dict con |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 2 tools
The two tools are clearly distinct: one converts a single PDF, the other batch-converts all PDFs in a directory. Descriptions reinforce the boundary with separate parameters and return shapes, so there is no realistic confusion.
Both tools share the convert_pdf_ prefix and are readable. The second name is slightly less parallel because it omits the explicit _to_markdown target, but the pattern is still predictable and clear.
With only two tools, the server is minimal but justified for a single-purpose PDF-to-Markdown converter. Each tool earns its place by covering both single-file and batch workflows, so the count is reasonable if slightly on the thin side.
The tool surface fully covers the server's stated purpose: individual conversion, directory batch conversion, recursive traversal, OCR fallback, and error handling. There are no obvious dead ends or missing operations that would block the intended workflow.