Skip to main content
Glama

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_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ファイルを参照してください。

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/privetin/chroma'

If you have feedback or need assistance with the MCP directory API, please join our Discord server