Chroma

oficial

Incorporação, busca vetorial, armazenamento de documentos e busca em texto completo com o banco de dados de aplicações de IA de código aberto

O que você pode fazer com Chroma MCP?

  • Listar e navegar por coleções — Use chroma_list_collections para percorrer as coleções disponíveis e chroma_peek_collection para visualizar amostras de documentos dentro de uma.
  • Criar uma coleção com um modelo de embedding escolhido — Execute chroma_create_collection para configurar uma nova coleção usando embeddings default, openai, cohere, jina, voyageai ou roboflow.
  • Adicionar documentos com metadados — Insira texto via chroma_add_documents, opcionalmente anexando metadados e IDs personalizados para filtragem posterior.
  • Pesquisar por significado ou palavras-chave — Consulte com chroma_query_documents para busca vetorial semântica ou use a busca de texto completo para encontrar documentos relevantes.
  • Filtrar e recuperar documentos específicos — Obtenha documentos por ID ou filtro de metadados usando chroma_get_documents, com suporte a paginação.
  • Atualizar ou excluir documentos — Modifique o conteúdo, metadados ou embeddings dos documentos com chroma_update_documents, ou remova-os via chroma_delete_documents.

Documentação

Chroma logo

Chroma - o banco de dados de embeddings de código aberto.
A maneira mais rápida de criar aplicativos LLM em Python ou JavaScript com memória!

Discord | License | Documentação | Página Inicial

Servidor MCP Chroma

smithery badge

O Model Context Protocol (MCP) é um protocolo aberto projetado para integração simplificada entre aplicações LLM e fontes de dados ou ferramentas externas, oferecendo uma estrutura padronizada para fornecer aos LLMs o contexto de que precisam de forma contínua.

Este servidor fornece capacidades de recuperação de dados com tecnologia Chroma, permitindo que modelos de IA criem coleções a partir de dados gerados e entradas do usuário, e recuperem esses dados usando busca vetorial, busca de texto completo, filtragem de metadados e muito mais.

Este é um servidor MCP para auto-hospedar seu acesso ao Chroma. Se você está procurando por Pesquisa de Pacotes, você pode encontrar o repositório para isso aqui.

Funcionalidades

  • Tipos de Cliente Flexíveis

    • Efêmero (em memória) para testes e desenvolvimento
    • Persistente para armazenamento baseado em arquivo
    • Cliente HTTP para instâncias Chroma auto-hospedadas
    • Cliente Cloud para integração com Chroma Cloud (conecta-se automaticamente a api.trychroma.com)
  • Gerenciamento de Coleções

    • Criar, modificar e excluir coleções
    • Listar todas as coleções com suporte a paginação
    • Obter informações e estatísticas da coleção
    • Configurar parâmetros HNSW para busca vetorial otimizada
    • Selecionar funções de embedding ao criar coleções
  • Operações com Documentos

    • Adicionar documentos com metadados opcionais e IDs personalizados
    • Consultar documentos usando busca semântica
    • Filtragem avançada usando metadados e conteúdo do documento
    • Recuperar documentos por IDs ou filtros
    • Capacidades de busca de texto completo

Ferramentas Suportadas

  • chroma_list_collections - Listar todas as coleções com suporte a paginação
  • chroma_create_collection - Criar uma nova coleção com configuração HNSW opcional
  • chroma_peek_collection - Visualizar uma amostra de documentos em uma coleção
  • chroma_get_collection_info - Obter informações detalhadas sobre uma coleção
  • chroma_get_collection_count - Obter o número de documentos em uma coleção
  • chroma_modify_collection - Atualizar o nome ou metadados de uma coleção
  • chroma_delete_collection - Excluir uma coleção
  • chroma_add_documents - Adicionar documentos com metadados opcionais e IDs personalizados
  • chroma_query_documents - Consultar documentos usando busca semântica com filtragem avançada
  • chroma_get_documents - Recuperar documentos por IDs ou filtros com paginação
  • chroma_update_documents - Atualizar conteúdo, metadados ou embeddings de documentos existentes
  • chroma_delete_documents - Excluir documentos específicos de uma coleção

Funções de Embedding

O Chroma MCP suporta várias funções de embedding: default, cohere, openai, jina, voyageai e roboflow.

