ChromaDB

Proporciona a los asistentes de IA memoria persistente mediante almacenamiento vectorial de ChromaDB.

Documentación

Servidor MCP de ChromaDB 🧠

Un servidor de Model Context Protocol (MCP) que brinda a los asistentes de IA memoria persistente mediante el almacenamiento vectorial de ChromaDB. Ahora con extracción EXIF, Carpetas Vigiladas y Detección de Duplicados: ¡la herramienta definitiva para creadores!

MCP ChromaDB Bun Version

✨ Características

Núcleo

  • Memoria persistente de IA: Tu asistente de IA recuerda conversaciones y soluciones pasadas
  • Búsqueda vectorial: Encuentra patrones de código, configuraciones y documentación similares al instante
  • Primero local: Ejecuta todo en tu propio hardware, sin dependencias en la nube

🚀 Procesamiento por lotes

  • Ingesta rápida por lotes: Procesa directorios completos en segundos (más de 500 archivos)
  • 77 tipos de archivo: Fotos, CAD, documentos, archivos de datos, código
  • Carga/Descarga rápida: Colecciones temporales para flujos de trabajo ágiles
  • Exportar/Importar: Respalda y transfiere colecciones como JSON

📸 Funciones de fotos (NUEVO en v3.0)

  • Extracción EXIF: Cámara, lente, exposición, ubicación GPS, fecha de captura
  • Búsqueda por cámara: "Encuentra fotos tomadas con mi Canon 5D"
  • Búsqueda por ubicación: Coordenadas GPS integradas y buscables
  • Búsqueda por fecha: "Encuentra fotos de las vacaciones 2024"

👁️ Carpetas vigiladas (NUEVO en v3.0)

  • Auto-ingesta: Coloca archivos en carpetas vigiladas y se agregan automáticamente a ChromaDB
  • Sin intervención: Perfecto para descargas o volcados de fotos entrantes
  • Filtro por tipo: Vigila solo tipos de archivo específicos

🔍 Detección de duplicados (NUEVO en v3.0)

  • Encuentra duplicados: Detección basada en hash en todos los directorios
  • Recupera espacio: Ve exactamente cuánto espacio desperdician los duplicados
  • Compara archivos: Comprueba si dos archivos son idénticos
  • Hash perceptual: Encuentra imágenes similares (no solo idénticas)

🚀 Inicio rápido

Requisitos previos

Instalación

  1. Clona el repositorio

    git clone https://github.com//vespo92/chromadblocal-mcp-server.git
    cd chromadb-mcp-server
    
  2. Instala las dependencias

    bun install
    
  3. Inicia ChromaDB

    docker run -d \
      --name chromadb-local \
      -p 8001:8000 \
      -v ~/chromadb-data:/chroma/chroma \
      -e IS_PERSISTENT=TRUE \
      chromadb/chroma:latest
    
  4. Inicializa las colecciones

    bun run setup
    
  5. Configura Claude Desktop

    Agrega a ~/Library/Application Support/Claude/claude_desktop_config.json:

    {
      "mcpServers": {
        "chromadb-context": {
          "command": "bun",
          "args": ["run", "/path/to/chromadb-mcp-server/index.js"],
          "env": {
            "CHROMADB_URL": "http://localhost:8001"
          }
        }
      }
    }
    
  6. Reinicia Claude Desktop y ¡comienza a construir tu base de conocimiento!

💬 Ejemplos de uso

Una vez configurado, interactúa naturalmente con tu IA:

Almacenar conocimiento

  • "Guarda esta configuración de Docker en ChromaDB para referencia futura"
  • "Guarda este patrón de componente React con etiquetas: hooks, autenticación"
  • "Recuerda esta solución para problemas de paso de GPU"

Recuperar información

  • "Busca en ChromaDB ejemplos de async en Python"
  • "Encuentra patrones de componentes similares a este"
  • "¿Qué soluciones tenemos para problemas de redes Docker?"

