mcpField
C
Chroma MCP Server

Chroma MCP Server

ローカル
github.com/privetinデータベース4195 週間前に更新

Chroma MCP Server について

Chroma MCP Server は、Chroma を通じてベクトルデータベース機能を提供する MCP サーバーです。ドキュメントの作成・参照・更新・削除、意味的類似度検索、メタデータフィルタリングに対応し、データはローカルディレクトリに保存されます。

主な機能

  1. 01ドキュメントの作成・参照・更新・削除
  2. 02意味的類似度による検索
  3. 03メタデータとコンテンツによるフィルタリング
  4. 04ローカルディレクトリへの永続化
  5. 05一時的な失敗時の自動リトライ

活用シーン

  1. 01ローカルのドキュメント群に対する意味検索
  2. 02Claude Desktop に永続的なドキュメントストアを追加する
  3. 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 の埋め込みを使用して、意味に基づいてドキュメントを検索します
  • メタデータのフィルタリング:メタデータのフィールドで検索結果を絞り込みます
  • コンテンツのフィルタリング:ドキュメントのコンテンツに基づいて追加の絞り込みを行います
  • 永続ストレージ:サーバーの再起動後も、データはローカルディレクトリに保持されます
  • エラー処理:明確なメッセージを伴う包括的なエラー処理
  • 再試行ロジック:一時的な障害が発生した場合、自動的に再試行します

インストール

  1. 依存関係をインストールします:
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

使用方法

  1. サーバーを起動します:
uv run chroma
  1. 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 content
  • Invalid filter
  • Operation failed: [details]

開発

テスト
  1. MCP Inspector を実行して対話形式でテストします:
npx @modelcontextprotocol/inspector uv --directory C:/MCP/server/community/chroma run chroma
  1. Inspector のウェブインターフェースを使用して、次の項目を実行します。
    • CRUD 操作をテストする
    • 検索機能を確認する
    • エラー処理を確認する
    • サーバーログを監視する
ビルド
  1. 依存関係を更新します:
uv compile pyproject.toml
  1. パッケージをビルドします:
uv build

コントリビューション

コントリビューションを歓迎します!詳細については、コントリビューションガイドラインをご覧ください。

  • コードスタイル
  • テスト要件
  • プルリクエストの手順

ライセンス

このプロジェクトは MIT License の下でライセンスされています。詳細については、LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。