Skip to main content
Glama
jehiderpinto-hub

PDF Generator MCP Server

MCP Server — PDF Generator

Servidor MCP custom (Databricks App) para generar un documento PDF a partir de título/contenido y guardarlo en un volumen de Unity Catalog.

Tools expuestas

Todas las tools de este servidor están namespaced con el prefijo pdf_generator_ para evitar colisiones cuando un agente orquestador registra varios MCPs a la vez (ajuste reciente — antes se llamaban health, get_current_user, generate_pdf_to_volume sin prefijo, coincidiendo con los nombres de otros MCPs del mismo workspace).

Tool (nombre MCP)

Función Python

Descripción

pdf_generator_health

health()

Health check del servidor.

pdf_generator_get_current_user

get_current_user()

Usuario autenticado que llama al MCP (auth de usuario).

pdf_generator_generate_pdf_to_volume

generate_pdf_to_volume(title, content, ...)

Genera el PDF en memoria (ReportLab, con fallback sin dependencias) y lo sube a un volumen de UC.

Related MCP server: mcp-server-pdfnoodle

Modelo de autenticación

  • pdf_generator_get_current_user: usa get_user_authenticated_workspace_client() (identidad del usuario que llama).

  • pdf_generator_generate_pdf_to_volume: sube el PDF con get_workspace_client() (identidad de servicio de la app), porque escribir en el volumen se trata como una operación de sistema — ver comentario en server/tools.py::_upload_pdf_to_volume. El service principal de la app necesita permiso de escritura sobre el volumen destino.

Destino del PDF

Se puede indicar de tres formas (en orden de precedencia), resueltas en _normalize_volume_path:

  1. volume_path: ruta completa explícita (ej. /Volumes/cat/sch/vol/archivo.pdf).

  2. catalog + schema + volume (los tres juntos): la ruta se compone automáticamente.

  3. target_volume (o el default PDF_TARGET_VOLUME / /Volumes/sbx_migration_development/default/test_target_pdf_mcp): solo la carpeta, el nombre de archivo se genera con el título + timestamp si no se indica filename.

Correr localmente

cd src/apps/mcp_pdf_generator
./scripts/dev/start_server.sh
# equivalente manual: uv sync && uv run pdf-generator-mcp

Tests

cd src/apps/mcp_pdf_generator
uv run pytest

tests/test_generate_pdf.py mockea server.tools.requests.put y server.tools.utils.get_workspace_client — no hace llamadas reales al workspace.

Related MCP Connectors

Related MCP Servers