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!
✨ 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
- Bun (entorno de ejecución de JavaScript)
- Docker (para ChromaDB)
- Claude Desktop (o cualquier cliente MCP)
Instalación
-
Clona el repositorio
git clone https://github.com//vespo92/chromadblocal-mcp-server.git cd chromadb-mcp-server -
Instala las dependencias
bun install -
Inicia ChromaDB
docker run -d \ --name chromadb-local \ -p 8001:8000 \ -v ~/chromadb-data:/chroma/chroma \ -e IS_PERSISTENT=TRUE \ chromadb/chroma:latest -
Inicializa las colecciones
bun run setup -
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" } } } } -
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ía | Extensiones | Metadatos extraídos |
|---|---|---|
| Imágenes | .jpg, .jpeg, .png, .heic, .raw, .cr2, .nef, .arw, .tiff, .gif, .webp | Dimensiones, tamaño, formato |
| CAD | .stl, .obj, .dxf, .dwg, .step, .iges, .fbx, .blend, .skp, .scad | Vértices, caras, formato |
| Documentos | .pdf, .txt, .md, .doc, .docx, .rtf | Contenido de texto completo |
| Datos | .json, .yaml, .xml, .csv, .toml, .ini | Contenido analizado |
| Código | .js, .ts, .py, .go, .rs, .java, .cpp, .c, .php, .rb + 20 más | Có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ón | Descripción | Caso de uso |
|---|---|---|
home_automation | Configuraciones y automatizaciones de hogar inteligente | Home Assistant, scripts de IoT |
code_snippets | Patrones de código reutilizables | Funciones, hooks, utilidades |
configurations | Configuraciones de sistema y aplicaciones | Docker, Kubernetes, servicios |
troubleshooting | Soluciones a problemas | Correcciones, soluciones alternativas, depuración |
project_docs | Documentación de proyectos | APIs, arquitectura, guías |
learning_notes | Perspectivas de aprendizaje | Tutoriales, 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