Couchbase
公式Couchbaseクラスターに保存されたデータと自然言語で対話します。
Couchbase MCPで何ができますか?
アシスタントに、Couchbaseクラスターのヘルスチェック、スキーマの調査、SQL++クエリの実行、ドキュメントの管理を依頼できます。
- SQL++クエリを実行 — アシスタントに
run_sql_plus_plus_queryでデータをクエリしてもらいます。自動的にバケットとコレクションにスコープされます。 - スキーマを調査 —
get_buckets_in_clusterとget_schema_for_collectionでバケット、スコープ、コレクションを検出します。 - ドキュメントを管理 —
get_document_by_idとupsert_document_by_idでIDによるドキュメントの読み取り、アップサート、削除を行います。 - クラスターヘルスを確認 —
test_cluster_connectionとget_cluster_health_and_servicesで接続性とサービスステータスを検証します。 - インデックスを最適化 —
list_indexesとget_index_advisor_recommendationsでインデックスを一覧表示し、推奨事項を取得します。 - クエリパフォーマンスを分析 —
get_longest_running_queriesとget_queries_using_primary_indexで低速または非選択的なクエリを特定します。
ドキュメント
Couchbase MCP Server
Couchbase MCP Server は、セルフホスト型の MCP サーバーで、AI エージェントが Capella または自己管理環境でホストされている Couchbase クラスターに接続し、そのデータと対話できるようにします。クラスターのヘルス、データスキーマ、キーバリュー、クエリ、パフォーマンスなどのカテゴリにわたるツールを提供し、読み取り専用モードと細かなツール無効化による安全制御を備えています。STDIO トランスポートと Streamable HTTP トランスポートの両方をサポートしています。
Couchbase MCP サーバーは、Python Package Index (PyPI) パッケージとして、また Docker を介して配布されています。 Couchbase MCP Server のエンタープライズサポートは、Couchbase AI Data Plane のライセンスを取得することで利用できます。これにより、Couchbase Agent Memory および Couchbase Agent Catalog の利用とエンタープライズサポートも受けられます。
完全なドキュメントについては、mcp-server.couchbase.com をご覧ください。
機能/ツール
クラスターセットアップとヘルスツール
| ツール名 | 説明 |
|---|---|
get_server_configuration_status | クラスターに接続せずにサーバーのステータスと設定を取得します — 読み取り専用モード、無効化/確認が必要なツール、OAuth 設定、解決されたログ設定を報告します |
test_cluster_connection | クラスターに接続してクラスターの認証情報を確認します |
get_cluster_health_and_services | クラスターのヘルスステータスと実行中のすべてのサービスの一覧を取得します |
データモデルとスキーマ検出ツール
| ツール名 | 説明 |
|---|---|
get_buckets_in_cluster | クラスター内のすべてのバケットの一覧を取得します |
get_scopes_in_bucket | 指定されたバケット内のすべてのスコープの一覧を取得します |
get_collections_in_scope | 指定されたスコープとバケット内のすべてのコレクションの一覧を取得します。このツールを使用するには、クラスターにクエリサービスが必要であることに注意してください。 |
get_scopes_and_collections_in_bucket | 指定されたバケット内のすべてのスコープとコレクションの一覧を取得します |
get_schema_for_collection | コレクションの構造を取得します |
create_scope | バケットに新しいスコープを作成します(Couchbase Server 7.6+ および Capella)。CB_MCP_READ_ONLY_MODE=true の場合、デフォルトで無効です。 |
create_collection | 既存のスコープに新しいコレクションを作成します(Couchbase Server 7.6+ および Capella)。CB_MCP_READ_ONLY_MODE=true の場合、デフォルトで無効です。 |
delete_scope | バケットからスコープとそのすべてのコレクションを削除します — 元に戻せません。CB_MCP_READ_ONLY_MODE=true の場合、デフォルトで無効です。 |
delete_collection | スコープからコレクションとそのすべてのドキュメントを削除します — 元に戻せません。CB_MCP_READ_ONLY_MODE=true の場合、デフォルトで無効です。 |
ドキュメント KV 操作ツール
| ツール名 | 説明 |
|---|---|
get_document_by_id | 指定されたスコープとコレクションから ID でドキュメントを取得します |
lookup_subdocument | ドキュメント全体を取得せずに、パスでドキュメントの一部(特定のフィールド、存在チェック、配列/オブジェクトのカウント)を検索します |
upsert_document_by_id | 指定されたスコープとコレクションに ID でドキュメントをアップサートします。CB_MCP_READ_ONLY_MODE=true の場合、デフォルトで無効です。 |
insert_document_by_id | ID で新しいドキュメントを挿入します(ドキュメントが存在する場合は失敗します)。CB_MCP_READ_ONLY_MODE=true の場合、デフォルトで無効です。 |
replace_document_by_id | ID で既存のドキュメントを置き換えます(ドキュメントが存在しない場合は失敗します)。CB_MCP_READ_ONLY_MODE=true の場合、デフォルトで無効です。 |
delete_document_by_id | 指定されたスコープとコレクションから ID でドキュメントを削除します。CB_MCP_READ_ONLY_MODE=true の場合、デフォルトで無効です。 |
mutate_subdocument | ドキュメント全体を書き換えずに、パスで既存のドキュメントの一部(アップサート、挿入、置換、削除、配列操作、カウンター)を変更します。CB_MCP_READ_ONLY_MODE=true の場合、デフォルトで無効です。 |
クエリとインデックスツール
| ツール名 | 説明 |
|---|---|
list_indexes | クラスター内のすべてのインデックスとその定義を一覧表示します。バケット、スコープ、コレクション、インデックス名によるフィルタリングが可能です。return_raw_index_stats=true を設定すると、未処理のインデックス情報が返されます。 |
get_index_advisor_recommendations | クエリパフォーマンスを最適化するために、特定の SQL++ クエリに対する Couchbase Index Advisor からのインデックス推奨事項を取得します |
create_index | コレクションにスカラー(非ベクトル)GSI セカンダリインデックスを作成します。デフォルトでは遅延されます — ビルドするには後で build_index を呼び出します。CB_MCP_READ_ONLY_MODE=true の場合、デフォルトで無効です。 |
build_index | コレクション上のすべての遅延インデックスのビルドをトリガーします。CB_MCP_READ_ONLY_MODE=true の場合、デフォルトで無効です。 |
drop_index | コレクションから GSI インデックス(スカラーまたはベクトル)を削除します。CB_MCP_READ_ONLY_MODE=true の場合、デフォルトで無効です。 |
run_sql_plus_plus_query | 指定されたスコープで SQL++ クエリ を実行します。 クエリは自動的に指定されたバケットとスコープにスコープされるため、コレクション名を直接使用してください(例: SELECT * FROM users の代わりに SELECT * FROM bucket.scope.users)。CB_MCP_READ_ONLY_MODE はデフォルトで true であり、すべての書き込み操作(KV、クエリ、スコープ/コレクション管理、インデックス管理) が無効化されることを意味します。有効な場合、KV、コレクション管理、インデックス書き込みツールは読み込まれず、データを変更する SQL++ クエリはブロックされます。 |
explain_sql_plus_plus_query | SQL++ クエリの EXPLAIN プランを生成して評価します。クエリメタデータ、抽出されたプラン、プラン評価の結果を返します。 |
クエリパフォーマンス分析ツール
| ツール名 | 説明 |
|---|---|
get_longest_running_queries | 平均サービス時間が最も長いクエリを取得します |
get_most_frequent_queries | 最も頻繁に実行されるクエリを取得します |
get_queries_with_largest_response_sizes | レスポンスサイズが最も大きいクエリを取得します |
get_queries_with_large_result_count | 結果数が最も多いクエリを取得します |
get_queries_using_primary_index | プライマリインデックスを使用するクエリを取得します(パフォーマンス上の懸念の可能性) |
get_queries_not_using_covering_index | カバリングインデックスを使用しないクエリを取得します |
get_queries_not_selective | 選択性の低いクエリを取得します(インデックススキャンが最終結果よりもはるかに多くのドキュメントを返すもの) |
前提条件
- Python 3.10 以降。
- 実行中の Couchbase クラスター。最も簡単な開始方法は、Couchbase サーバーのフルマネージド版である Capella の無料ティアを使用することです。手順 に従ってサンプルデータセットのいずれかをインポートするか、独自のデータをインポートできます。
- サーバーを実行するために uv がインストールされていること。
- サーバーを Claude に接続するための Claude Desktop などの MCP クライアント がインストールされていること。手順は Claude Desktop と Cursor 向けに提供されています。他の MCP クライアントも使用できます。
設定
MCP サーバーは、ビルド済みの PyPI パッケージまたは uv を使用したソースのいずれかから実行できます。
PyPI から実行する
MCP サーバー用のビルド済み PyPI パッケージ を公開しています。
MCP クライアント向けビルド済みパッケージを使用したサーバー設定
基本認証
{
"mcpServers": {
"couchbase": {
"command": "uvx",
"args": ["couchbase-mcp-server"],
"env": {
"CB_CONNECTION_STRING": "couchbases://connection-string",
"CB_USERNAME": "username",
"CB_PASSWORD": "password"
}
}
}
}
または
mTLS
{
"mcpServers": {
"couchbase": {
"command": "uvx",
"args": ["couchbase-mcp-server"],
"env": {
"CB_CONNECTION_STRING": "couchbases://connection-string",
"CB_CLIENT_CERT_PATH": "/path/to/client-certificate.pem",
"CB_CLIENT_KEY_PATH": "/path/to/client.key"
}
}
}
}
注:クライアントで他の MCP サーバーを使用している場合は、既存の
mcpServersオブジェクトに追加できます。
ソースから実行する
MCP サーバーは、このリポジトリを使用してソースから実行できます。
リポジトリをローカルマシンにクローンする
git clone https://github.com/couchbase/mcp-server-couchbase.git
MCP クライアント向けソースを使用したサーバー設定
これは Claude Desktop、Cursor、Windsurf Editor などの MCP クライアント向けの共通設定です。
{
"mcpServers": {
"couchbase": {
"command": "uv",
"args": [
"--directory",
"path/to/cloned/repo/mcp-server-couchbase/",
"run",
"src/mcp_server.py"
],
"env": {
"CB_CONNECTION_STRING": "couchbases://connection-string",
"CB_USERNAME": "username",
"CB_PASSWORD": "password"
}
}
}
}
注:
path/to/cloned/repo/mcp-server-couchbase/はローカルマシン上のクローンしたリポジトリへのパスである必要があります。末尾のスラッシュを忘れないでください!
注:クライアントで他の MCP サーバーを使用している場合は、既存の
mcpServersオブジェクトに追加できます。
MCP サーバーの追加設定
サーバーは環境変数またはコマンドライン引数を使用して設定できます:
| 環境変数 | CLI引数 | 説明 | デフォルト |
|---|---|---|---|
CB_CONNECTION_STRING | --connection-string | Couchbaseクラスタへの接続文字列 | 必須 |
CB_USERNAME | --username | 基本認証用に必要なバケットへのアクセス権を持つユーザー名 | 必須(mTLSにはクライアント証明書とキーが必要) |
CB_PASSWORD | --password | 基本認証用のパスワード | 必須(mTLSにはクライアント証明書とキーが必要) |
CB_CLIENT_CERT_PATH | --client-cert-path | mTLS認証用のクライアント証明書ファイルへのパス | mTLSを使用する場合は必須(またはユーザー名とパスワードが必要) |
CB_CLIENT_KEY_PATH | --client-key-path | mTLS認証用のクライアントキーファイルへのパス | mTLSを使用する場合は必須(またはユーザー名とパスワードが必要) |
CB_CA_CERT_PATH | --ca-cert-path | サーバーが自己署名/信頼されていない証明書で構成されている場合のTLS用サーバールート証明書へのパス。Capellaに接続する場合は不要です | |
CB_MCP_READ_ONLY_MODE | --read-only-mode | すべてのデータ変更(KV、Query、スコープ/コレクション管理、インデックス管理)を防止します。有効にすると、KV、コレクション管理、インデックス書き込みツールはロードされません。 | true |
CB_MCP_TRANSPORT | --transport | トランスポートモード: stdio、http、sse | stdio |
CB_MCP_HOST | --host | HTTP/SSEトランスポートモード用のホスト | 127.0.0.1 |
CB_MCP_PORT | --port | HTTP/SSEトランスポートモード用のポート | 8000 |
CB_MCP_DISABLED_TOOLS | --disabled-tools | 無効にするツール(ツールの無効化を参照) | なし |
CB_MCP_CONFIRMATION_REQUIRED_TOOLS | --confirmation-required-tools | MCPエリシテーションによる実行前に明示的なユーザー確認が必要なツール(エリシテーション/確認が必要なツールを参照) | なし |
CB_MCP_LOG_LEVEL | --log-level | MCPサーバーのロギングレベル: off、debug、info、warning、error(ロギングを参照) | info |
CB_MCP_LOG_SINKS | --log-sinks | カンマ区切りのログ出力先: stderr、file、または両方(ロギングを参照) | stderr |
CB_MCP_LOG_FILE | --log-file | レベル別ログファイルのベースパス(fileシンクが有効な場合のみ使用) | mcp_server.log |
CB_MCP_LOG_ROTATION_MAX_SIZE_MB | --log-rotation-max-size-mb | ローテーション前のログファイルごとのグローバル最大サイズ(MB単位)。上書きされない限り、すべてのレベルに継承されます。0は無効で、起動時の警告とともにデフォルトにフォールバックします | 1(1 MB) |
CB_MCP_LOG_MAX_BYTES | --log-max-bytes | 非推奨 — CB_MCP_LOG_ROTATION_MAX_SIZE_MB(MB)を使用してください。グローバルローテーションサイズ(バイト単位)。後方互換性のため引き続き有効ですが、CB_MCP_LOG_ROTATION_MAX_SIZE_MBも設定されている場合は無視されます | 未設定 |
CB_MCP_LOG_ERROR_ROTATION_MAX_SIZE_MB | --log-error-rotation-max-size-mb | ERRORログファイルのローテーションサイズ(MB単位)。ERRORのCB_MCP_LOG_ROTATION_MAX_SIZE_MBを上書きします | CB_MCP_LOG_ROTATION_MAX_SIZE_MBを継承 |
CB_MCP_LOG_WARNING_ROTATION_MAX_SIZE_MB | --log-warning-rotation-max-size-mb | WARNINGログファイルのローテーションサイズ(MB単位)。WARNINGのCB_MCP_LOG_ROTATION_MAX_SIZE_MBを上書きします | CB_MCP_LOG_ROTATION_MAX_SIZE_MBを継承 |
CB_MCP_LOG_INFO_ROTATION_MAX_SIZE_MB | --log-info-rotation-max-size-mb | INFOログファイルのローテーションサイズ(MB単位)。INFOのCB_MCP_LOG_ROTATION_MAX_SIZE_MBを上書きします | CB_MCP_LOG_ROTATION_MAX_SIZE_MBを継承 |
CB_MCP_LOG_DEBUG_ROTATION_MAX_SIZE_MB | --log-debug-rotation-max-size-mb | DEBUGログファイルのローテーションサイズ(MB単位)。DEBUGのCB_MCP_LOG_ROTATION_MAX_SIZE_MBを上書きします | CB_MCP_LOG_ROTATION_MAX_SIZE_MBを継承 |
CB_MCP_LOG_RETENTION_BACKUP_COUNT | --log-retention-backup-count | レベル別ログファイルごとに保持されるローテーション済みバックアップファイル数(ライブファイルを除く)。上書きされない限りすべてのレベルに適用されます。0はライブファイルのみを保持します(ロギングを参照) | 1 |
CB_MCP_LOG_ERROR_RETENTION_BACKUP_COUNT | --log-error-retention-backup-count | ERRORログファイルに保持されるローテーション済みバックアップ数。ERRORのグローバル数を上書きします | CB_MCP_LOG_RETENTION_BACKUP_COUNTを継承 |
CB_MCP_LOG_WARNING_RETENTION_BACKUP_COUNT | --log-warning-retention-backup-count | WARNINGログファイルに保持されるローテーション済みバックアップ数。WARNINGのグローバル数を上書きします | CB_MCP_LOG_RETENTION_BACKUP_COUNTを継承 |
CB_MCP_LOG_INFO_RETENTION_BACKUP_COUNT | --log-info-retention-backup-count | INFOログファイルに保持されるローテーション済みバックアップ数。INFOのグローバル数を上書きします | CB_MCP_LOG_RETENTION_BACKUP_COUNTを継承 |
CB_MCP_LOG_DEBUG_RETENTION_BACKUP_COUNT | --log-debug-retention-backup-count | DEBUGログファイルに保持されるローテーション済みバックアップ数。DEBUGのグローバル数を上書きします | CB_MCP_LOG_RETENTION_BACKUP_COUNTを継承 |
CB_MCP_OAUTH_JWT_JWKS_URI | --oauth-jwks-uri | Bearer JWTの検証に使用されるIDプロバイダーのJWKSエンドポイント。issuerおよびaudienceとともに設定するとOAuthが有効になります(OAuth 2.1認可を参照) | なし |
CB_MCP_OAUTH_JWT_ISSUER | --oauth-issuer | 期待されるJWT issクレーム。OAuthを有効にするために必要です | なし |
CB_MCP_OAUTH_JWT_AUDIENCE | --oauth-audience | 期待されるJWT audクレーム。OAuthを有効にするために必要です | なし |
CB_MCP_OAUTH_JWT_ALGORITHM | --oauth-algorithm | JWT署名アルゴリズム: RS256/384/512、ES256/384/512、PS256/384/512のいずれか | RS256 |
CB_MCP_OAUTH_MCP_BASE_URL | --oauth-mcp-base-url | このサーバーの公開ベースURL。設定すると、RFC 9728 Protected Resource Metadataを公開し、PRM対応クライアントがIdPを検出できるようにします | なし |
CB_MCP_OAUTH_SCOPE_READ_LABEL | --oauth-scope-read-label | 「読み取り」アクセスとして扱われるOAuthスコープラベルを上書きします(PRMで公開され、トークンのscope/scpクレームと照合されます)。IdPが標準形式を発行できない場合に使用します | couchbase-mcp:read |
CB_MCP_OAUTH_SCOPE_WRITE_LABEL | --oauth-scope-write-label | 「書き込み」アクセスとして扱われるOAuthスコープラベルを上書きします。読み取りラベルと同じセマンティクスです | couchbase-mcp:write |
読み取り専用モードの構成
**CB_MCP_READ_ONLY_MODE**は書き込み操作を制御する単一のスイッチです:
trueの場合(デフォルト): すべての書き込み操作(KV、Query、スコープ/コレクション管理、インデックス管理)が無効になります。KV書き込みツール(upsert、insert、replace、delete、sub-document mutate)、スコープ/コレクション管理書き込みツール(create_scope、create_collection、delete_scope、delete_collection)、インデックス書き込みツール(create_index、build_index、drop_index)はロードされず、LLMが利用できません。また、データや構造を変更するSQL++クエリはブロックされます。falseの場合: KV、スコープ/コレクション管理、インデックス書き込みツールがロードされ、SQL++のデータ/構造変更クエリが許可されます。
これは、LLMによる不意のデータ変更を防ぐための推奨される安全なデフォルトです。
注: 認証には、ユーザー名とパスワード、またはクライアント証明書とキーのパスのいずれかが必要です。オプションで、サーバー証明書の検証に使用されるCAルート証明書のパスを指定できます。 クライアント証明書とキーのパス、およびユーザー名とパスワードの両方が指定された場合、認証にはクライアント証明書が使用されます。
ツールの無効化
特定のツールを無効にして、MCPクライアントにロード・公開されないようにすることができます。無効化されたツールはツールディスカバリに表示されず、LLMから呼び出すこともできません。
サポートされる形式
カンマ区切りリスト:
# Environment variable
CB_MCP_DISABLED_TOOLS="upsert_document_by_id, delete_document_by_id"
# Command line
uvx couchbase-mcp-server --disabled-tools upsert_document_by_id, delete_document_by_id
ファイルパス(1行に1つのツール名):
# Environment variable
CB_MCP_DISABLED_TOOLS=disabled_tools.txt
# Command line
uvx couchbase-mcp-server --disabled-tools disabled_tools.txt
ファイル形式(例: disabled_tools.txt):
# Write operations
upsert_document_by_id
delete_document_by_id
# Index advisor
get_index_advisor_recommendations
#で始まる行はコメントとして扱われ、無視されます。
MCPクライアント設定の例
カンマ区切りリストを使用:
{
"mcpServers": {
"couchbase": {
"command": "uvx",
"args": ["couchbase-mcp-server"],
"env": {
"CB_CONNECTION_STRING": "couchbases://connection-string",
"CB_USERNAME": "username",
"CB_PASSWORD": "password",
"CB_MCP_DISABLED_TOOLS": "upsert_document_by_id,delete_document_by_id"
}
}
}
}
ファイルパスを使用(多数のツールに推奨):
{
"mcpServers": {
"couchbase": {
"command": "uvx",
"args": ["couchbase-mcp-server"],
"env": {
"CB_CONNECTION_STRING": "couchbases://connection-string",
"CB_USERNAME": "username",
"CB_PASSWORD": "password",
"CB_MCP_DISABLED_TOOLS": "/path/to/disabled_tools.txt"
}
}
}
}
重要なセキュリティに関する注意
警告: ツールの無効化だけでは、特定の操作を実行できないことを保証するものではありません。基盤となるデータベースユーザーのRBAC(ロールベースアクセス制御)権限が権威あるセキュリティ制御です。
たとえば、
upsert_document_by_idとdelete_document_by_idを無効にしても、以下の場合を除き、run_sql_plus_plus_queryツールを使用したSQL++ DMLステートメント(INSERT、UPDATE、DELETE、MERGE)によってデータ変更が発生する可能性があります:
CB_MCP_READ_ONLY_MODEがtrue(デフォルト)に設定されている、または- データベースユーザーにデータ変更に必要なRBAC権限がない
ベストプラクティス: 主要なセキュリティ対策として、Couchbaseユーザー資格情報に適切なRBAC権限を常に構成してください。ツールの無効化は、LLMの動作を導き攻撃対象領域を減らすための追加レイヤーとして使用し、唯一のセキュリティ制御としては使用しないでください。
ツール呼び出しのエリシテーション/確認
特定のツールについて、実行前に明示的なユーザー確認を要求できます(MCPクライアントがエリシテーションをサポートしている場合)。
CB_MCP_CONFIRMATION_REQUIRED_TOOLS / --confirmation-required-toolsは以下の形式をサポートします:
- カンマ区切りリスト
- ファイルパス(1行に1つのツール名、
#コメント対応)
例:
# Environment variable
CB_MCP_CONFIRMATION_REQUIRED_TOOLS="delete_document_by_id,replace_document_by_id"
# Command line
uvx couchbase-mcp-server --confirmation-required-tools delete_document_by_id,replace_document_by_id
リストされたツールが呼び出された場合:
- クライアントがエリシテーションをサポートしている場合、ユーザーに確認を求めます。
- クライアントがエリシテーションをサポートしていない場合、後方互換性のため、確認なしでツールが実行されます。
サーバーのバージョンを確認するには、以下を使用します:
uvx couchbase-mcp-server --version
ロギング
MCPサーバーはデフォルトでstderrにログを出力します。ロギングは追加設定にリストされているCB_MCP_LOG_*変数で構成されます:
CB_MCP_LOG_LEVEL— ログの量:info(デフォルト)はライフサイクルイベントとツール呼び出しをログし、debugは詳細な内部情報を追加し、offはすべてのロギングを無効にします。CB_MCP_LOG_SINKS— ログの出力先:stderr(デフォルト)、レベル別ローテーションファイル(file)、または両方。fileの場合、CB_MCP_LOG_FILEで設定されたパスにレベルごとに1つのファイルが書き込まれます(例:mcp_server.info.logとmcp_server.error.log)。- ローテーションサイズ —
CB_MCP_LOG_ROTATION_MAX_SIZE_MBは各レベル別ファイルがローテーションするグローバルサイズ(MB単位)です。個々のレベルはCB_MCP_LOG_<LEVEL>_ROTATION_MAX_SIZE_MB(ERROR/WARNING/INFO/DEBUG)で上書きできます。これもMB単位で、未設定の場合はグローバル値を継承します。0(グローバルまたはレベル別)のサイズは無効で、起動時の警告とともにデフォルト(1 MB)にフォールバックします。CB_MCP_LOG_MAX_BYTES(バイト)は非推奨ですが、後方互換性のため引き続き有効です。CB_MCP_LOG_ROTATION_MAX_SIZE_MBも設定されている場合は無視され、起動時に非推奨の警告が表示されます。 - 保持 —
CB_MCP_LOG_RETENTION_BACKUP_COUNTはレベルごとに保持されるローテーション済みバックアップ数(ライブファイルを除く)を設定します。デフォルトの1は以前の動作を維持します。個々のレベルはCB_MCP_LOG_<LEVEL>_RETENTION_BACKUP_COUNT(ERROR/WARNING/INFO/DEBUG)で上書きでき、未設定の場合はグローバル値を継承します。あるレベルについて0に設定すると、そのレベルのライブファイルのみが保持されます。ローテーションサイズの上限は依然として適用されます(ロールオーバー時にリセットされ、バックアップされません)。 - サーバー設定スナップショット —
fileシンクがアクティブな場合、ワンショットレコード(OS、Python、依存関係のバージョン、トランスポート、解決済みのロギング設定、および編集済みサーバー設定)がJSONとして専用のmcp_server_config.log.jsonファイル(CB_MCP_LOG_FILEベースから派生)に書き込まれます。起動のたびに上書きされるため、サポートは常に現在の設定を保持でき、ローテーションログからスクロールアウトされることはありません。
# Enable debug logging to both stderr and rotating per-level files
uvx couchbase-mcp-server --log-level=debug --log-sinks=stderr,file
# Keep 30 rotated ERROR backups but only the live DEBUG file
uvx couchbase-mcp-server --log-level=debug --log-sinks=file \
--log-error-retention-backup-count=30 --log-debug-retention-backup-count=0
詳細については、ドキュメントを参照してください。
クライアント固有の設定
Claude Desktop
Couchbase MCPサーバーをClaude Desktop MCPクライアントで使用するには、以下の手順に従ってください:
-
MCPサーバーは、設定ファイルを編集することでClaude Desktopに追加できるようになりました。より詳細な手順はMCPクイックスタートガイドに記載されています。
- Macでは、設定ファイルは
~/Library/Application Support/Claude/claude_desktop_config.jsonにあります - Windowsでは、設定ファイルは
%APPDATA%\Claude\claude_desktop_config.jsonにあります 設定ファイルを開き、設定 をmcpServersセクションに追加します。
- Macでは、設定ファイルは
-
変更を適用するには、Claude Desktop を再起動します。
-
これで、Claude Desktop でサーバーを使用して、自然言語で Couchbase クラスターに対してクエリを実行し、ドキュメントに対して CRUD 操作を実行できます。
ログ
Claude Desktop のログは、次の場所にあります:
- MacOS: ~/Library/Logs/Claude
- Windows: %APPDATA%\Claude\Logs
ログは、MCP サーバー設定に関する接続の問題やその他の問題の診断に使用できます。詳細については、公式ドキュメント を参照してください。
Cursor
Cursor で Couchbase MCP サーバーを使用するには、以下の手順に従ってください:
-
お使いのマシンに Cursor をインストールします。
-
Cursor で、Cursor > Cursor Settings > Tools & Integrations > MCP Tools に移動します。また、Cursor の MCP サーバー設定のセットアップ に関するドキュメントも確認してください。
-
同じ 設定 を手動で指定するか、ワンクリックの Install in Cursor リンクを使用します。サーバー設定は、
mcpServersの親キーの下に追加する必要がある場合があります。注:インストールリンクは、上記の設定例のプレースホルダー値を使用します。インストール後に接続文字列と資格情報を更新してください。
-
設定を保存します。
-
MCP サーバーリストに couchbase が追加されたサーバーとして表示されます。サーバーが有効になっているかどうかを確認するには、更新します。
-
これで、Cursor で Couchbase MCP サーバーを使用して、自然言語で Couchbase クラスターに対してクエリを実行し、ドキュメントに対して CRUD 操作を実行できます。
Cursor との MCP 統合の詳細については、公式 Cursor MCP ドキュメント を参照してください。
ログ
Cursor の下部パネルで、「Output」をクリックし、ドロップダウンメニューから「Cursor MCP」を選択してサーバーログを表示します。これにより、MCP サーバー設定に関する接続の問題やその他の問題を診断できます。
Windsurf Editor
以下の手順に従って、Windsurf Editor で Couchbase MCP サーバーを使用します。
-
お使いのマシンに Windsurf Editor をインストールします。
-
Windsurf Editor で、Command Palette > Windsurf MCP Configuration Panel または Windsurf - Settings > Advanced > Cascade > Model Context Protocol (MCP) Servers に移動します。設定の詳細については、公式ドキュメント を参照してください。
-
Add Server をクリックし、次に Add custom server をクリックします。エディターで開いた設定に、上記の Couchbase MCP サーバーの 設定 を追加します。
-
設定を保存します。
-
Advanced Settings の下の MCP Servers リストに、couchbase が追加されたサーバーとして表示されます。サーバーが有効になっているかどうかを確認するには、更新します。
-
これで、Windsurf Editor で Couchbase MCP サーバーを使用して、自然言語で Couchbase クラスターに対してクエリを実行し、ドキュメントに対して CRUD 操作を実行できます。
Windsurf Editor との MCP 統合の詳細については、公式の Windsurf MCP ドキュメント を参照してください。
VS Code
以下の手順に従って、VS Code で Couchbase MCP サーバーを使用します。
-
VS Code をインストールします。
-
MCP サーバーを設定する方法はいくつかあります。
-
ワークスペースサーバー設定の場合
- ワークスペースに .vscode/mcp.json という新しいファイルを作成します。
- 設定 を追加してファイルを保存します。
-
グローバルサーバー設定の場合:
- コマンドパレット(
Ctrl+Shift+PまたはCmd+Shift+P)で MCP: Open User Configuration を実行します。 - 設定 を追加してファイルを保存します。
- コマンドパレット(
-
注:VS Code は mcp.json ファイルのトップレベルの JSON プロパティとして
serversを使用して MCP(Model Context Protocol)サーバーを定義しますが、Cursor は同等の設定にmcpServersを使用します。その他の変更や詳細については、VS Code クライアント設定 を確認してください。VS Code の設定例を以下に示します。{ "servers": { "couchbase": { "command": "uvx", "args": ["couchbase-mcp-server"], "env": { "CB_CONNECTION_STRING": "couchbases://connection-string", "CB_USERNAME": "username", "CB_PASSWORD": "password" } } } }
-
-
ファイルを保存すると、サーバーが起動し、
Running|Stop|n Tools|More..を含む小さなアクションリストが表示されます。 -
オプションリストからオプションをクリックして、サーバーを
Start/Stop/管理します。 -
これで、VS Code で Couchbase MCP サーバーを使用して、自然言語で Couchbase クラスターに対してクエリを実行し、ドキュメントに対して CRUD 操作を実行できます。
ログ:
コマンドパレット(Ctrl+Shift+P または Cmd+Shift+P)で、
- MCP: List Servers コマンドを実行し、couchbase サーバーを選択します。
- 「Show Output」を選択して、Output タブでログを表示します。
JetBrains IDEs
以下の手順に従って、JetBrains IDEs で Couchbase MCP サーバーを使用します。
- JetBrains IDEs のいずれかをインストールします。
- JetBrains プラグインのいずれか - AI Assistant または Junie をインストールします。
- Settings > Tools > AI Assistant or Junie > MCP Server に移動します。
- 「+」をクリックして Couchbase MCP の 設定 を追加し、Save をクリックします。
- Couchbase MCP サーバーがサーバーのリストに追加されているのが表示されます。Apply をクリックすると、Couchbase MCP サーバーが起動し、ステータスにホバーすると、利用可能なすべてのツールが表示されます。
- これで、JetBrains IDEs で Couchbase MCP サーバーを使用して、自然言語で Couchbase クラスターに対してクエリを実行し、ドキュメントに対して CRUD 操作を実行できます。
ログ: ログファイルは、Help > Show Log in Finder (Explorer) > mcp > couchbase で確認できます。
Streamable HTTP トランスポートモード
MCP サーバーは、複数のクライアントが HTTP 経由で同じサーバーインスタンスに接続できる Streamable HTTP トランスポートモードで実行できます。 このモードで MCP サーバーに接続する前に、MCP クライアント が streamable http トランスポートをサポートしているかどうかを確認してください。
注:このトランスポートでは OAuth 2.1 認証がサポートされています。OAuth 2.1 認証 を参照してください。OAuth が設定されていない場合、HTTP エンドポイントは認証されません。
使用方法
デフォルトでは、MCP サーバーはポート 8000 で実行されますが、これは --port または CB_MCP_PORT 環境変数を使用して設定できます。
uvx couchbase-mcp-server \
--connection-string='<couchbase_connection_string>' \
--username='<database_username>' \
--password='<database_password>' \
--read-only-mode=true \
--transport=http
サーバーは http://localhost:8000/mcp で利用可能になります。これは、Cursor などの streamable http トランスポートモードをサポートする MCP クライアントで使用できます。
MCP クライアント設定
{
"mcpServers": {
"couchbase-http": {
"url": "http://localhost:8000/mcp"
}
}
}
SSE トランスポートモード
MCP サーバーを Server-Sent Events (SSE) トランスポートモードで実行するオプションがあります。
注:SSE モードは MCP によって 非推奨 になりました。Streamable HTTP をサポートしています。
SSE:使用方法
デフォルトでは、MCP サーバーはポート 8000 で実行されますが、これは --port または CB_MCP_PORT 環境変数を使用して設定できます。
uvx couchbase-mcp-server \
--connection-string='<couchbase_connection_string>' \
--username='<database_username>' \
--password='<database_password>' \
--read-only-mode=true \
--transport=sse
サーバーは http://localhost:8000/sse で利用可能になります。これは、Cursor などの SSE トランスポートモードをサポートする MCP クライアントで使用できます。
SSE:MCP クライアント設定
{
"mcpServers": {
"couchbase-sse": {
"url": "http://localhost:8000/sse"
}
}
}
OAuth 2.1 認証
--transport=http で実行する場合、MCP サーバーは OAuth 2.1 リソースサーバー として機能できます。つまり、受信したベアラー JWT を ID プロバイダーの JWKS に対して検証します。プロバイダーに依存しません(JWKS を公開する任意の OAuth 2.1 / OIDC プロバイダー — Auth0、Okta、Keycloak、AWS Cognito、Microsoft Entra など)。トークンを発行したり、ユーザーを管理したりすることは ありません。OAuth 設定は stdio では無視されます。
OAuth は、追加設定 に記載されている CB_MCP_OAUTH_* 変数で設定されます:
- OAuth は、
CB_MCP_OAUTH_JWT_JWKS_URI、CB_MCP_OAUTH_JWT_ISSUER、CB_MCP_OAUTH_JWT_AUDIENCEの 3 つすべてが設定されている場合にのみ有効になります。一部のみを設定すると、起動時に失敗します。 CB_MCP_OAUTH_MCP_BASE_URLを設定すると、RFC 9728 Protected Resource Metadata も公開され、PRM 対応クライアントが認可サーバーを検出できるようになります。- アクセスは、トークンの
scope/scpクレームから読み取られる 2 つのスコープによって制御されます:couchbase-mcp:read(SQL++ を含む読み取りツール)とcouchbase-mcp:write(書き込みツール:KV ミューテーション、スコープ/コレクション管理、インデックス管理)。フルアクセスには両方が必要です。IdP がこれらの標準ラベルを発行できない場合は、CB_MCP_OAUTH_SCOPE_READ_LABEL/CB_MCP_OAUTH_SCOPE_WRITE_LABELで上書きします。
uvx couchbase-mcp-server \
--connection-string='<couchbase_connection_string>' \
--username='<database_username>' \
--password='<database_password>' \
--transport=http \
--oauth-jwks-uri='https://auth.example.com/.well-known/jwks.json' \
--oauth-issuer='https://auth.example.com/' \
--oauth-audience='couchbase-mcp-server' \
--oauth-mcp-base-url='<public_base_url_of_this_server>'
詳細については、ドキュメント を参照してください。
Docker イメージ
MCP サーバーは、Docker コンテナとしてビルドして実行することもできます。ビルド済みイメージは DockerHub で見つけるか、docker pull docker.io/couchbase/mcp-server:latest でプルできます。
あるいは、Docker MCP Catalog の一部でもあります。
イメージのビルド
docker build -t mcp/couchbase-src .
引数を使用したビルド
コミットハッシュとビルド時間のビルド引数でビルドする場合は、次を使用してビルドできます:docker build --build-arg GIT_COMMIT_HASH=$(git rev-parse HEAD) \
--build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \
-t mcp/couchbase-src .
あるいは、提供されているビルドスクリプトを使用します:
# Build with default image name (mcp/couchbase-src)
./build.sh
# Build with custom image name
./build.sh my-custom/image-name
このスクリプトは自動的に:
- オプションのイメージ名パラメータを受け入れます(デフォルトは
mcp/couchbase-src) - git コミットハッシュとビルドタイムスタンプを生成します
- 複数の便利なタグを作成します(
latest、<short-commit>) - ビルド情報と結果を表示します
- CI/CD ビルドと同じ引数を使用します
イメージラベルの確認:
# View git commit hash in image
docker inspect --format='{{index .Config.Labels "org.opencontainers.image.revision"}}' mcp/couchbase-src:latest
# View all metadata labels
docker inspect --format='{{json .Config.Labels}}' mcp/couchbase-src:latest
実行
MCP サーバーは、Couchbase 設定を構成するために使用される環境変数を使用して実行できます。環境変数は、追加設定セクション で説明されているものと同じです。
独立した Docker コンテナ
docker run --rm -i \
-e CB_CONNECTION_STRING='<couchbase_connection_string>' \
-e CB_USERNAME='<database_user>' \
-e CB_PASSWORD='<database_password>' \
-e CB_MCP_TRANSPORT='<http|sse|stdio>' \
-e CB_MCP_READ_ONLY_MODE='<true|false>' \
-e CB_MCP_CONFIRMATION_REQUIRED_TOOLS='delete_document_by_id' \
-e CB_MCP_PORT=9001 \
-e CB_MCP_HOST=0.0.0.0 \
-p 9001:9001 \
mcp/couchbase-src
CB_MCP_PORT および CB_MCP_HOST 環境変数は、http や sse などの HTTP トランスポートモードの場合にのみ適用されます。
Docker:MCP クライアント設定
Docker イメージは、次の設定で stdio トランスポートモードで使用できます。
{
"mcpServers": {
"couchbase-mcp-docker": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"CB_CONNECTION_STRING=<couchbase_connection_string>",
"-e",
"CB_USERNAME=<database_user>",
"-e",
"CB_PASSWORD=<database_password>",
"mcp/couchbase-src"
]
}
}
}
注
couchbase_connection_stringの値は、Couchbase サーバーが同じホストマシン、別の Docker コンテナ、またはリモートホストのいずれで実行されているかによって異なります。Couchbase サーバーがホストマシンで実行されている場合、接続文字列はおそらくcouchbase://host.docker.internalの形式になります。詳細については、docker ドキュメント を参照してください。- コンテナのネットワーキングは、
--network=<your_network>オプションを使用して指定できます。選択するネットワークは環境によって異なります。デフォルトはbridgeです。詳細については、docker のネットワークドライバー を参照してください。
LLM に関連するリスク
- 大規模言語モデルおよび類似のテクノロジーの使用には、不正確または有害な出力の可能性を含むリスクが伴います。
- Couchbase は、そのような出力の品質や正確性をレビューまたは評価せず、そのような出力が Couchbase の見解を反映していない場合があります。
- 大規模言語モデルおよび関連テクノロジーを使用するかどうかの決定、およびライセンス条項、利用規約、およびそれらの使用を管理する組織のポリシーへの準拠については、お客様が単独で責任を負います。
使用状況データの収集
この製品は、使用状況およびパフォーマンスデータ(製品名やバージョンなど)とブラウザ情報(IP アドレスなど)を自動的に収集します(総称して「使用状況データ」)。Couchbase は、使用状況データを、お客様が Couchbase に提供する可能性のあるその他のデータ(ユーザー名やメールアドレスなど)とともに、製品の開発と改善、および営業およびマーケティングプログラムの情報提供に使用します。Couchbase 製品に保存されたデータにはアクセスまたは収集しません。使用状況データを使用して、集計された使用パターンを理解し、製品をお客様にとってより有用なものにします。Couchbase が情報を収集、保護、処理する方法の詳細については、https://www.couchbase.com/privacy-policy. で閲覧できる Couchbase プライバシーポリシーを参照してください。
トラブルシューティングのヒント
- ソースから実行する場合は、設定内のMCPサーバーリポジトリへのパスが正しいことを確認してください。
- Couchbaseの接続文字列、データベースのユーザー名、パスワード、または証明書へのパスが正しいことを確認してください。
- Couchbase Capellaを使用する場合は、MCPサーバーが実行されているマシンからクラスターにアクセス可能であることを確認してください。
- データベースユーザーが少なくとも1つのバケットにアクセスするための適切な権限を持っていることを確認してください。
uvパッケージマネージャーが正しくインストールされ、アクセス可能であることを確認してください。設定のcommandフィールドにuv/uvxへの絶対パスを指定する必要がある場合があります。- MCPサーバーの問題を示す可能性のあるエラーや警告がないかログを確認してください。ログの場所はMCPクライアントによって異なります。
- ローカルのMCPサーバーリポジトリを更新した後にソースからMCPサーバーを実行する際に問題が発生する場合は、
uv syncを実行して依存関係を更新してみてください。
統合テスト
サーバーが期待されるツールを公開し、それらがデモのCouchbaseクラスターに対して呼び出し可能であることを検証するための高レベルのMCP統合テストを提供しています。
- デモクラスターの認証情報をエクスポートします:
CB_CONNECTION_STRINGCB_USERNAMECB_PASSWORD- オプション:
CB_MCP_TEST_BUCKET(テスト中にプローブするバケット)
- テストを実行します:
uv run pytest tests/ -v
👩💻 コントリビューション
コミュニティからの貢献を歓迎します!バグの修正、機能の追加、ドキュメントの改善など、どのような貢献も歓迎します。
ヘルプが必要な場合、バグを見つけた場合、または改善に貢献したい場合は、GitHub issueを開くことでここで行うのが最適です。
開発者の方へ
コードの貢献や開発環境のセットアップに興味がある場合:
📖 包括的な開発者セットアップ手順については、CONTRIBUTING.mdを参照してください。以下を含みます:
uvを使用した開発環境のセットアップ- Ruffを使用したコードのリンティングとフォーマット
- Pre-commitフックのインストール
- プロジェクト構造の概要
- 開発ワークフローとプラクティス
コントリビューター向けクイックスタート
# Clone and setup
git clone https://github.com/couchbase/mcp-server-couchbase.git
cd mcp-server-couchbase
# Install with development dependencies
uv sync --extra dev
# Install pre-commit hooks
uv run pre-commit install
# Run linting
./scripts/lint.sh
📢 サポートポリシー
このプロジェクトへの関心を心から感謝します! このプロジェクトはCouchbaseコミュニティメンテナンスであり、サポートチームによる公式サポートは提供されていません。ただし、当社のエンジニアはこのリポジトリを積極的に監視・保守しており、ベストエフォートで問題の解決に努めます。
サポートポータルではこのプロジェクトに関連するリクエストに対応できませんので、すべてのお問い合わせはGitHub内で行っていただくようお願いいたします。
皆様の協力が私たち全員の前進につながります。ありがとうございます!