As funções de embedding utilizam a configuração de coleção do Chroma, que persiste a função de embedding selecionada de uma coleção para recuperação. Uma vez que uma coleção é criada usando a configuração de coleção, na recuperação para consultas e inserções futuras, a mesma função de embedding será usada, sem necessidade de especificar a função de embedding novamente. A persistência da função de embedding foi adicionada na v1.0.0 do Chroma, portanto, se você criou uma coleção usando a versão <=0.6.3, este recurso não é suportado.

Ao acessar funções de embedding que utilizam APIs externas, certifique-se de adicionar a variável de ambiente para a chave de API com o formato correto, encontrado em Variáveis de Ambiente da Função de Embedding

Uso com Claude Desktop

  1. Para adicionar um cliente efêmero, adicione o seguinte ao seu arquivo claude_desktop_config.json:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp"
    ]
}
  1. Para adicionar um cliente persistente, adicione o seguinte ao seu arquivo claude_desktop_config.json:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp",
        "--client-type",
        "persistent",
        "--data-dir",
        "/full/path/to/your/data/directory"
    ]
}

Isso criará um cliente persistente que usará o diretório de dados especificado.

  1. Para conectar ao Chroma Cloud, adicione o seguinte ao seu arquivo claude_desktop_config.json:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp",
        "--client-type",
        "cloud",
        "--tenant",
        "your-tenant-id",
        "--database",
        "your-database-name",
        "--api-key",
        "your-api-key"
    ]
}

Isso criará um cliente cloud que se conecta automaticamente a api.trychroma.com usando SSL.

Nota: Adicionar chaves de API nos argumentos é adequado em dispositivos locais, mas por segurança, você também pode especificar um caminho personalizado para o seu arquivo de configuração de ambiente usando o argumento --dotenv-path dentro da lista args, por exemplo: "args": ["chroma-mcp", "--dotenv-path", "/custom/path/.env"].

  1. Para conectar a uma [instância Chroma auto-hospedada no seu próprio provedor de nuvem](https://docs.trychroma.com/ production/deployment), adicione o seguinte ao seu arquivo claude_desktop_config.json:
"chroma": {
    "command": "uvx",
    "args": [
      "chroma-mcp", 
      "--client-type", 
      "http", 
      "--host", 
      "your-host", 
      "--port", 
      "your-port", 
      "--custom-auth-credentials",
      "your-custom-auth-credentials",
      "--ssl",
      "true"
    ]
}

Isso criará um cliente HTTP que se conecta à sua instância Chroma auto-hospedada.

Demonstrações

Encontre usos de referência, como bases de conhecimento compartilhadas e adição de memória a janelas de contexto na Documentação do Chroma MCP

Usando Variáveis de Ambiente

Você também pode usar variáveis de ambiente para configurar o cliente. O servidor carregará automaticamente as variáveis de um arquivo .env localizado no caminho especificado por --dotenv-path (o padrão é .chroma_env no diretório de trabalho) ou das variáveis de ambiente do sistema. Argumentos de linha de comando têm precedência sobre variáveis de ambiente.

# Common variables
export CHROMA_CLIENT_TYPE="http"  # or "cloud", "persistent", "ephemeral"

# For persistent client
export CHROMA_DATA_DIR="/full/path/to/your/data/directory"

# For cloud client (Chroma Cloud)
export CHROMA_TENANT="your-tenant-id"
export CHROMA_DATABASE="your-database-name"
export CHROMA_API_KEY="your-api-key"

# For HTTP client (self-hosted)
export CHROMA_HOST="your-host"
export CHROMA_PORT="your-port"
export CHROMA_CUSTOM_AUTH_CREDENTIALS="your-custom-auth-credentials"
export CHROMA_SSL="true"

# Optional: Specify path to .env file (defaults to .chroma_env)
export CHROMA_DOTENV_PATH="/path/to/your/.env" 

Variáveis de Ambiente da Função de Embedding

Ao usar funções de embedding externas que acessam uma chave de API, siga a convenção de nomenclatura CHROMA_<>_API_KEY="<key>". Portanto, para definir uma chave de API Cohere, defina a variável de ambiente CHROMA_COHERE_API_KEY="". Recomendamos adicionar isso a um arquivo .env em algum lugar e usar a variável de ambiente CHROMA_DOTENV_PATH ou a flag --dotenv-path para definir esse local para guarda segura.