Chroma

oficial

Base de datos de aplicaciones de IA de código abierto para incrustaciones, búsqueda vectorial, almacenamiento de documentos y búsqueda de texto completo.

¿Qué puedes hacer con Chroma MCP?

  • Listar y explorar colecciones — Usa chroma_list_collections para recorrer las colecciones disponibles y chroma_peek_collection para previsualizar documentos de muestra dentro de una.
  • Crear una colección con un modelo de incrustación elegido — Ejecuta chroma_create_collection para configurar una nueva colección usando incrustaciones de default, openai, cohere, jina, voyageai o roboflow.
  • Agregar documentos con metadatos — Inserta texto mediante chroma_add_documents, adjuntando opcionalmente metadatos e IDs personalizados para filtrado posterior.
  • Buscar por significado o palabras clave — Consulta con chroma_query_documents para búsqueda semántica vectorial o usa búsqueda de texto completo para encontrar documentos relevantes.
  • Filtrar y recuperar documentos específicos — Obtén documentos por ID o filtro de metadatos usando chroma_get_documents, con soporte de paginación.
  • Actualizar o eliminar documentos — Modifica el contenido, metadatos o incrustaciones de documentos con chroma_update_documents, o elimínalos mediante chroma_delete_documents.

Documentación

Chroma logo

Chroma - la base de datos de embeddings de código abierto.
¡La forma más rápida de crear aplicaciones LLM en Python o JavaScript con memoria!

Discord | License | Documentación | Página principal

Servidor MCP de Chroma

smithery badge

El Protocolo de Contexto de Modelo (MCP) es un protocolo abierto diseñado para una integración sencilla entre aplicaciones LLM y fuentes de datos o herramientas externas, ofreciendo un marco estandarizado para proporcionar a los LLM el contexto que necesitan de manera fluida.

Este servidor proporciona capacidades de recuperación de datos impulsadas por Chroma, permitiendo que los modelos de IA creen colecciones sobre datos generados y entradas de usuario, y recuperen esos datos mediante búsqueda vectorial, búsqueda de texto completo, filtrado por metadatos y más.

Este es un servidor MCP para autoalojar tu acceso a Chroma. Si buscas Búsqueda de Paquetes, puedes encontrar el repositorio para ello aquí.

Características

  • Tipos de Cliente Flexibles

    • Efímero (en memoria) para pruebas y desarrollo
    • Persistente para almacenamiento basado en archivos
    • Cliente HTTP para instancias de Chroma autoalojadas
    • Cliente en la nube para integración con Chroma Cloud (se conecta automáticamente a api.trychroma.com)
  • Gestión de Colecciones

    • Crear, modificar y eliminar colecciones
    • Listar todas las colecciones con soporte de paginación
    • Obtener información y estadísticas de la colección
    • Configurar parámetros HNSW para búsqueda vectorial optimizada
    • Seleccionar funciones de embedding al crear colecciones
  • Operaciones con Documentos

    • Añadir documentos con metadatos opcionales e IDs personalizados
    • Consultar documentos usando búsqueda semántica
    • Filtrado avanzado usando metadatos y contenido del documento
    • Recuperar documentos por IDs o filtros
    • Capacidades de búsqueda de texto completo

Herramientas Soportadas

  • chroma_list_collections - Listar todas las colecciones con soporte de paginación
  • chroma_create_collection - Crear una nueva colección con configuración HNSW opcional
  • chroma_peek_collection - Ver una muestra de documentos en una colección
  • chroma_get_collection_info - Obtener información detallada sobre una colección
  • chroma_get_collection_count - Obtener el número de documentos en una colección
  • chroma_modify_collection - Actualizar el nombre o los metadatos de una colección
  • chroma_delete_collection - Eliminar una colección
  • chroma_add_documents - Añadir documentos con metadatos opcionales e IDs personalizados
  • chroma_query_documents - Consultar documentos usando búsqueda semántica con filtrado avanzado
  • chroma_get_documents - Recuperar documentos por IDs o filtros con paginación
  • chroma_update_documents - Actualizar el contenido, metadatos o embeddings de documentos existentes
  • chroma_delete_documents - Eliminar documentos específicos de una colección

Funciones de Embedding

Chroma MCP soporta varias funciones de embedding: default, cohere, openai, jina, voyageai y roboflow.

Las funciones de embedding utilizan la configuración de colección de Chroma, que persiste la función de embedding seleccionada de una colección para su recuperación. Una vez que se crea una colección usando la configuración de colección, en la recuperación para futuras consultas e inserciones, se usará la misma función de embedding, sin necesidad de especificarla nuevamente. La persistencia de la función de embedding se añadió en la v1.0.0 de Chroma, por lo que si creaste una colección usando la versión <=0.6.3, esta característica no está soportada.

Al acceder a funciones de embedding que utilizan APIs externas, asegúrate de añadir la variable de entorno para la clave API con el formato correcto, que se encuentra en Variables de Entorno de Funciones de Embedding

Uso con Claude Desktop

  1. Para añadir un cliente efímero, añade lo siguiente a tu archivo claude_desktop_config.json:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp"
    ]
}
  1. Para añadir un cliente persistente, añade lo siguiente a tu archivo claude_desktop_config.json:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp",
        "--client-type",
        "persistent",
        "--data-dir",
        "/full/path/to/your/data/directory"
    ]
}

Esto creará un cliente persistente que usará el directorio de datos especificado.

  1. Para conectarte a Chroma Cloud, añade lo siguiente a tu archivo 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"
    ]
}

Esto creará un cliente en la nube que se conecta automáticamente a api.trychroma.com usando SSL.

Nota: Añadir claves API en los argumentos está bien en dispositivos locales, pero por seguridad, también puedes especificar una ruta personalizada para tu archivo de configuración de entorno usando el argumento --dotenv-path dentro de la lista args, por ejemplo: "args": ["chroma-mcp", "--dotenv-path", "/custom/path/.env"].

  1. Para conectarte a una [instancia de Chroma autoalojada en tu propio proveedor de nube](https://docs.trychroma.com/ production/deployment), añade lo siguiente a tu archivo 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"
    ]
}

Esto creará un cliente HTTP que se conecta a tu instancia de Chroma autoalojada.

Demos

Encuentra usos de referencia, como bases de conocimiento compartidas y adición de memoria a ventanas de contexto en la Documentación de Chroma MCP

Uso de Variables de Entorno

También puedes usar variables de entorno para configurar el cliente. El servidor cargará automáticamente las variables desde un archivo .env ubicado en la ruta especificada por --dotenv-path (por defecto .chroma_env en el directorio de trabajo) o desde las variables de entorno del sistema. Los argumentos de línea de comandos tienen prioridad sobre las variables de entorno.

# 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" 

Variables de Entorno de Funciones de Embedding

Al usar funciones de embedding externas que acceden a una clave API, sigue la convención de nomenclatura CHROMA_<>_API_KEY="<key>". Así que para establecer una clave API de Cohere, establece la variable de entorno CHROMA_COHERE_API_KEY="". Recomendamos añadir esto a un archivo .env en algún lugar y usar la variable de entorno CHROMA_DOTENV_PATH o la bandera --dotenv-path para establecer esa ubicación y mantenerla segura.