Chroma MCP Server

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Chroma MCP サーバー

Chroma を介してベクターデータベース機能を提供するモデルコンテキストプロトコル(MCP)サーバー実装。このサーバーは、セマンティックドキュメント検索、メタデータフィルタリング、そして永続ストレージによるドキュメント管理を可能にします。

要件

  • Python 3.8以上
  • Chroma 0.4.0以降
  • MCP SDK 0.1.0+

コンポーネント

リソース

サーバーは、Chroma のベクター データベースを通じてドキュメントの保存と取得を提供します。

  • コンテンツとメタデータを含むドキュメントを保存します
  • src/chroma/dataディレクトリにデータを保存します
  • 意味的類似性検索をサポート

ツール

サーバーは CRUD 操作と検索機能を実装します。

ドキュメント管理

  • create_document : 新しいドキュメントを作成する
    • 必須: document_idcontent
    • オプション: metadata (キーと値のペア)
    • 戻り値: 成功確認
    • エラー: すでに存在します。入力が無効です
  • read_document : IDでドキュメントを取得する
    • 必須: document_id
    • 戻り値: ドキュメントのコンテンツとメタデータ
    • エラー: 見つかりません
  • update_document : 既存のドキュメントを更新する
    • 必須: document_idcontent
    • オプション: metadata
    • 戻り値: 成功確認
    • エラー: 見つかりません、入力が無効です
  • delete_document : ドキュメントを削除する
    • 必須: document_id
    • 戻り値: 成功確認
    • エラー: 見つかりません
  • list_documents : すべてのドキュメントを一覧表示する
    • オプション: limitoffset
    • 戻り値: コンテンツとメタデータを含むドキュメントのリスト

捜索活動

  • search_similar : 意味的に類似した文書を検索する
    • 必須: query
    • オプション: num_resultsmetadata_filtercontent_filter
    • 返されるもの: 距離スコアによる類似文書のランク付けされたリスト
    • エラー: 無効なフィルター

特徴

  • セマンティック検索: Chroma の埋め込みを使用して意味に基づいてドキュメントを検索します
  • メタデータフィルタリング: メタデータフィールドで検索結果をフィルタリングする
  • コンテンツフィルタリング: ドキュメントコンテンツに基づく追加のフィルタリング
  • 永続ストレージ: データはサーバーの再起動後もローカルディレクトリに保持されます
  • エラー処理: 明確なメッセージによる包括的なエラー処理
  • 再試行ロジック: 一時的な障害に対する自動再試行

インストール

  1. 依存関係をインストールします:
uv venv uv sync --dev --all-extras

構成

クロードデスクトップ

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. インスペクターの Web インターフェースを使用して次の操作を行います。
    • CRUD操作をテストする
    • 検索機能を確認する
    • エラー処理を確認する
    • サーバーログを監視する

建物

  1. 依存関係を更新します:
uv compile pyproject.toml
  1. ビルドパッケージ:
uv build

貢献

貢献を歓迎します!詳細については、貢献ガイドラインをご覧ください。

  • コードスタイル
  • テスト要件
  • プルリクエストプロセス

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。

-
security - not tested
A
license - permissive license
-
quality - not tested

Chroma を通じてベクター データベース機能を提供し、セマンティック ドキュメント検索、メタデータ フィルタリング、永続ストレージによるドキュメント管理を可能にするモデル コンテキスト プロトコル サーバーです。

  1. Requirements
    1. Components
      1. Resources
      2. Tools
    2. Features
      1. Installation
        1. Configuration
          1. Claude Desktop
          2. Data Storage
        2. Usage
          1. Error Handling
            1. Development
              1. Testing
              2. Building
            2. Contributing
              1. License
                ID: 43djartgsh