Chroma MCP Server について
Chroma MCP Server は、Chroma を通じてベクトルデータベース機能を提供する MCP サーバーです。ドキュメントの作成・参照・更新・削除、意味的類似度検索、メタデータフィルタリングに対応し、データはローカルディレクトリに保存されます。
主な機能
- 01ドキュメントの作成・参照・更新・削除
- 02意味的類似度による検索
- 03メタデータとコンテンツによるフィルタリング
- 04ローカルディレクトリへの永続化
- 05一時的な失敗時の自動リトライ
活用シーン
- 01ローカルのドキュメント群に対する意味検索
- 02Claude Desktop に永続的なドキュメントストアを追加する
- 03MCP Inspector によるベクトルデータベース操作の検証
MCP 対応
Chroma MCP Server は、ドキュメント管理と類似度検索のツールを MCP クライアントに提供する MCP サーバーです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Chroma MCP サーバー
Chroma を通じてベクトルデータベース機能を提供する、Model Context Protocol(MCP)サーバーの実装です。このサーバーにより、永続ストレージを使用したセマンティックなドキュメント検索、メタデータのフィルタリング、ドキュメント管理が可能になります。
要件
- Python 3.8+
- Chroma 0.4.0+
- MCP SDK 0.1.0+
コンポーネント
リソース
このサーバーは、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 の埋め込みを使用して、意味に基づいてドキュメントを検索します
- メタデータのフィルタリング:メタデータのフィールドで検索結果を絞り込みます
- コンテンツのフィルタリング:ドキュメントのコンテンツに基づいて追加の絞り込みを行います
- 永続ストレージ:サーバーの再起動後も、データはローカルディレクトリに保持されます
- エラー処理:明確なメッセージを伴う包括的なエラー処理
- 再試行ロジック:一時的な障害が発生した場合、自動的に再試行します
インストール
- 依存関係をインストールします:
uv venv
uv sync --dev --all-extras
設定
Claude Desktop
サーバーの設定を Claude Desktop の設定ファイルに追加します。
Windows:C:\Users\<username>\AppData\Roaming\Claude\claude_desktop_config.json
MacOS:~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"chroma": {
"command": "uv",
"args": [
"--directory",
"C:/MCP/server/community/chroma",
"run",
"chroma"
]
}
}
}
データストレージ
サーバーは次の場所にデータを保存します。
- Windows:
src/chroma/data - MacOS/Linux:
src/chroma/data
使用方法
- サーバーを起動します:
uv run chroma
- MCP ツールを使用してサーバーを操作します。
# Create a document
create_document({
"document_id": "ml_paper1",
"content": "Convolutional neural networks improve image recognition accuracy.",
"metadata": {
"year": 2020,
"field": "computer vision",
"complexity": "advanced"
}
})
# Search similar documents
search_similar({
"query": "machine learning models",
"num_results": 2,
"metadata_filter": {
"year": 2020,
"field": "computer vision"
}
})
エラー処理
このサーバーは、よくある状況に対して明確なエラーメッセージを提供します。
Document already exists [id=X]Document not found [id=X]Invalid input: Missing document_id or contentInvalid filterOperation failed: [details]
開発
テスト
- MCP Inspector を実行して対話形式でテストします:
npx @modelcontextprotocol/inspector uv --directory C:/MCP/server/community/chroma run chroma
- Inspector のウェブインターフェースを使用して、次の項目を実行します。
- CRUD 操作をテストする
- 検索機能を確認する
- エラー処理を確認する
- サーバーログを監視する
ビルド
- 依存関係を更新します:
uv compile pyproject.toml
- パッケージをビルドします:
uv build
コントリビューション
コントリビューションを歓迎します!詳細については、コントリビューションガイドラインをご覧ください。
- コードスタイル
- テスト要件
- プルリクエストの手順
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細については、LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。