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, чтобы указать расположение файла для безопасности.