Chroma MCP サーバー
ChromaDBを用いたセマンティック検索とドキュメント管理機能を提供するモデルコンテキストプロトコル(MCP)サーバー。このサーバーにより、LLMは直感的な類似性メトリクスを用いてドキュメントコレクションに対する自然言語クエリを実行できるため、RAG(Retrieval Augmented Generation)アプリケーションに最適です。
特徴
- セマンティック検索:最先端の埋め込みを使用して意味に基づいて文書を検索します
- 直感的な類似度メトリクス: 結果には人間に分かりやすい類似度スコア(0~100%)が含まれます
- ドキュメント管理: ドキュメントとコレクションの完全なCRUD操作
- 豊富なメタデータのサポート:カスタムメタデータフィールドによる添付と検索
- 永続ストレージ: SQLite バックエンドを使用した信頼性の高いドキュメント ストレージ
- セキュリティ: 設定可能なアクセス制御と入力検証
- エラー処理: 包括的なエラーメッセージと適切な障害回復
要件
- Python 3.12以上
- ChromaDB 0.4.22 以上
- MCP Python SDK 1.1.2 以上
- uv パッケージ マネージャー (推奨) または pip
クイックスタート
Claude Desktop の統合については、 「インストール」を参照してください。
建築
サーバーは以下に基づいて構築されています:
- ベクターの保存と検索のためのChromaDB
- サーバー実装用のMCP Python SDK
- 永続ストレージ用のSQLite
データフロー
- ドキュメントはChromaDBのデフォルトの埋め込みモデルを使用して埋め込まれます
- 埋め込みとメタデータはChromaDBのSQLiteバックエンドに保存されます
- クエリは同じ埋め込みモデルを通じて処理される
- 結果は0~100%の類似度スケールに正規化されます
コンポーネント
コレクションと文書
サーバーは主に 2 つのリソース タイプを管理します。
- コレクション: 埋め込み設定が共有された関連ドキュメントのコンテナ
- ドキュメント: メタデータと自動生成された埋め込みを含むテキストコンテンツ
ツール
コレクション管理
list-collections
: 利用可能なすべてのコレクションを一覧表示するcreate-collection
: オプション設定で新しいコレクションを作成するdelete-collection
: コレクションとそのドキュメントを削除する
ドキュメント操作
add-document
: コンテンツとメタデータを含む新しいドキュメントを追加するget-document
: IDで特定のドキュメントを取得するupdate-document
: ドキュメントのコンテンツまたはメタデータを変更するdelete-document
: コレクションからドキュメントを削除するsearch-documents
: 正規化された類似度スコアによるセマンティック検索
インストール
前提条件
- Python 3.12以上
- uv パッケージ マネージャー (推奨) または pip
設定
- リポジトリをクローンします。
- 仮想環境を作成してアクティブ化します。
- 依存関係をインストールします:
クロードデスクトップ統合
Claude Desktop 構成にサーバーを追加します。
Windows ( %APPDATA%/Claude/claude_desktop_config.json
):
MacOS ( ~/Library/Application Support/Claude/claude_desktop_config.json
):
使用例
コレクションの管理
コレクションを作成します:
コレクションの一覧:
ドキュメントの操作
ドキュメントを追加します:
特定のドキュメントを取得します。
ドキュメントを更新します。
ドキュメントを検索:
類似度スコアの理解
検索結果には、0~100% の正規化された類似度スコアが含まれます。
- 90-100% : ほぼ同一の内容、または非常に強い意味的一致
- 70~89% : 関連性が高く、意味的な類似性も強い
- 50-69% : 部分的に意味が重複し、中程度の関連性がある
- 30~49% : 多少関連しているが、意味的なつながりは最小限
- 0~29% : 関連性がない、または意味的なつながりが非常に弱い
トラブルシューティング
よくある問題
- データベース接続エラー
- データベースパスが書き込み可能であることを確認する
- 別のプロセスがデータベースを使用しているかどうかを確認する
.chroma
ディレクトリを削除して再起動してみてください
- メモリの問題
- 大規模なコレクションではより多くのRAMが必要になる場合があります
- より小さなバッチサイズの使用を検討する
--log-level DEBUG
でメモリ使用量を監視する
- 検索パフォーマンスが遅い
- 大規模なコレクションではインデックスの最適化が必要になる場合があります
n_results
を少なくすることを検討してください- システムリソースの使用状況を確認する
デバッグモード
サーバーをデバッグモードで実行します。
ヘルプの取得
- ChromaDBのドキュメントを確認する
- GitHubで問題を開く
- MCPコミュニティのディスカッションに参加する
発達
テストの実行
テスト スイートを実行します。
カバレッジ付きで実行:
デバッグ
デバッグには、MCP インスペクターを使用します。
検査官は以下を提供します:
- リアルタイムのリクエスト/レスポンス監視
- ツールテストインターフェース
- パフォーマンスメトリック
- エラー追跡
エラー処理
サーバーは、一般的なシナリオに対して詳細なエラー メッセージを提供します。
- コレクション名またはIDが無効です
- 欠落または不正な形式の文書
- データベース接続の問題
- 無効な検索パラメータ
- 認証/承認の失敗
セキュリティに関する考慮事項
- すべてのパラメータの入力検証
- 設定可能なアクセス制御
- ファイルパスの安全な取り扱い
- インジェクション攻撃に対する保護
- レート制限のサポート
- セキュアエラーメッセージ
構成
データベースの場所
カスタム データベース パスを設定します。
デフォルト: サーバーディレクトリ内の.chroma
環境変数
CHROMA_DB_PATH
: データベースの場所を上書きするCHROMA_LOG_LEVEL
: ログの詳細度を設定する (デフォルト: INFO)CHROMA_MAX_CONNECTIONS
: データベース接続プールのサイズ(デフォルト: 10)
貢献
- リポジトリをフォークする
- 機能ブランチを作成する
- 変更を加える
- 新しい機能のテストを追加する
- プルリクエストを送信する
詳細については、貢献ガイドラインをお読みください。
ライセンス
MITライセンス
著作権 (c) 2024 プリベティン
本ソフトウェアおよび関連ドキュメント ファイル (以下「本ソフトウェア」) のコピーを入手したすべての人物は、以下の条件に従い、本ソフトウェアを無制限に扱う権利 (使用、コピー、変更、統合、公開、配布、サブライセンス、および/または販売する権利を含みますが、これに限定されません) および本ソフトウェアの提供を受けた人物が同様の行為を行うことを許可する権利を無償で付与されます。
上記の著作権表示およびこの許可通知は、ソフトウェアのすべてのコピーまたは大部分に含めるものとします。
本ソフトウェアは「現状有姿」で提供され、明示的または黙示的を問わず、商品性、特定目的への適合性、非侵害性を含むがこれらに限定されない、いかなる種類の保証も付与されません。いかなる場合においても、著作者または著作権者は、契約違反、不法行為、またはその他の行為にかかわらず、本ソフトウェア、本ソフトウェアの使用、またはその他の取り扱いに起因または関連して発生するいかなる請求、損害、またはその他の責任についても責任を負わないものとします。
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
LLM が ChromaDB を使用してセマンティック検索とドキュメント管理を実行できるようにし、検索拡張生成アプリケーション用の直感的な類似性メトリックを使用した自然言語クエリをサポートします。
Related Resources
Related MCP Servers
- -securityAlicense-qualityProvides semantic memory and persistent storage for Claude, leveraging ChromaDB and sentence transformers for enhanced search and retrieval capabilities.Last updated -3260PythonMIT License
- -securityAlicense-qualityProvides a semantic memory layer that integrates LLMs with OpenSearch, enabling storage and retrieval of memories within the OpenSearch engine.Last updated -PythonApache 2.0
- AsecurityAlicenseAqualityCline MCP integration that allows users to save, search, and format memories with semantic understanding, providing tools to store and retrieve information using vector embeddings for meaning-based search.Last updated -61JavaScriptMIT License
- -security-license-qualityA long-term memory storage system for LLMs that helps them remember context across multiple sessions using semantic search with embeddings to provide relevant historical information from past interactions and development decisions.Last updated -3TypeScriptMIT License