API VEGA

Chroma — база данных эмбеддингов с открытым исходным кодом.

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

| | Документация | Главная

Chroma MCP Server

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

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

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

Возможности

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

    Эфемерные (в памяти) для тестирования и разработки

    • Постоянные для хранения на диске

    • HTTP-клиент для self-hosted Chroma

    • Облачный клиент для интеграции с Chroma Cloud (автоматически подключается к api.trychroma.com)

  • Управление коллекциями

    Создание, изменение и удаление коллекций

    • Перечень всех коллекций с поддержкой пагинации

    • Получение информации и статистики коллекции

    • Настройка параметров HNSW для оптимизированного векторного поиска

    • Выбор функций эмбеддинга при создании коллекций

  • Операции с документами

    Добавление документов с необязательной метаданной и пользовательскими идентификаторами

    • Запрос документов с использованием семантического поиска

    • Расширенная фильтрация по метаданным и содержимому документа

    • Получение документов по идентификаторам или фильтрам

    • Возможности полнотекстового поиска

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

  • 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 — Добавить документы с необязательной метаданной и пользовательскими идентификаторами

  • chroma_query_documents — Запрос документов с использованием семантического поиска и расширенной фильтрации

  • chroma_get_documents — Извлечь документы по идентификаторам или фильтрам с пагинацией

  • 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

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

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

  • Чтобы подключиться к 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"].

  • Чтобы подключиться к self-hosted Chroma на вашем облачном провайдере (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-клиент, который подключится к вашему self-hosted Chroma на вашем облачном провайдере.

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

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

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

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

# Общие переменные
export CHROMA_CLIENT_TYPE="http"  # или "cloud", "persistent", "ephemeral"

# Для постоянного клиента
export CHROMA_DATA_DIR="/full/path/to/your/data/directory"

# Для облачного клиента (Chroma Cloud)
export CHROMA_TENANT="your-tenant-id"
export CHROMA_DATABASE="your-database-name"
export CHROMA_API_KEY="your-api-key"

# Для HTTP-клиента (самостоятельно размещённый)
export CHROMA_HOST="your-host"
export CHROMA_PORT="your-port"
export CHROMA_CUSTOM_AUTH_CREDENTIALS="your-custom-auth-credentials"
export CHROMA_SSL="true"

# Опционально: укажите путь к файлу .env (значение по умолчанию — .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, чтобы указать расположение файла для безопасности.