Chroma

公式

オープンソースのAIアプリケーションデータベースによる、埋め込み、ベクトル検索、ドキュメントストレージ、全文検索

Chroma MCPで何ができますか?

  • コレクションの一覧表示と参照chroma_list_collections を使用して利用可能なコレクションをページング表示し、chroma_peek_collection でコレクション内のサンプルドキュメントをプレビューします。
  • 選択した埋め込みモデルでコレクションを作成chroma_create_collection を実行して、defaultopenaicoherejinavoyageai、または roboflow の埋め込みを使用した新しいコレクションを設定します。
  • メタデータ付きでドキュメントを追加chroma_add_documents を介してテキストを挿入し、必要に応じてメタデータやカスタムIDを添付して後でフィルタリングできるようにします。
  • 意味やキーワードで検索chroma_query_documents でセマンティックベクトル検索を実行するか、全文検索を使用して関連ドキュメントを検索します。
  • 特定のドキュメントをフィルタリングして取得chroma_get_documents を使用して、IDまたはメタデータフィルターでドキュメントを取得し、ページネーションにも対応します。
  • ドキュメントの更新または削除chroma_update_documents でドキュメントの内容、メタデータ、または埋め込みを変更するか、chroma_delete_documents で削除します。

ドキュメント

Chroma logo

Chroma - オープンソースの埋め込みデータベース
Python や JavaScript の LLM アプリにメモリを最速で追加!

Discord | License | ドキュメント | ホームページ

Chroma MCP サーバー

smithery badge

モデルコンテキストプロトコル (MCP) は、LLM アプリケーションと外部データソースやツールとのシームレスな統合を実現するために設計されたオープンプロトコルであり、LLM が必要なコンテキストをシームレスに取得できる標準化されたフレームワークを提供します。

このサーバーは Chroma を利用したデータ取得機能を提供し、AI モデルが生成データやユーザー入力に基づいてコレクションを作成し、ベクトル検索、全文検索、メタデータフィルタリングなどを用いてデータを取得できるようにします。

これは Chroma へのアクセスをセルフホストするための MCP サーバーです。パッケージ検索 をお探しの場合は、リポジトリは こちら にあります。

機能

  • 柔軟なクライアントタイプ

    • テストや開発用のエフェメラル(インメモリ)
    • ファイルベースのストレージ用の永続化
    • セルフホスト 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 は複数の埋め込み関数をサポートしています: defaultcohereopenaijinavoyageairoboflow

埋め込み関数は Chroma のコレクション設定を利用し、選択された埋め込み関数を取得用に永続化します。コレクション設定を用いてコレクションが作成されると、以降のクエリや挿入時に、同じ埋め込み関数が自動的に使用され、再度指定する必要はありません。埋め込み関数の永続化は Chroma v1.0.0 で追加されたため、バージョン 0.6.3 以前で作成されたコレクションではこの機能はサポートされません。

外部 API を利用する埋め込み関数を使用する場合は、埋め込み関数の環境変数 に記載されている正しい形式で API キーの環境変数を必ず追加してください。

Claude Desktop での使用方法

  1. エフェメラルクライアントを追加するには、claude_desktop_config.json ファイルに以下を追加します:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp"
    ]
}
  1. 永続化クライアントを追加するには、claude_desktop_config.json ファイルに以下を追加します:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp",
        "--client-type",
        "persistent",
        "--data-dir",
        "/full/path/to/your/data/directory"
    ]
}

これにより、指定されたデータディレクトリを使用する永続化クライアントが作成されます。

  1. 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"])。

  1. [独自のクラウドプロバイダー上のセルフホスト 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 で指定されたパス(デフォルトは作業ディレクトリの .chroma_env)にある .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 フラグを使用してその場所を設定することを推奨します。