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!

MCP ChromaDB Bun Version

✨ 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

Instalação

  1. Clone o repositório

    git clone https://github.com//vespo92/chromadblocal-mcp-server.git
    cd chromadb-mcp-server
    
  2. Instale as dependências

    bun install
    
  3. Inicie o ChromaDB

    docker run -d \
      --name chromadb-local \
      -p 8001:8000 \
      -v ~/chromadb-data:/chroma/chroma \
      -e IS_PERSISTENT=TRUE \
      chromadb/chroma:latest
    
  4. Inicialize as coleções

    bun run setup
    
  5. 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"
          }
        }
      }
    }
    
  6. 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

CategoriaExtensõesMetadados Extraídos
Imagens.jpg, .jpeg, .png, .heic, .raw, .cr2, .nef, .arw, .tiff, .gif, .webpDimensões, tamanho, formato
CAD.stl, .obj, .dxf, .dwg, .step, .iges, .fbx, .blend, .skp, .scadVértices, faces, formato
Documentos.pdf, .txt, .md, .doc, .docx, .rtfConteúdo de texto completo
Dados.json, .yaml, .xml, .csv, .toml, .iniConteúdo analisado
Código.js, .ts, .py, .go, .rs, .java, .cpp, .c, .php, .rb + 20 maisCó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çãoDescriçãoCaso de Uso
home_automationConfigurações e automações de casa inteligenteHome Assistant, scripts IoT
code_snippetsPadrões de código reutilizáveisFunções, hooks, utilitários
configurationsConfigurações de sistema e aplicativosDocker, Kubernetes, serviços
troubleshootingSoluções de problemasCorreções, contornos, depuração
project_docsDocumentação de projetosAPIs, arquitetura, guias
learning_notesInsights de aprendizadoTutoriais, 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ções CONCLUÍDO!
  • ✅ Processamento de arquivos em lote CONCLUÍDO!
  • ✅ Extração de metadados EXIF CONCLUÍDO na v3.0!
  • ✅ Watch folders / auto-ingestão CONCLUÍDO na v3.0!
  • ✅ Detecção de duplicatas CONCLUÍ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