Chroma MCP

Chroma MCP

от chroma-core
MCP-сервер для интеграции Chroma (open-source базы эмбеддингов) с LLM. Позволяет создавать коллекции, добавлять документы и выполнять семантический поиск с фильтрацией. Подходит разработчикам, стро...

Chroma logo

Chroma - the open-source embedding database.
The fastest way to build Python or JavaScript LLM apps with memory!

Discord | License | Docs | Homepage

Chroma MCP Server

smithery badge

The Model Context Protocol (MCP) is an open protocol designed for effortless integration between LLM applications and external data sources or tools, offering a standardized framework to seamlessly provide LLMs with the context they require.

This server provides data retrieval capabilities powered by Chroma, enabling AI models to create collections over generated data and user inputs, and retrieve that data using vector search, full text search, metadata filtering, and more.

This is a MCP server for self-hosting your access to Chroma. If you are looking for Package Search you can find the repository for that here.

Features

  • Flexible Client Types

    • Ephemeral (in-memory) for testing and development
    • Persistent for file-based storage
    • HTTP client for self-hosted Chroma instances
    • Cloud client for Chroma Cloud integration (automatically connects to api.trychroma.com)
  • Collection Management

    • Create, modify, and delete collections
    • List all collections with pagination support
    • Get collection information and statistics
    • Configure HNSW parameters for optimized vector search
    • Select embedding functions when creating collections
  • Document Operations

    • Add documents with optional metadata and custom IDs
    • Query documents using semantic search
    • Advanced filtering using metadata and document content
    • Retrieve documents by IDs or filters
    • Full text search capabilities
Инструменты были проиндексированы:
chroma_add_documents

Добавляет документы в коллекцию Chroma. Аргументы: collection_name: Имя коллекции, в которую добавляются документы documents: Список текстовых документов для добавления ids: Список идентификаторов для документов (обязательно) metadatas: Необязательный список словарей метаданных для каждого документа

Параметры
  • collection_namestringобязательный
  • documentsstring[]обязательный
  • idsstring[]обязательный
  • metadatasobject[] | null
chroma_create_collection

Создаёт новую коллекцию Chroma с настраиваемыми параметрами HNSW. Аргументы: collection_name: название создаваемой коллекции embedding_function_name: название используемой функции эмбеддинга. Варианты: 'default', 'cohere', 'openai', 'jina', 'voyageai', 'ollama', 'roboflow' metadata: необязательный словарь метаданных для добавления в коллекцию

Параметры
  • collection_namestringобязательный
  • embedding_function_namestring
  • metadataobject | null
chroma_delete_collection

Удаляет коллекцию Chroma. Аргументы: collection_name: Имя коллекции для удаления

Параметры
  • collection_namestringобязательный
chroma_delete_documents

Удаляет документы из коллекции Chroma. Аргументы: collection_name: имя коллекции, из которой нужно удалить документы ids: список идентификаторов документов для удаления Возвращает: Сообщение о подтверждении с указанием количества удаленных документов. Исключения: ValueError: если 'ids' пуст Exception: если коллекция не существует или операция удаления не удалась.

Параметры
  • collection_namestringобязательный
  • idsstring[]обязательный
chroma_fork_collection

Создаёт копию коллекции Chroma. Аргументы: collection_name: имя коллекции new_collection_name: имя новой коллекции metadata: необязательный словарь метаданных для добавления в новую коллекцию

Параметры
  • collection_namestringобязательный
  • new_collection_namestringобязательный
chroma_get_collection_count

Получает количество документов в коллекции Chroma. Аргументы: collection_name: имя коллекции для подсчёта

Параметры
  • collection_namestringобязательный
chroma_get_collection_info

Получает информацию о коллекции Chroma. Аргументы: collection_name: название коллекции, о которой нужно получить информацию

Параметры
  • collection_namestringобязательный
chroma_get_documents

