KnowledgeBaseMCP
Extraer contenido de texto de archivos PDF, DOCX y PPTX locales para construir una base de conocimiento.
Documentación
KnowledgeBaseMCP
Un potente servidor de Protocolo de Contexto de Modelo (MCP) para extraer contenido de texto de varios formatos de documentos, incluidos archivos PDF, DOCX, PPTX y XLSX. Esta herramienta permite que asistentes de IA como Claude lean y analicen el contenido de documentos de tu base de conocimiento local, y también creen nuevas hojas de cálculo de Excel.
🚀 Características
Lectura de Documentos
- Soporte multi-formato: Extrae texto de archivos PDF, DOCX, PPTX y XLSX
- Procesamiento de directorios: Procesa directorios completos de documentos
- Escaneo recursivo: Opcionalmente, busca en subdirectorios
- Metadatos de archivos: Obtén información detallada sobre archivos de documentos
- Manejo de errores: Manejo robusto de errores con mensajes claros
- Procesamiento asíncrono: Procesamiento eficiente y asíncrono de documentos
Creación de Hojas de Cálculo de Excel
- Creación de libros de trabajo XLSX: Crea archivos de Excel con múltiples hojas
- Soporte de DataFrames: Convierte DataFrames de pandas a Excel
- Formato de datos: Aplica formato y estilo profesional
- Generación de informes: Crea informes estructurados con resúmenes
- Anexado de datos: Agrega datos a archivos de Excel existentes
- Soporte de plantillas: Usa plantillas predefinidas para un formato consistente
Integración
- Integración fácil: Configuración simple con Claude Desktop
- Protocolo MCP: Construido sobre el estándar de Protocolo de Contexto de Modelo
📁 Tipos de Archivos Soportados
Soporte de Lectura
- PDF (.pdf) - Formato de Documento Portátil (usando pdfplumber)
- DOCX (.docx) - Documentos de Microsoft Word
- PPTX (.pptx) - Presentaciones de Microsoft PowerPoint
- XLSX (.xlsx) - Hojas de cálculo de Microsoft Excel (usando openpyxl y pandas)
Soporte de Escritura
- DOCX (.docx) - Crea documentos de Word con formato
- XLSX (.xlsx) - Crea libros de trabajo de Excel con múltiples hojas, formato y gráficos
🛠️ Instalación
Requisitos previos
- Python 3.8 o superior
- Aplicación Claude Desktop
Configuración
- Clonar el repositorio
git clone https://github.com/mehmetozcan-zz/KnowledgeBaseMCP.git
cd KnowledgeBaseMCP
- Instalar dependencias
pip install -r requirements.txt
- Probar el servidor
python test.py
⚙️ Configuración
Integración con Claude Desktop
Agrega este servidor a tu archivo de configuración de Claude Desktop:
Windows: %APPDATA%\\Claude\\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"knowledgebase": {
"command": "python",
"args": ["path/to/KnowledgeBaseMCP/launch_mcp.py"]
}
}
}
Reemplaza path/to/KnowledgeBaseMCP con tu ruta de instalación real.
🎯 Uso
Una vez configurado, puedes usar estas herramientas en Claude:
Herramientas Disponibles
Herramientas de Lectura de Documentos
extract_text_from_file
Extrae contenido de texto de un solo archivo de documento.
Parámetros:
file_path(cadena): Ruta al archivo de documento
extract_text_from_directory
Extrae contenido de texto de todos los documentos compatibles en un directorio.
Parámetros:
directory_path(cadena): Ruta al directorio que contiene documentosrecursive(booleano, opcional): Si se deben buscar subdirectorios de forma recursiva
list_supported_files
Lista todos los archivos de documentos compatibles en un directorio con metadatos.
Parámetros:
directory_path(cadena): Ruta al directorio a escanear
Herramientas de Creación de DOCX
create_docx_document
Crea un nuevo documento de Word con contenido de texto.
Parámetros:
content(cadena): Contenido del documentofile_path(cadena): Ruta del archivo de salida (extensión .docx)title(cadena, opcional): Título del documento
create_structured_report
Crea un informe de Word estructurado con formato.
Parámetros:
report_data(objeto): Estructura de datos del informefile_path(cadena): Ruta del archivo de salida (extensión .docx)
Herramientas de Creación de XLSX
create_xlsx_workbook
Crea un nuevo libro de trabajo de Excel con múltiples hojas.
Parámetros:
data(objeto): Diccionario con nombres de hojas como claves y datos como valoresfile_path(cadena): Ruta del archivo de salida (extensión .xlsx)apply_formatting(booleano, opcional): Aplicar formato predeterminado
create_xlsx_from_dataframe
Crea un libro de trabajo de Excel a partir de DataFrames de pandas.
Parámetros:
dataframes(objeto): Diccionario con nombres de hojas y datos de DataFramefile_path(cadena): Ruta del archivo de salida (extensión .xlsx)include_index(booleano, opcional): Incluir índice del DataFrame
append_to_xlsx
Agrega datos a un libro de trabajo de Excel existente.
Parámetros:
file_path(cadena): Ruta al archivo XLSX existentesheet_name(cadena): Nombre de la hoja de destinodata(cualquiera): Datos a agregar (lista, diccionario o DataFrame)
create_xlsx_report
Crea un informe de Excel con formato y múltiples secciones.
Parámetros:
report_data(objeto): Estructura del informe con título, descripción y secciones de datosfile_path(cadena): Ruta del archivo de salida (extensión .xlsx)
Ejemplo de Uso en Claude
Lectura de Documentos
Please analyze all the documents in my Documents/Reports folder using your KnowledgeBaseMCP tools.
Creación de Informes de Excel
Create an Excel report with sales data for Q1 2025. Include a summary sheet and detailed transaction data.
Análisis de Datos y Exportación
Read the data from 'financial_report.xlsx' and create a new Excel file with a summary analysis.
Conversión de Documentos
Extract content from all PDF files in my research folder and create a consolidated Excel workbook with the findings.
Claude usará entonces el servidor MCP para extraer y analizar el contenido de tus documentos o crear nuevos archivos de Excel según lo solicitado.
🏗️ Estructura del Proyecto
KnowledgeBaseMCP/
├── src/
│ ├── __init__.py # Package initialization
│ ├── main.py # Main MCP server
│ ├── extractors.py # Document reading classes
│ ├── docx_writer.py # Word document creation
│ └── xlsx_writer.py # Excel spreadsheet creation
├── requirements.txt # Python dependencies
├── setup.py # Package setup
├── README.md # This file
├── LICENSE # MIT License
├── launch_mcp.py # Server launcher
├── run_server.py # Alternative launcher
├── test.py # Basic test script
└── test_xlsx.py # XLSX functionality tests
🔧 Desarrollo
Ejecución de Pruebas
python test.py
Agregar Nuevos Formatos de Archivo
Para agregar soporte para formatos de documentos adicionales:
- Agrega la extensión del archivo a
SUPPORTED_EXTENSIONSenextractors.py - Instala la biblioteca requerida
- Agrega la verificación de la biblioteca a
check_dependencies() - Implementa el método de extracción (por ejemplo,
_extract_xlsx()) - Agrega el manejo del formato a
extract_from_file()
Depuración
Para depurar problemas de conexión MCP:
- Revisa los registros de Claude Desktop
- Asegúrate de que el servidor se inicie sin errores:
python launch_mcp.py - Verifica la ruta y el formato del archivo de configuración
📦 Dependencias
Dependencias Principales
mcp>=0.9.0- Marco de Protocolo de Contexto de Modelo
Lectura de Documentos
python-docx>=1.1.0- Para procesamiento de archivos DOCXpdfplumber>=0.9.0- Para procesamiento de archivos PDFpython-pptx>=0.6.23- Para procesamiento de archivos PPTXopenpyxl>=3.1.0- Para lectura/escritura de archivos XLSXpandas>=2.0.0- Para manipulación y análisis avanzado de datos
Adicionales
lxml>=4.9.0- Soporte de procesamiento XML
🤝 Contribuciones
¡Las contribuciones son bienvenidas! No dudes en enviar solicitudes de extracción o abrir problemas.
- Haz un fork del repositorio
- Crea tu rama de características (
git checkout -b feature/AmazingFeature) - Haz commit de tus cambios (
git commit -m 'Add some AmazingFeature') - Empuja a la rama (
git push origin feature/AmazingFeature) - Abre una Solicitud de Extracción
📄 Licencia
Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.
🙏 Agradecimientos
- Construido con el Protocolo de Contexto de Modelo
- Usa pdfplumber para procesamiento de PDF
- Usa python-docx para documentos de Word
- Usa python-pptx para presentaciones de PowerPoint
📞 Soporte
Si encuentras algún problema o tienes preguntas, abre un problema en GitHub.
Hecho con ❤️ para la comunidad de IA de Claude