DocFiller
БесплатноНе проверенEnables generating PDFs from DOCX/ODT templates using MCP with support for OpenAI or local Ollama models.
Описание
Enables generating PDFs from DOCX/ODT templates using MCP with support for OpenAI or local Ollama models.
README
Sistema modular para rellenar plantillas DOCX/ODT y generar PDFs usando Model Context Protocol (MCP) con diferentes backends (OpenAI, Ollama local).
📁 Estructura del Proyecto
mcp-server/
├── mcp-sse/ # Servidor MCP puro (SSE transport)
├── mcp-adaptado/ # Streamlit + OpenAI
├── mcp-adaptado-ollama/ # Streamlit + Ollama (modelos locales)
└── requirements.txt # Dependencias compartidas
Cada módulo contiene:
server.py- Servidor MCPclient.py- Cliente MCPapp.py- Interfaz Streamlit (en mcp-adaptado y mcp-adaptado-ollama)templates/- Plantillas DOCX/ODT con variables$campo$outputs/- PDFs generadosresources/- Guías y documentación
🚀 Requisitos Previos
- Python 3.9+
- LibreOffice (para conversión a PDF)
- Windows:
choco install libreofficeo descargar desde https://www.libreoffice.org/ - macOS:
brew install libreoffice - Linux:
sudo apt install libreoffice
- Windows:
Opcional (según el módulo)
- OpenAI API key (para
mcp-adaptado) - Ollama (para
mcp-adaptado-ollama) - https://ollama.ai/
📦 Instalación
1. Clonar el repositorio y crear entorno virtual
# Clonar o descargar el proyecto
cd mcp-server
# Crear entorno virtual
python -m venv venv
# Activar entorno virtual
# En Windows:
venv\Scripts\activate
# En macOS/Linux:
source venv/bin/activate
2. Instalar dependencias
pip install -r requirements.txt
🎯 Uso por Módulo
opción 1: mcp-sse (Servidor MCP puro)
Servidor MCP que expone herramientas para rellenar plantillas y generar PDFs.
cd mcp-sse
# Ejecutar servidor
python server.py
El servidor expone las siguientes herramientas:
listar_variables_plantilla(template_path)- Listar variables de una plantillavalidar_datos_plantilla(datos, template_path)- Validar datosgenerar_pdf_desde_plantilla(output_pdf_path, datos, template_path)- Generar PDF
Ejemplo con cliente MCP:
from client import DocFillerClient
client = DocFillerClient("http://localhost:8000")
# Listar variables
variables = client.listar_variables_plantilla()
# Generar PDF
result = client.generar_pdf_desde_plantilla(
output_pdf_path="resultado.pdf",
datos={"nombre": "Juan", "fecha": "2026-06-17"}
)
Opción 2: mcp-adaptado (Streamlit + OpenAI)
Interfaz web completa con OpenAI como LLM.
Configuración
cd mcp-adaptado
# Crear archivo .env
cat > .env << EOF
OPENAI_API_KEY=sk-your-key-here
EOF
Ejecución
streamlit run app.py
Abre http://localhost:8501 en tu navegador.
Opción 3: mcp-adaptado-ollama (Streamlit + Ollama)
Interfaz web con modelos locales vía Ollama (privacidad total, sin APIs externas).
Configuración
Instalar Ollama:
- Descargar desde https://ollama.ai/
- Ejecutar:
ollama pull mistral(o tu modelo preferido)
Verificar que Ollama está corriendo:
ollama serve(En otra terminal)
Ejecución
cd mcp-adaptado-ollama
# Crear archivo .env (opcional)
cat > .env << EOF
OLLAMA_API_URL=http://localhost:11434
EOF
# Ejecutar app
streamlit run app.py
Abre http://localhost:8501 en tu navegador.
📋 Crear Plantillas
Las plantillas usan la sintaxis $VARIABLE$ para campos reemplazables.
Ejemplo DOCX
Nombre: $nombre$
Fecha: $fecha$
Total: $total$
Pasos
- Abre Word o LibreOffice
- Crea un documento con variables en formato
$campo_nombre$ - Guarda como
.docxo.odten[modulo]/templates/ - La herramienta detectará automáticamente las variables
Importante: Los nombres de variables deben ser:
- Alfanuméricos y guiones bajos:
[A-Za-z0-9_] - Sin espacios ni caracteres especiales
- Máximo 200 variables por plantilla
🔧 Configuración Avanzada
Variables de entorno
Crear .env en el directorio del módulo:
# Para mcp-adaptado
OPENAI_API_KEY=sk-...
OPENAI_MODEL=gpt-4o-mini # o tu modelo preferido
# Para mcp-adaptado-ollama
OLLAMA_API_URL=http://localhost:11434
OLLAMA_MODEL=mistral # o tu modelo
# Global
DEBUG=true
Límites configurables
En server.py:
MAX_TEMPLATE_MB- Tamaño máximo de plantilla (default: 20 MB)MAX_VARIABLES- Máximo de variables por plantilla (default: 200)LIBREOFFICE_TIMEOUT- Timeout de conversión (default: 60s)
🐛 Solución de Problemas
"LibreOffice no encontrado"
# Windows
choco install libreoffice
# macOS
brew install libreoffice
# Linux (Debian/Ubuntu)
sudo apt install libreoffice
Error de conversión a PDF
LibreOffice superó el límite de 60s
- Aumentar
LIBREOFFICE_TIMEOUTenserver.py - Verificar que LibreOffice no tiene otras instancias corriendo
Ollama no responde
# Verificar que está corriendo
ollama serve
# Descargar modelo si falta
ollama pull mistral
Port 8501 ya en uso (Streamlit)
streamlit run app.py --server.port 8502
📚 API Reference
Herramientas MCP
listar_variables_plantilla(template_path="")
Analiza una plantilla y devuelve sus variables.
Respuesta:
{
"estado": "exito",
"plantilla": "/ruta/a/plantilla.docx",
"formato": ".docx",
"variables": ["nombre", "fecha", "total"],
"total": 3
}
validar_datos_plantilla(datos, template_path="")
Valida que los datos cubran todas las variables.
Respuesta:
{
"estado": "exito",
"valido": true,
"variables_requeridas": ["nombre", "fecha"],
"faltantes": [],
"sobrantes": ["extra"],
"valores_vacios": []
}
generar_pdf_desde_plantilla(output_pdf_path, datos, template_path="")
Rellena la plantilla y genera un PDF.
Respuesta:
{
"estado": "exito",
"pdf": "/ruta/a/outputs/resultado.pdf",
"motor_conversion": "libreoffice",
"variables_sin_reemplazar": []
}
📄 Recursos
📝 Licencia
MIT - Libre para uso personal y comercial.
🤝 Soporte
Para issues o consultas, contactar al equipo de desarrollo.
Установка DocFiller
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/adriangonzalezIABD/mcp-serverFAQ
DocFiller MCP бесплатный?
Да, DocFiller MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для DocFiller?
Нет, DocFiller работает без API-ключей и переменных окружения.
DocFiller — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить DocFiller в Claude Desktop, Claude Code или Cursor?
Открой DocFiller на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
автор: modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
автор: xuzexin-hzCompare DocFiller with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории ai
