ADK 向け Chroma MCP ツール¶
Supported in ADKPythonTypeScript
Chroma MCP Server は ADK エージェントをオープンソース埋め込みデータベース Chroma に接続します。 この連携により、エージェントはコレクション作成、ドキュメント保存、 セマンティック検索、全文検索、メタデータフィルタリングを使った情報取得を行えます。
ユースケース¶
-
エージェント向けセマンティックメモリ: 会話コンテキスト、事実、学習情報を保存し、 後で自然言語クエリで取得できます。
-
ナレッジベース検索: 文書を保存し、 応答に必要な関連コンテキストを取得する RAG システムを構築します。
-
セッション横断の永続コンテキスト: 会話をまたいで長期記憶を維持し、 過去やり取りと蓄積知識を参照できるようにします。
前提条件¶
- ローカル保存の場合: データ永続化用ディレクトリパス
- Chroma Cloud の場合: tenant ID、database name、API key を持つ Chroma Cloud アカウント
エージェントで使う¶
from google.adk.agents import Agent
from google.adk.tools.mcp_tool import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StdioConnectionParams
from mcp import StdioServerParameters
# For local storage, use:
DATA_DIR = "/path/to/your/data/directory"
# For Chroma Cloud, use:
# CHROMA_TENANT = "your-tenant-id"
# CHROMA_DATABASE = "your-database-name"
# CHROMA_API_KEY = "your-api-key"
root_agent = Agent(
model="gemini-2.5-pro",
name="chroma_agent",
instruction="Help users store and retrieve information using semantic search",
tools=[
McpToolset(
connection_params=StdioConnectionParams(
server_params=StdioServerParameters(
command="uvx",
args=[
"chroma-mcp",
# For local storage, use:
"--client-type",
"persistent",
"--data-dir",
DATA_DIR,
# For Chroma Cloud, use:
# "--client-type",
# "cloud",
# "--tenant",
# CHROMA_TENANT,
# "--database",
# CHROMA_DATABASE,
# "--api-key",
# CHROMA_API_KEY,
],
),
timeout=30,
),
)
],
)
import { LlmAgent, MCPToolset } from "@google/adk";
// For local storage, use:
const DATA_DIR = "/path/to/your/data/directory";
// For Chroma Cloud, use:
// const CHROMA_TENANT = "your-tenant-id";
// const CHROMA_DATABASE = "your-database-name";
// const CHROMA_API_KEY = "your-api-key";
const rootAgent = new LlmAgent({
model: "gemini-2.5-pro",
name: "chroma_agent",
instruction: "Help users store and retrieve information using semantic search",
tools: [
new MCPToolset({
type: "StdioConnectionParams",
serverParams: {
command: "uvx",
args: [
"chroma-mcp",
// For local storage, use:
"--client-type",
"persistent",
"--data-dir",
DATA_DIR,
// For Chroma Cloud, use:
// "--client-type",
// "cloud",
// "--tenant",
// CHROMA_TENANT,
// "--database",
// CHROMA_DATABASE,
// "--api-key",
// CHROMA_API_KEY,
],
},
}),
],
});
export { rootAgent };
利用可能なツール¶
コレクション管理¶
| Tool | Description |
|---|---|
chroma_list_collections |
ページネーション対応ですべてのコレクションを一覧表示 |
chroma_create_collection |
任意 HNSW 設定付きで新規コレクション作成 |
chroma_get_collection_info |
コレクション詳細取得 |
chroma_get_collection_count |
コレクション内ドキュメント数取得 |
chroma_modify_collection |
コレクション名またはメタデータ更新 |
chroma_delete_collection |
コレクション削除 |
chroma_peek_collection |
コレクション内ドキュメントのサンプル表示 |
ドキュメント操作¶
| Tool | Description |
|---|---|
chroma_add_documents |
任意メタデータとカスタム ID 付きでドキュメント追加 |
chroma_query_documents |
高度フィルタ付きセマンティック検索クエリ |
chroma_get_documents |
ID またはフィルタでドキュメント取得 (ページネーション対応) |
chroma_update_documents |
既存ドキュメント内容/メタデータ/埋め込み更新 |
chroma_delete_documents |
コレクションから特定ドキュメント削除 |
設定¶
Chroma MCP サーバーは要件に応じて複数クライアントタイプをサポートします:
Client types¶
| Client Type | Description | Key Arguments |
|---|---|---|
ephemeral |
インメモリ保存。再起動で消去。テスト向け。 | None (default) |
persistent |
ローカルマシンのファイルベース保存 | --data-dir |
http |
セルフホスト Chroma サーバーへ接続 | --host, --port, --ssl, --custom-auth-credentials |
cloud |
Chroma Cloud (api.trychroma.com) へ接続 | --tenant, --database, --api-key |
環境変数¶
環境変数でもクライアント設定可能です。 コマンドライン引数は環境変数より優先されます。
| Variable | Description |
|---|---|
CHROMA_CLIENT_TYPE |
クライアント種別: ephemeral, persistent, http, cloud |
CHROMA_DATA_DIR |
永続ローカル保存パス |
CHROMA_TENANT |
Chroma Cloud tenant ID |
CHROMA_DATABASE |
Chroma Cloud database name |
CHROMA_API_KEY |
Chroma Cloud API key |
CHROMA_HOST |
セルフホスト HTTP client host |
CHROMA_PORT |
セルフホスト HTTP client port |
CHROMA_SSL |
HTTP client の SSL 有効化 (true or false) |
CHROMA_DOTENV_PATH |
.env ファイルパス (デフォルト .chroma_env) |