Получает документы из коллекции Chroma с необязательной фильтрацией. Аргументы: - collection_name: Имя коллекции, из которой получаются документы - ids: Необязательный список идентификаторов документов для получения - where: Необязательные фильтры метаданных с использованием операторов запросов Chroma Примеры: - Простое равенство: {"metadata_field": "value"} - Сравнение: {"metadata_field": {"$gt": 5}} - Логическое И: {"$and": [{"field1": {"$eq": "value1"}}, {"field2": {"$gt": 5}}]} - Логическое ИЛИ: {"$or": [{"field1": {"$eq": "value1"}}, {"field1": {"$eq": "value2"}}]} - where_document: Необязательные фильтры содержимого документов Примеры: - Содержит: {"$contains": "value"} - Не содержит: {"$not_contains": "value"} - Regex: {"$regex": "[a-z]+"} - Not regex: {"$not_regex": "[a-z]+"} - Логическое И: {"$and": [{"$contains": "value1"}, {"$not_regex": "[a-z]+"}]} - Логическое ИЛИ: {"$or": [{"$regex": "[a-z]+"}, {"$not_contains": "value2"}]} - include: Список того, что включить в ответ. По умолчанию включает документы и метаданные. - limit: Необязательное максимальное количество документов для возврата - offset: Необязательное количество документов, которые нужно пропустить перед возвратом результатов Возвращает: Словарь, содержащий соответствующие документы, их идентификаторы и запрошенные включения.

Параметры
  • collection_namestringобязательный
  • idsstring[] | null
  • includestring[]
  • limitinteger | null
  • offsetinteger | null
  • whereobject | null
  • where_documentobject | null
chroma_list_collections

Below is a Python implementation that satisfies the requirements. It assumes the function is a method of a class that has a Chroma client stored as self._client. The function fetches all collections, sorts them, applies pagination, and returns the appropriate list. python from typing import List, Optional def list_collections(self, limit: Optional[int] = None, offset: Optional[int] = None) -> List[str]: """ List all collection names in the Chroma database with pagination support. Args: limit: Optional maximum number of collections to return offset: Optional number of collections to skip before returning results Returns: List of collection names or ["__NO_COLLECTIONS_FOUND__"] if database is empty """ # Fetch all collections from Chroma collections = self._client.list_collections() # Extract and sort names for deterministic output names = sorted([col.name for col in collections]) # If the database is empty, return the sentinel value if not names: return ["__NO_COLLECTIONS_FOUND__"] # Apply pagination if offset is not None: names = names[offset:] if limit is not None: names = names[:limit] return names Key points: - The function retrieves all collection names, sorts them alphabetically. - It returns the sentinel list ["__NO_COLLECTIONS_FOUND__"] only when the database is completely empty. - Pagination is applied after sorting, and limit/offset work as expected (e.g., offset=2, limit=3 skips the first two and returns the next three). - If offset is beyond the number of collections, an empty list is returned (since the database is not empty, just the range is out of bounds).

Параметры
  • limitinteger | null
  • offsetinteger | null
chroma_modify_collection

Изменяет имя или метаданные коллекции Chroma. Аргументы: collection_name: Название коллекции для изменения new_name: Необязательное новое название коллекции new_metadata: Необязательные новые метаданные коллекции

Параметры
  • collection_namestringобязательный
  • new_metadataobject | null
  • new_namestring | null
chroma_peek_collection

Просматривает документы в коллекции Chroma. Аргументы: collection_name: Название коллекции для просмотра limit: Количество документов для просмотра

Параметры
  • collection_namestringобязательный
  • limitinteger
chroma_query_documents