Construir contexto

  • "Agrega esta documentación de API a la colección project_docs"
  • "Guarda estos patrones de prueba para nuestro conjunto de pruebas"

🚀 Procesamiento de archivos por lotes

¡La función estrella! Procesa cantidades masivas de archivos al instante para búsqueda y recuperación impulsadas por IA.

Flujo de trabajo de carga rápida (el más veloz)

Perfecto para flujos de trabajo de "cargar, procesar, descartar":

You: "Quick load my photos from /home/photos/vacation2024"
AI: Creates temp collection, ingests 500 photos in seconds
You: "Find photos with mountains or beaches"
AI: Returns matching photos with metadata
You: "Unload the collection"
AI: Cleans up, frees memory

Tipos de archivo compatibles

CategoríaExtensionesMetadatos extraídos
Imágenes.jpg, .jpeg, .png, .heic, .raw, .cr2, .nef, .arw, .tiff, .gif, .webpDimensiones, tamaño, formato
CAD.stl, .obj, .dxf, .dwg, .step, .iges, .fbx, .blend, .skp, .scadVértices, caras, formato
Documentos.pdf, .txt, .md, .doc, .docx, .rtfContenido de texto completo
Datos.json, .yaml, .xml, .csv, .toml, .iniContenido analizado
Código.js, .ts, .py, .go, .rs, .java, .cpp, .c, .php, .rb + 20 másCódigo fuente completo

Ejemplos de procesamiento por lotes

"Scan /projects/cad-files to see what's there"
"Batch ingest all STL files from /3d-prints into the 'print_library' collection"
"Quick load my Downloads folder, find anything mentioning 'invoice'"
"Export the photo_archive collection to backup.json"
"Import backup.json into a new collection called 'restored_photos'"

Velocidad de procesamiento

  • Carga rápida: ~200 archivos en 2-3 segundos
  • Ingesta por lotes: ~500 archivos en 5-10 segundos (con metadatos completos)
  • Procesamiento concurrente: 10-20 operaciones de archivos en paralelo
  • Sin dependencias externas: Procesamiento puro en JavaScript/Bun

📚 Colecciones disponibles

ColecciónDescripciónCaso de uso
home_automationConfiguraciones y automatizaciones de hogar inteligenteHome Assistant, scripts de IoT
code_snippetsPatrones de código reutilizablesFunciones, hooks, utilidades
configurationsConfiguraciones de sistema y aplicacionesDocker, Kubernetes, servicios
troubleshootingSoluciones a problemasCorrecciones, soluciones alternativas, depuración
project_docsDocumentación de proyectosAPIs, arquitectura, guías
learning_notesPerspectivas de aprendizajeTutoriales, conceptos, notas

🛠️ Herramientas MCP

search_context

Busca información relevante en todas las colecciones

Parameters:
- query: Search query
- collection: (optional) Specific collection to search
- limit: (optional) Number of results

store_context

Almacena nueva información con metadatos

Parameters:
- content: The content to store
- metadata: Tags, categories, descriptions
- collection: Target collection

list_collections

Lista todas las colecciones disponibles y sus metadatos

find_similar_patterns

Encuentra patrones de código similares al ejemplo proporcionado

Herramientas de procesamiento por lotes

scan_directory

Previsualiza archivos en un directorio antes de ingerirlos

Parameters:
- path: Directory to scan
- categories: Filter by type (images, cad, documents, data, code)
- extensions: Filter by extension (.jpg, .stl, etc.)
- recursive: Include subdirectories (default: true)

batch_ingest

Ingesta archivos por lotes en ChromaDB con metadatos completos

Parameters:
- path: Source directory
- collection: Target collection name
- categories: File types to include
- max_files: Limit number of files

quick_load

🚀 RÁPIDO: Carga archivos rápidamente para procesamiento temporal

Parameters:
- path: Directory to load
- name: Collection name (auto-generated if omitted)
- categories: File types to include

unload_collection

Elimina una colección (limpieza después de quick_load)

