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

  1. Clonar el repositorio
git clone https://github.com/mehmetozcan-zz/KnowledgeBaseMCP.git
cd KnowledgeBaseMCP
  1. Instalar dependencias
pip install -r requirements.txt
  1. 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 documentos
  • recursive (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 documento
  • file_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 informe
  • file_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 valores
  • file_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 DataFrame
  • file_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 existente
  • sheet_name (cadena): Nombre de la hoja de destino
  • data (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 datos
  • file_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:

  1. Agrega la extensión del archivo a SUPPORTED_EXTENSIONS en extractors.py
  2. Instala la biblioteca requerida
  3. Agrega la verificación de la biblioteca a check_dependencies()
  4. Implementa el método de extracción (por ejemplo, _extract_xlsx())
  5. Agrega el manejo del formato a extract_from_file()

Depuración

Para depurar problemas de conexión MCP:

  1. Revisa los registros de Claude Desktop
  2. Asegúrate de que el servidor se inicie sin errores:
    python launch_mcp.py
    
  3. 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 DOCX
  • pdfplumber>=0.9.0 - Para procesamiento de archivos PDF
  • python-pptx>=0.6.23 - Para procesamiento de archivos PPTX
  • openpyxl>=3.1.0 - Para lectura/escritura de archivos XLSX
  • pandas>=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.

  1. Haz un fork del repositorio
  2. Crea tu rama de características (git checkout -b feature/AmazingFeature)
  3. Haz commit de tus cambios (git commit -m 'Add some AmazingFeature')
  4. Empuja a la rama (git push origin feature/AmazingFeature)
  5. Abre una Solicitud de Extracción

📄 Licencia

Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.

🙏 Agradecimientos

📞 Soporte

Si encuentras algún problema o tienes preguntas, abre un problema en GitHub.


Hecho con ❤️ para la comunidad de IA de Claude