Chroma Mcp 服务器
概览
什么是 Chroma MCP?
Chroma MCP(模型上下文协议)是一种服务器实现,旨在为 Chroma 框架提供强大的数据库功能。它充当各种数据源和应用程序之间的桥梁,允许高效的数据管理和检索。Chroma MCP 的主要目标是通过实现与数据库的无缝集成,增强应用程序的功能,从而改善数据处理和处理能力。
Chroma MCP 的特点
- 数据库集成:Chroma MCP 支持多种数据库系统,使开发人员能够轻松连接和管理来自多个源的数据。
- 可扩展性:Chroma MCP 旨在处理大量数据,可以根据应用程序的需求进行扩展,确保在高负载下性能保持最佳。
- 用户友好的 API:Chroma MCP 提供的 API 直观且易于使用,使所有技能水平的开发人员都能轻松访问。
- 开源:Chroma MCP 是一个开源项目,允许开发人员根据需要贡献、修改和增强软件。
- 社区支持:作为 Chroma 生态系统的一部分,用户可以受益于一个充满活力的社区,提供支持、资源和共享知识。
如何使用 Chroma MCP
- 安装:首先从其官方仓库下载 Chroma MCP。按照文档中提供的安装说明进行操作。
- 配置:配置服务器设置以连接到所需的数据库。这包括指定数据库凭据和连接参数。
- API 集成:利用提供的 API 与数据库进行交互。这包括根据应用程序的需要创建、读取、更新和删除数据。
- 测试:进行全面测试,以确保集成按预期工作,并且数据处理正确。
- 部署:测试完成后,部署集成了 Chroma MCP 的应用程序,确保其满足性能和可扩展性要求。
常见问题解答
Chroma MCP 支持哪些数据库?
Chroma MCP 支持多种数据库,包括 SQL 和 NoSQL 系统。请查看官方文档以获取支持数据库的完整列表。
Chroma MCP 适合大规模应用吗?
是的,Chroma MCP 设计为可扩展,能够处理大量数据,适合小型和大型应用程序。
我该如何为 Chroma MCP 贡献?
作为一个开源项目,欢迎贡献!您可以通过报告问题、提交拉取请求或改善文档来贡献。
我在哪里可以找到有关 Chroma MCP 的更多信息?
有关更多详细信息,请访问 Chroma MCP 的官方 GitHub 仓库,在那里您可以找到文档、安装指南和社区讨论。
详情
Chroma MCP Server
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.
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
Supported Tools
chroma_list_collections
- List all collections with pagination supportchroma_create_collection
- Create a new collection with optional HNSW configurationchroma_peek_collection
- View a sample of documents in a collectionchroma_get_collection_info
- Get detailed information about a collectionchroma_get_collection_count
- Get the number of documents in a collectionchroma_modify_collection
- Update a collection's name or metadatachroma_delete_collection
- Delete a collectionchroma_add_documents
- Add documents with optional metadata and custom IDschroma_query_documents
- Query documents using semantic search with advanced filteringchroma_get_documents
- Retrieve documents by IDs or filters with paginationchroma_update_documents
- Update existing documents' content, metadata, or embeddingschroma_delete_documents
- Delete specific documents from a collection
Embedding Functions
Chroma MCP supports several embedding functions: default
, cohere
, openai
, jina
, voyageai
, and roboflow
.
The embedding functions utilize Chroma's collection configuration, which persists the selected embedding function of a collection for retrieval. Once a collection is created using the collection configuration, on retrieval for future queries and inserts, the same embedding function will be used, without needing to specify the embedding function again. Embedding function persistance was added in v1.0.0 of Chroma, so if you created a collection using version <=0.6.3, this feature is not supported.
When accessing embedding functions that utilize external APIs, please be sure to add the environment variable for the API key with the correct format, found in Embedding Function Environment Variables
Usage with Claude Desktop
- To add an ephemeral client, add the following to your
claude_desktop_config.json
file:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp"
]
}
- To add a persistent client, add the following to your
claude_desktop_config.json
file:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp",
"--client-type",
"persistent",
"--data-dir",
"/full/path/to/your/data/directory"
]
}
This will create a persistent client that will use the data directory specified.
- To connect to Chroma Cloud, add the following to your
claude_desktop_config.json
file:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp",
"--client-type",
"cloud",
"--tenant",
"your-tenant-id",
"--database",
"your-database-name",
"--api-key",
"your-api-key"
]
}
This will create a cloud client that automatically connects to api.trychroma.com using SSL.
Note: Adding API keys in arguments is fine on local devices, but for safety, you can also specify a custom path for your environment configuration file using the --dotenv-path
argument within the args
list, for example: "args": ["chroma-mcp", "--dotenv-path", "/custom/path/.env"]
.
- To connect to a [self-hosted Chroma instance on your own cloud provider](https://docs.trychroma.com/
production/deployment), add the following to your
claude_desktop_config.json
file:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp",
"--client-type",
"http",
"--host",
"your-host",
"--port",
"your-port",
"--custom-auth-credentials",
"your-custom-auth-credentials",
"--ssl",
"true"
]
}
This will create an HTTP client that connects to your self-hosted Chroma instance.
Demos
Find reference usages, such as shared knowledge bases & adding memory to context windows in the Chroma MCP Docs
Using Environment Variables
You can also use environment variables to configure the client. The server will automatically load variables from a .env
file located at the path specified by --dotenv-path
(defaults to .chroma_env
in the working directory) or from system environment variables. Command-line arguments take precedence over environment variables.
### 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"
Embedding Function Environment Variables
When using external embedding functions that access an API key, follow the naming convention
CHROMA_<>_API_KEY="<key>"
.
So to set a Cohere API key, set the environment variable CHROMA_COHERE_API_KEY=""
. We recommend adding this to a .env file somewhere and using the CHROMA_DOTENV_PATH
environment variable or --dotenv-path
flag to set that location for safekeeping.
Server配置
{
"mcpServers": {
"chroma-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/metorial/mcp-container--chroma-core--chroma-mcp--chroma-mcp",
"chroma-mcp --client-type chroma-client-type --data-dir chroma-data-dir --tenant chroma-tenant --database chroma-database --api-key chroma-api-key --host chroma-host --port chroma-port --custom-auth-credentials chroma-custom-auth-credentials --ssl chroma-ssl --dotenv-path chroma-dotenv-path"
],
"env": {
"CHROMA_CLIENT_TYPE": "chroma-client-type",
"CHROMA_DATA_DIR": "chroma-data-dir",
"CHROMA_TENANT": "chroma-tenant",
"CHROMA_DATABASE": "chroma-database",
"CHROMA_API_KEY": "chroma-api-key",
"CHROMA_HOST": "chroma-host",
"CHROMA_PORT": "chroma-port",
"CHROMA_CUSTOM_AUTH_CREDENTIALS": "chroma-custom-auth-credentials",
"CHROMA_SSL": "chroma-ssl",
"CHROMA_DOTENV_PATH": "chroma-dotenv-path",
"CHROMA_COHERE_API_KEY": "chroma-cohere-api-key"
}
}
}
}