Parameters:
- collection: Name of collection to delete

export_collection

Exporta la colección a un archivo JSON

Parameters:
- collection: Collection to export
- output_path: File path for JSON output

import_collection

Importa la colección desde un archivo JSON

Parameters:
- input_path: JSON file to import
- collection: Override collection name
- overwrite: Delete existing first (default: false)

get_collection_info

Obtén estadísticas detalladas sobre una colección

Parameters:
- collection: Collection name

ingest_file

Ingesta un solo archivo con extracción de metadatos

Parameters:
- path: File to ingest
- collection: Target collection

list_file_types

Muestra todas las extensiones de archivo compatibles

Herramientas EXIF y de fotos

extract_exif

Extrae metadatos EXIF detallados de fotos

Parameters:
- path: Path to JPEG or TIFF image
Returns: Camera, lens, exposure, GPS, date taken

Herramientas de carpetas vigiladas

watch_folder

Inicia la auto-ingesta de nuevos archivos desde una carpeta

Parameters:
- path: Folder to watch
- collection: Target collection (default: auto_ingest)
- categories: File types to watch
- include_exif: Extract EXIF from photos (default: true)

stop_watch

Detiene la vigilancia de una carpeta

Parameters:
- path: Folder to stop watching

list_watchers

Lista todos los vigilantes de carpetas activos

Herramientas de detección de duplicados

find_duplicates

Escanea el directorio en busca de archivos duplicados

Parameters:
- path: Directory to scan
- hash_method: "partial" (fast), "full" (thorough), "perceptual" (images)
- categories: File types to check
Returns: Duplicate groups with wasted space info

compare_files

Comprueba si dos archivos son duplicados

Parameters:
- file1: First file path
- file2: Second file path

find_collection_duplicates

Encuentra entradas duplicadas en una colección de ChromaDB

Parameters:
- collection: Collection name

🔧 Configuración

Variables de entorno

CHROMADB_URL=http://localhost:8001  # ChromaDB server URL

Colecciones personalizadas

Agrega nuevas colecciones en setup-home-collections.js:

await createCollection('ml_experiments', {
  description: 'Machine learning experiments and results'
});

📦 Estructura del proyecto

chromadb-mcp-server/
├── index.js                    # MCP server with 22 tools
├── batch-processor.js          # Fast batch file processing engine
├── exif-extractor.js           # EXIF metadata extraction for photos
├── watch-folder.js             # Auto-ingest watch folder system
├── duplicate-detector.js       # Duplicate file detection
├── setup-home-collections.js   # Collection initialization
├── test-chromadb.js           # Connection test script
├── test-mcp.js                # MCP functionality test
├── test-batch-processor.js    # Batch processing tests
├── HOME-AI-SETUP.md           # Detailed setup guide
├── package.json               # Project dependencies
└── README.md                  # This file

🤝 Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviar un Pull Request. Para cambios importantes, abre primero un issue para discutir lo que te gustaría modificar.

Consulta CONTRIBUTING.md para más detalles.

📄 Licencia

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

🙏 Agradecimientos

  • Anthropic por la especificación MCP
  • Chroma por la excelente base de datos vectorial
  • La comunidad de código abierto por la inspiración y el apoyo

🚀 ¿Qué sigue?

  • ✅ Exportar/importar colecciones ¡HECHO!
  • ✅ Procesamiento de archivos por lotes ¡HECHO!
  • ✅ Extracción de metadatos EXIF ¡HECHO en v3.0!
  • ✅ Carpetas vigiladas / auto-ingesta ¡HECHO en v3.0!
  • ✅ Detección de duplicados ¡HECHO en v3.0!
  • Sincronización en la nube
  • Soporte multiusuario
  • Interfaz web para gestión de colecciones
  • Descripciones de imágenes impulsadas por IA (qué hay en la foto)
  • Análisis de impresión 3D (volumen, estimaciones de tiempo)

Construido con ❤️ para la Comunidad de IA en el Hogar