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.
サーバー設定
{
"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"
}
}
}
}