Запрашивает документы из коллекции Chroma с расширенной фильтрацией. Аргументы: collection_name: Название коллекции для запроса query_texts: Список текстов запроса для поиска n_results: Количество результатов для возврата на один запрос where: Необязательные фильтры метаданных с использованием операторов запроса Chroma Примеры: - Простое равенство: {"metadata_field": "value"} - Сравнение: {"metadata_field": {"$gt": 5}} - Логическое И: {"$and": [{"field1": {"$eq": "value1"}}, {"field2": {"$gt": 5}}]} - Логическое ИЛИ: {"$or": [{"field1": {"$eq": "value1"}}, {"field1": {"$eq": "value2"}}]} where_document: Необязательные фильтры содержимого документов Примеры: - Содержит: {"$contains": "value"} - Не содержит: {"$not_contains": "value"} - Регулярное выражение: {"$regex": "[a-z]+"} - Не регулярное выражение: {"$not_regex": "[a-z]+"} - Логическое И: {"$and": [{"$contains": "value1"}, {"$not_regex": "[a-z]+"}]} - Логическое ИЛИ: {"$or": [{"$regex": "[a-z]+"}, {"$not_contains": "value2"}]} include: Список того, что включить в ответ. По умолчанию включает документы, метаданные и расстояния.

Параметры
  • collection_namestringобязательный
  • includestring[]
  • n_resultsinteger
  • query_textsstring[]обязательный
  • whereobject | null
  • where_documentobject | null
chroma_update_documents

Обновляет документы в коллекции Chroma. Аргументы: collection_name: Имя коллекции, в которой обновляются документы ids: Список идентификаторов документов для обновления (обязательно) embeddings: Необязательный список новых эмбеддингов для документов. Должен совпадать по длине с ids, если указан. metadatas: Необязательный список новых словарей метаданных для документов. Должен совпадать по длине с ids, если указан. documents: Необязательный список новых текстовых документов. Должен совпадать по длине с ids, если указан. Возвращает: Сообщение о подтверждении с указанием количества обновлённых документов. Исключения: ValueError: Если 'ids' пуст, или не указан ни один из 'embeddings', 'metadatas' или 'documents', или длина предоставленных списков обновления не совпадает с длиной 'ids'. Исключение: Если коллекция не существует или операция обновления завершилась ошибкой.

Параметры
  • collection_namestringобязательный
  • documentsstring[] | null
  • embeddingsnumber[][] | null
  • idsstring[]обязательный
  • metadatasobject[] | null

Похожие MCP-сервера

KashiwaByte/vikingdb-mcp-server

KashiwaByte/vikingdb-mcp-server

MCP сервер для интеграции с VikingDB, векторной базой данных от ByteDance. Позволяет выполнять вставку данных, семантический поиск и управление коллекциями и индексами. Идеально подходит для AI-приложений, RAG-систем и быстрого векторного поиска.

Python5
dmayboroda/minima

dmayboroda/minima

Minima — open-source MCP сервер для локального RAG в контейнерах. Поддерживает изолированный Ollama, кастомные LLM и интеграцию с ChatGPT и Claude. Индексирует документы и отвечает на вопросы, обеспечивая полный контроль над данными. Полезен для конфиденциальных проектов и офлайн-сред.

Python1047
zilliztech/mcp-server-milvus

zilliztech/mcp-server-milvus

официальный

MCP-сервер для векторной базы Milvus. Предоставляет LLM-приложениям векторный и гибридный поиск, управление коллекциями, операции с данными. Полезен разработчикам, интегрирующим AI с Claude Desktop...

Python243
sifter-ai/sifter

sifter-ai/sifter

Sifter — open-source движок для извлечения структурированных данных из документов (счетов, контрактов). Вместо RAG выделяет точные поля (клиент, дата, сумма) и хранит их как записи — ответы получаю...

Python55
meilisearch/meilisearch-mcp

meilisearch/meilisearch-mcp

MCP сервер, подключающий любую LLM к поисковому движку Meilisearch. Создавайте и удаляйте индексы, загружайте документы, настраивайте релевантность — всё через естественный язык. Идеально для быстрого поиска в AI-помощниках.

Python195
needle-ai/needle-mcp

needle-ai/needle-mcp

MCP сервер для интеграции с Needle — управляйте документами, ищите по коллекциям через Claude Desktop. Поддерживает PDF, DOCX и другие форматы, делая данные доступными для семантического поиска без локальной установки. Идеально для AI-агентов.

Python102
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин