Chroma MCP サーバー
Chroma を介してベクターデータベース機能を提供するモデルコンテキストプロトコル(MCP)サーバー実装。このサーバーは、セマンティックドキュメント検索、メタデータフィルタリング、そして永続ストレージによるドキュメント管理を可能にします。
要件
Python 3.8以上
Chroma 0.4.0以降
MCP SDK 0.1.0+
Related MCP server: doc-lib-mcp
コンポーネント
リソース
サーバーは、Chroma のベクター データベースを通じてドキュメントの保存と取得を提供します。
コンテンツとメタデータを含むドキュメントを保存します
src/chroma/dataディレクトリにデータを保存します意味的類似性検索をサポート
ツール
サーバーは CRUD 操作と検索機能を実装します。
ドキュメント管理
create_document: 新しいドキュメントを作成する必須:
document_id、contentオプション:
metadata(キーと値のペア)戻り値: 成功確認
エラー: すでに存在します。入力が無効です
read_document: IDでドキュメントを取得する必須:
document_id戻り値: ドキュメントのコンテンツとメタデータ
エラー: 見つかりません
update_document: 既存のドキュメントを更新する必須:
document_id、contentオプション:
metadata戻り値: 成功確認
エラー: 見つかりません、入力が無効です
delete_document: ドキュメントを削除する必須:
document_id戻り値: 成功確認
エラー: 見つかりません
list_documents: すべてのドキュメントを一覧表示するオプション:
limit、offset戻り値: コンテンツとメタデータを含むドキュメントのリスト
捜索活動
search_similar: 意味的に類似した文書を検索する必須:
queryオプション:
num_results、metadata_filter、content_filter返されるもの: 距離スコアによる類似文書のランク付けされたリスト
エラー: 無効なフィルター
特徴
セマンティック検索: Chroma の埋め込みを使用して意味に基づいてドキュメントを検索します
メタデータフィルタリング: メタデータフィールドで検索結果をフィルタリングする
コンテンツフィルタリング: ドキュメントコンテンツに基づく追加のフィルタリング
永続ストレージ: データはサーバーの再起動後もローカルディレクトリに保持されます
エラー処理: 明確なメッセージによる包括的なエラー処理
再試行ロジック: 一時的な障害に対する自動再試行
インストール
依存関係をインストールします:
構成
クロードデスクトップ
Claude Desktop 構成にサーバー構成を追加します。
Windows: C:\Users\<username>\AppData\Roaming\Claude\claude_desktop_config.json
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
データストレージ
サーバーは次の場所にデータを保存します。
Windows:
src/chroma/dataMacOS/Linux:
src/chroma/data
使用法
サーバーを起動します。
MCP ツールを使用してサーバーと対話します。
エラー処理
サーバーは、一般的なシナリオに対して明確なエラー メッセージを提供します。
Document already exists [id=X]Document not found [id=X]Invalid input: Missing document_id or contentInvalid filterOperation failed: [details]
発達
テスト
対話型テストのために MCP Inspector を実行します。
インスペクターの Web インターフェースを使用して次の操作を行います。
CRUD操作をテストする
検索機能を確認する
エラー処理を確認する
サーバーログを監視する
建物
依存関係を更新します:
ビルドパッケージ:
貢献
貢献を歓迎します!詳細については、貢献ガイドラインをご覧ください。
コードスタイル
テスト要件
プルリクエストプロセス
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。