Chroma

официальный

Встраивания, векторный поиск, хранение документов и полнотекстовый поиск с открытой базой данных для AI-приложений

Что можно делать с Chroma MCP?

  • Список и просмотр коллекций — Используйте chroma_list_collections для пролистывания доступных коллекций и chroma_peek_collection для предварительного просмотра образцов документов внутри одной из них.
  • Создание коллекции с выбранной моделью эмбеддингов — Запустите chroma_create_collection, чтобы настроить новую коллекцию, используя эмбеддинги default, openai, cohere, jina, voyageai или roboflow.
  • Добавление документов с метаданными — Вставляйте текст через chroma_add_documents, при необходимости прикрепляя метаданные и пользовательские идентификаторы для последующей фильтрации.
  • Поиск по смыслу или ключевым словам — Выполняйте запросы с помощью chroma_query_documents для семантического векторного поиска или используйте полнотекстовый поиск для нахождения релевантных документов.
  • Фильтрация и извлечение конкретных документов — Получайте документы по идентификатору или фильтру метаданных с помощью chroma_get_documents с поддержкой пагинации.
  • Обновление или удаление документов — Изменяйте содержимое документа, метаданные или эмбеддинги с помощью chroma_update_documents или удаляйте их через chroma_delete_documents.

Документация

Chroma logo

Chroma — опенсорсная база данных для эмбеддингов.
Самый быстрый способ создавать LLM-приложения на Python или JavaScript с памятью!

Discord | License | Документация | Домашняя страница

Chroma MCP Server

smithery badge

Model Context Protocol (MCP) — это открытый протокол, разработанный для простой интеграции между LLM-приложениями и внешними источниками данных или инструментами, предлагающий стандартизированный подход для бесшовного предоставления LLM необходимого контекста.

Этот сервер предоставляет возможности извлечения данных на базе Chroma, позволяя моделям ИИ создавать коллекции на основе сгенерированных данных и пользовательского ввода, а также извлекать эти данные с помощью векторного поиска, полнотекстового поиска, фильтрации по метаданным и многого другого.

Это MCP-сервер для самостоятельного хостинга вашего доступа к Chroma. Если вы ищете Package Search, репозиторий для него находится здесь.

Возможности

  • Гибкие типы клиентов

    • Эфемерный (в памяти) для тестирования и разработки
    • Постоянный для файлового хранения
    • HTTP-клиент для собственных экземпляров Chroma
    • Облачный клиент для интеграции с Chroma Cloud (автоматически подключается к api.trychroma.com)
  • Управление коллекциями

    • Создание, изменение и удаление коллекций
    • Список всех коллекций с поддержкой пагинации
    • Получение информации и статистики о коллекции
    • Настройка параметров HNSW для оптимизированного векторного поиска
    • Выбор функций эмбеддинга при создании коллекций
  • Операции с документами

    • Добавление документов с опциональными метаданными и пользовательскими ID
    • Запрос документов с использованием семантического поиска
    • Расширенная фильтрация по метаданным и содержимому документов
    • Получение документов по ID или фильтрам
    • Возможности полнотекстового поиска

Поддерживаемые инструменты

  • chroma_list_collections — Список всех коллекций с поддержкой пагинации
  • chroma_create_collection — Создание новой коллекции с опциональной конфигурацией HNSW
  • chroma_peek_collection — Просмотр образца документов в коллекции
  • chroma_get_collection_info — Получение подробной информации о коллекции
  • chroma_get_collection_count — Получение количества документов в коллекции
  • chroma_modify_collection — Обновление имени или метаданных коллекции
  • chroma_delete_collection — Удаление коллекции
  • chroma_add_documents — Добавление документов с опциональными метаданными и пользовательскими ID
  • chroma_query_documents — Запрос документов с использованием семантического поиска и расширенной фильтрации
  • chroma_get_documents — Получение документов по ID или фильтрам с пагинацией
  • chroma_update_documents — Обновление содержимого, метаданных или эмбеддингов существующих документов
  • chroma_delete_documents — Удаление конкретных документов из коллекции

Функции эмбеддинга

Chroma MCP поддерживает несколько функций эмбеддинга: default, cohere, openai, jina, voyageai и roboflow.

Функции эмбеддинга используют конфигурацию коллекции Chroma, которая сохраняет выбранную функцию эмбеддинга коллекции для последующего извлечения. После создания коллекции с использованием конфигурации, при последующих запросах и вставках будет использоваться та же функция эмбеддинга, без необходимости указывать её снова. Сохранение функции эмбеддинга было добавлено в версии v1.0.0 Chroma, поэтому если вы создали коллекцию с версией <=0.6.3, эта функция не поддерживается.

При использовании функций эмбеддинга, обращающихся к внешним API, обязательно добавьте переменную окружения для API-ключа в правильном формате, как указано в Переменные окружения функций эмбеддинга.

Использование с Claude Desktop

  1. Чтобы добавить эфемерный клиент, добавьте следующее в ваш файл claude_desktop_config.json:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp"
    ]
}
  1. Чтобы добавить постоянный клиент, добавьте следующее в ваш файл claude_desktop_config.json:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp",
        "--client-type",
        "persistent",
        "--data-dir",
        "/full/path/to/your/data/directory"
    ]
}

Это создаст постоянный клиент, который будет использовать указанную директорию данных.

  1. Чтобы подключиться к Chroma Cloud, добавьте следующее в ваш файл 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"
    ]
}

Это создаст облачный клиент, который автоматически подключается к api.trychroma.com с использованием SSL.

Примечание: Добавление API-ключей в аргументы допустимо на локальных устройствах, но для безопасности вы также можете указать пользовательский путь к файлу конфигурации окружения, используя аргумент --dotenv-path в списке args, например: "args": ["chroma-mcp", "--dotenv-path", "/custom/path/.env"].

  1. Чтобы подключиться к [собственному экземпляру Chroma на вашем облачном провайдере](https://docs.trychroma.com/ production/deployment), добавьте следующее в ваш файл 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"
    ]
}

Это создаст HTTP-клиент, который подключается к вашему собственному экземпляру Chroma.

Демонстрации

Примеры использования, такие как общие базы знаний и добавление памяти в контекстные окна, смотрите в документации Chroma MCP.

Использование переменных окружения

Вы также можете использовать переменные окружения для настройки клиента. Сервер автоматически загружает переменные из файла .env, расположенного по пути, указанному в --dotenv-path (по умолчанию .chroma_env в рабочей директории), или из системных переменных окружения. Аргументы командной строки имеют приоритет над переменными окружения.

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

Переменные окружения функций эмбеддинга

При использовании внешних функций эмбеддинга, требующих API-ключ, следуйте соглашению об именовании CHROMA_<>_API_KEY="<key>". Так, чтобы установить API-ключ Cohere, задайте переменную окружения CHROMA_COHERE_API_KEY="". Мы рекомендуем добавить это в файл .env где-либо и использовать переменную окружения CHROMA_DOTENV_PATH или флаг --dotenv-path, чтобы указать это местоположение для сохранности.