Chroma MCP Server について
Chroma MCP Server は、オープンソースの埋め込みデータベース Chroma の MCP サーバーです。AI モデルがコレクションを作成し、ドキュメントを保存して、ベクトル検索、全文検索、メタデータフィルタリングでデータを取得できます。メモリやナレッジベースを備えた LLM アプリを開発する人向けで、セルフホスト可能です。
主な機能
- 01エフェメラル、永続、HTTP、Cloud のクライアント種別
- 02コレクションの作成、変更、参照、削除
- 03ドキュメントの追加、更新、削除、セマンティック検索
- 04メタデータとドキュメント内容によるフィルタリング
- 05保存された設定を持つ複数の埋め込み関数
活用シーン
- 01LLM アプリが検索できる共有ナレッジベースの構築
- 02モデルのコンテキストへの長期メモリの追加
- 03セルフホストまたは Chroma Cloud のインスタンスへのベクトル検索接続
MCP 対応
本プロジェクトは MCP サーバーであり、Chroma のコレクションとドキュメントを管理する chroma_ 系のツールを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Chroma - オープンソースの埋め込みデータベース。
メモリを備えた Python または JavaScript の LLM アプリを、最もすばやく構築できます!
Chroma MCP サーバー
Model Context Protocol(MCP)は、LLM アプリケーションと外部のデータソースやツールを簡単に統合するために設計されたオープンプロトコルです。標準化されたフレームワークにより、LLM に必要なコンテキストをシームレスに提供できます。
このサーバーは Chroma を利用したデータ検索機能を提供します。AI モデルは、生成データやユーザー入力をもとにコレクションを作成し、ベクトル検索、全文検索、メタデータフィルタリングなどを使ってデータを取得できます。
これは、Chroma へのアクセスをセルフホストするための MCP サーバーです。Package Searchをお探しの場合は、こちらにリポジトリがあります。
機能
-
柔軟なクライアントタイプ
- テストや開発向けの一時的な(メモリ内)クライアント
- ファイルベースのストレージ向けの永続クライアント
- セルフホストの Chroma インスタンス向けの HTTP クライアント
- Chroma Cloud との統合向けのクラウドクライアント(api.trychroma.com に自動接続)
-
コレクション管理
- コレクションの作成、変更、削除
- ページネーションに対応した全コレクションの一覧表示
- コレクション情報と統計情報の取得
- ベクトル検索を最適化する HNSW パラメーターの設定
- コレクション作成時の埋め込み関数の選択
-
ドキュメント操作
- 任意のメタデータとカスタム ID を指定したドキュメントの追加
- セマンティック検索によるドキュメントのクエリ
- メタデータとドキュメント内容を使った高度なフィルタリング
- ID またはフィルターによるドキュメントの取得
- 全文検索機能
対応ツール
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- 任意のメタデータとカスタム ID を指定したドキュメントの追加chroma_query_documents- 高度なフィルタリングを使ったセマンティック検索でドキュメントをクエリchroma_get_documents- ページネーションを使って ID またはフィルターでドキュメントを取得chroma_update_documents- 既存のドキュメントの内容、メタデータ、または埋め込みを更新chroma_delete_documents- コレクションから特定のドキュメントを削除
埋め込み関数
Chroma MCP は、default、cohere、openai、jina、voyageai、roboflow の複数の埋め込み関数をサポートしています。
埋め込み関数は、取得時にコレクションで選択された埋め込み関数を保持する Chroma のコレクション設定を利用します。コレクション設定を使用してコレクションを作成すると、今後のクエリや挿入で取得を行う際、埋め込み関数を再度指定しなくても同じ埋め込み関数が使用されます。埋め込み関数の永続化は Chroma v1.0.0 で追加されたため、バージョン <=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"
]
}
これにより、SSL を使用して api.trychroma.com に自動的に接続するクラウドクライアントが作成されます。
**注:**ローカルデバイスでは引数に API キーを追加しても問題ありませんが、安全性を高めるために、args リスト内の --dotenv-path 引数を使用して環境設定ファイルのカスタムパスを指定することもできます。例:"args": ["chroma-mcp", "--dotenv-path", "/custom/path/.env"]。
- [独自のクラウドプロバイダー上のセルフホスト型 Chroma インスタンス](https://docs.trychroma.com/
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"
]
}
これにより、セルフホスト型 Chroma インスタンスに接続する HTTP クライアントが作成されます。
デモ
共有ナレッジベースやコンテキストウィンドウへのメモリの追加など、参考となる使用例は Chroma MCP ドキュメントをご覧ください。
環境変数の使用
環境変数を使用してクライアントを設定することもできます。サーバーは、--dotenv-path で指定したパスにある .env ファイル(デフォルトでは作業ディレクトリ内の .chroma_env)またはシステム環境変数から、変数を自動的に読み込みます。コマンドライン引数は環境変数より優先されます。
# 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"
埋め込み関数の環境変数
API キーにアクセスする外部埋め込み関数を使用する場合は、次の命名規則に従ってください。
CHROMA_<>_API_KEY="<key>"。
たとえば、Cohere の API キーを設定するには、環境変数 CHROMA_COHERE_API_KEY="" を設定します。安全に保管するため、どこかにある .env ファイルに追加し、CHROMA_DOTENV_PATH 環境変数または --dotenv-path フラグを使用してその場所を指定することをおすすめします。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
