ChromaDB
Fornece aos assistentes de IA memória persistente usando armazenamento vetorial ChromaDB.
Documentação
ChromaDB MCP Server 🧠
Um servidor Model Context Protocol (MCP) que dá aos assistentes de IA memória persistente através do armazenamento vetorial ChromaDB. Agora com extração EXIF, Watch Folders e Detecção de Duplicatas - a ferramenta definitiva para criadores!
✨ Recursos
Principais
- Memória de IA Persistente: Seu assistente de IA lembra conversas e soluções passadas
- Busca Vetorial: Encontre padrões de código, configurações e documentação semelhantes instantaneamente
- Local Primeiro: Execute tudo no seu próprio hardware, sem dependências de nuvem
🚀 Processamento em Lote
- Ingestão Rápida em Lote: Processe diretórios inteiros em segundos (500+ arquivos)
- 77 Tipos de Arquivo: Fotos, CAD, documentos, arquivos de dados, código
- Carregamento/Descarregamento Rápido: Coleções temporárias para fluxos de trabalho rápidos
- Exportar/Importar: Backup e transferência de coleções como JSON
📸 Recursos de Fotos (NOVO na v3.0)
- Extração EXIF: Câmera, lente, exposição, localização GPS, data da foto
- Busca por Câmera: "Encontre fotos tiradas com minha Canon 5D"
- Busca por Localização: Coordenadas GPS incorporadas e pesquisáveis
- Busca por Data: "Encontre fotos das férias de 2024"
👁️ Watch Folders (NOVO na v3.0)
- Auto-Ingestão: Solte arquivos em pastas monitoradas, adicione automaticamente ao ChromaDB
- Mãos Livres: Perfeito para despejos de fotos recebidos, downloads
- Filtrar por Tipo: Monitore apenas tipos de arquivo específicos
🔍 Detecção de Duplicatas (NOVO na v3.0)
- Encontrar Duplicatas: Detecção baseada em hash em todos os diretórios
- Recuperar Espaço: Veja exatamente quanto espaço as duplicatas desperdiçam
- Comparar Arquivos: Verifique se dois arquivos são idênticos
- Hash Perceptual: Encontre imagens semelhantes (não apenas idênticas)
🚀 Início Rápido
Pré-requisitos
- Bun (runtime JavaScript)
- Docker (para ChromaDB)
- Claude Desktop (ou qualquer cliente MCP)
Instalação
-
Clone o repositório
git clone https://github.com//vespo92/chromadblocal-mcp-server.git cd chromadb-mcp-server -
Instale as dependências
bun install -
Inicie o ChromaDB
docker run -d \ --name chromadb-local \ -p 8001:8000 \ -v ~/chromadb-data:/chroma/chroma \ -e IS_PERSISTENT=TRUE \ chromadb/chroma:latest -
Inicialize as coleções
bun run setup -
Configure o Claude Desktop
Adicione ao
~/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" } } } } -
Reinicie o Claude Desktop e comece a construir sua base de conhecimento!
💬 Exemplos de Uso
Depois de configurado, interaja naturalmente com sua IA:
Armazenar Conhecimento
- "Armazene esta configuração Docker no ChromaDB para referência futura"
- "Salve este padrão de componente React com tags: hooks, autenticação"
- "Lembre desta solução para problemas de passagem de GPU"
Recuperar Informações
- "Pesquise no ChromaDB por exemplos assíncronos em Python"
- "Encontre padrões de componentes semelhantes a este"
- "Que soluções temos para problemas de rede Docker?"
Construir Contexto
- "Adicione esta documentação de API à coleção project_docs"
- "Armazene estes padrões de teste para nossa suíte de testes"
🚀 Processamento de Arquivos em Lote
O recurso matador! Processe quantidades massivas de arquivos instantaneamente para busca e recuperação com IA.
Fluxo de Trabalho de Carregamento Rápido (Mais Rápido)
Perfeito para fluxos de trabalho de "carregar, processar, 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 Arquivo Suportados
| Categoria | Extensões | Metadados Extraídos |
|---|---|---|
| Imagens | .jpg, .jpeg, .png, .heic, .raw, .cr2, .nef, .arw, .tiff, .gif, .webp | Dimensões, tamanho, formato |
| CAD | .stl, .obj, .dxf, .dwg, .step, .iges, .fbx, .blend, .skp, .scad | Vértices, faces, formato |
| Documentos | .pdf, .txt, .md, .doc, .docx, .rtf | Conteúdo de texto completo |
| Dados | .json, .yaml, .xml, .csv, .toml, .ini | Conteúdo analisado |
| Código | .js, .ts, .py, .go, .rs, .java, .cpp, .c, .php, .rb + 20 mais | Código-fonte completo |
Exemplos de Processamento em Lote
"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'"
Velocidade de Processamento
- Carregamento Rápido: ~200 arquivos em 2-3 segundos
- Ingestão em Lote: ~500 arquivos em 5-10 segundos (com metadados completos)
- Processamento Concorrente: 10-20 operações de arquivo em paralelo
- Sem dependências externas: Processamento puro em JavaScript/Bun
📚 Coleções Disponíveis
| Coleção | Descrição | Caso de Uso |
|---|---|---|
home_automation | Configurações e automações de casa inteligente | Home Assistant, scripts IoT |
code_snippets | Padrões de código reutilizáveis | Funções, hooks, utilitários |
configurations | Configurações de sistema e aplicativos | Docker, Kubernetes, serviços |
troubleshooting | Soluções de problemas | Correções, contornos, depuração |
project_docs | Documentação de projetos | APIs, arquitetura, guias |
learning_notes | Insights de aprendizado | Tutoriais, conceitos, anotações |
🛠️ Ferramentas MCP
search_context
Pesquise informações relevantes em todas as coleções
Parameters:
- query: Search query
- collection: (optional) Specific collection to search
- limit: (optional) Number of results
store_context
Armazene novas informações com metadados
Parameters:
- content: The content to store
- metadata: Tags, categories, descriptions
- collection: Target collection
list_collections
Liste todas as coleções disponíveis e seus metadados
find_similar_patterns
Encontre padrões de código semelhantes ao exemplo fornecido
Ferramentas de Processamento em Lote
scan_directory
Visualize arquivos em um diretório antes da ingestão
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
Ingestão em massa de arquivos no ChromaDB com metadados completos
Parameters:
- path: Source directory
- collection: Target collection name
- categories: File types to include
- max_files: Limit number of files
quick_load
🚀 RÁPIDO: Carregue arquivos rapidamente para processamento temporário
Parameters:
- path: Directory to load
- name: Collection name (auto-generated if omitted)
- categories: File types to include
unload_collection
Exclua uma coleção (limpeza após quick_load)
Parameters:
- collection: Name of collection to delete
export_collection
Exporte a coleção para arquivo JSON
Parameters:
- collection: Collection to export
- output_path: File path for JSON output
import_collection
Importe a coleção de arquivo JSON
Parameters:
- input_path: JSON file to import
- collection: Override collection name
- overwrite: Delete existing first (default: false)
get_collection_info
Obtenha estatísticas detalhadas sobre uma coleção
Parameters:
- collection: Collection name
ingest_file
Ingestão de um único arquivo com extração de metadados
Parameters:
- path: File to ingest
- collection: Target collection
list_file_types
Mostre todas as extensões de arquivo suportadas
Ferramentas EXIF e de Fotos
extract_exif
Extraia metadados EXIF detalhados de fotos
Parameters:
- path: Path to JPEG or TIFF image
Returns: Camera, lens, exposure, GPS, date taken
Ferramentas de Watch Folder
watch_folder
Inicie a auto-ingestão de novos arquivos de uma pasta
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
Pare de monitorar uma pasta
Parameters:
- path: Folder to stop watching
list_watchers
Liste todos os monitores de pasta ativos
Ferramentas de Detecção de Duplicatas
find_duplicates
Digitalize o diretório em busca de arquivos 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
Verifique se dois arquivos são duplicados
Parameters:
- file1: First file path
- file2: Second file path
find_collection_duplicates
Encontre entradas duplicadas em uma coleção ChromaDB
Parameters:
- collection: Collection name
🔧 Configuração
Variáveis de Ambiente
CHROMADB_URL=http://localhost:8001 # ChromaDB server URL
Coleções Personalizadas
Adicione novas coleções em setup-home-collections.js:
await createCollection('ml_experiments', {
description: 'Machine learning experiments and results'
});
📦 Estrutura do Projeto
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
🤝 Contribuição
Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request. Para mudanças significativas, abra uma issue primeiro para discutir o que você gostaria de alterar.
Veja CONTRIBUTING.md para mais detalhes.
📄 Licença
Este projeto é licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
🙏 Agradecimentos
- Anthropic pela especificação MCP
- Chroma pelo excelente banco de dados vetorial
- A comunidade open-source pela inspiração e apoio
🚀 O Que Vem a Seguir?
- ✅
Exportar/importar coleçõesCONCLUÍDO! - ✅
Processamento de arquivos em loteCONCLUÍDO! - ✅
Extração de metadados EXIFCONCLUÍDO na v3.0! - ✅
Watch folders / auto-ingestãoCONCLUÍDO na v3.0! - ✅
Detecção de duplicatasCONCLUÍDO na v3.0! - Recursos de sincronização em nuvem
- Suporte a múltiplos usuários
- Interface web para gerenciamento de coleções
- Descrições de imagens com IA (o que está na foto)
- Análise de impressão 3D (volume, estimativas de tempo)
Feito com ❤️ para a Comunidade Home AI