Couchbase
resmiBerinteraksi dengan data yang tersimpan di klaster Couchbase menggunakan bahasa alami.
Apa yang bisa Anda lakukan dengan Couchbase MCP?
- Jelajahi struktur cluster — Minta untuk mencantumkan bucket, scope, dan koleksi, serta periksa skema melalui
get_buckets_in_cluster,get_scopes_in_bucket, danget_schema_for_collection. - Jalankan kueri SQL++ — Jalankan kueri hanya-baca terhadap sebuah scope dengan
run_sql_plus_plus_query, atau dapatkan rencana eksekusi melaluiexplain_sql_plus_plus_query. - Periksa kesehatan cluster — Verifikasi koneksi dan status layanan dengan
test_cluster_connectiondanget_cluster_health_and_services, atau tarik diagnostik melaluiget_cluster_diagnostics_report. - Analisis performa kueri — Identifikasi kueri yang lambat atau tidak efisien menggunakan
get_longest_running_queriesdanget_queries_using_primary_index. - Kelola dokumen — Ambil atau ubah dokumen berdasarkan ID dengan
get_document_by_iddanupsert_document_by_id(alat tulis memerlukanCB_MCP_READ_ONLY_MODE=false). - Optimalkan indeks — Dapatkan rekomendasi indeks dengan
get_index_advisor_recommendationsatau daftarkan indeks yang ada melaluilist_indexes.
Dokumentasi
Server MCP Couchbase
Server MCP Couchbase adalah server Model Context Protocol (MCP) yang di-hosting sendiri yang menghubungkan agen AI dan asisten bertenaga LLM — Claude, Cursor, Windsurf, VS Code Copilot, dan klien MCP lainnya — ke data di klaster Couchbase, baik yang di-hosting di Capella maupun yang dikelola sendiri. MCP adalah standar terbuka untuk memungkinkan asisten AI memanggil alat dan mengakses sumber data eksternal; server ini mengimplementasikan standar tersebut untuk Couchbase, sehingga agen AI dapat memeriksa klaster Anda, menjalankan kueri SQL++, membaca dan menulis dokumen, serta menganalisis performa kueri menggunakan bahasa alami alih-alih kode yang ditulis manual.
Server ini menyediakan alat di berbagai kategori termasuk Kesehatan Klaster, Skema Data, Key-Value, Kueri, dan Performa — dengan kontrol keamanan melalui mode baca-saja (aktif secara default) dan penonaktifan alat secara terperinci, sehingga Anda dapat membiarkan agen AI menjelajahi dan mengkueri data Anda tanpa risiko penulisan yang tidak disengaja. Server ini mendukung transport STDIO dan Streamable HTTP.
Server MCP Couchbase didistribusikan sebagai paket Python Package Index (PyPI) dan melalui Docker. Dukungan enterprise untuk Server MCP Couchbase tersedia dengan melisensikan Couchbase AI Data Plane, yang juga mencakup penggunaan dan dukungan enterprise untuk Couchbase Agent Memory dan Couchbase Agent Catalog.
Untuk dokumentasi lengkap, kunjungi mcp-server.couchbase.com.
Untuk dokumentasi lengkap, kunjungi docs.couchbase.com/mcp-server.
Daftar Isi
- Mengapa Server MCP Couchbase
- Contoh Prompt
- Fitur/Alat
- Prasyarat
- Konfigurasi
- Server Operational Insights
- Mode Transport Streamable HTTP
- Mode Transport SSE
- Otorisasi OAuth 2.1
- Citra Docker
- Pengumpulan Data Penggunaan
- Tips Pemecahan Masalah
- Pengujian Integrasi
- FAQ
- Kontribusi
- Kebijakan Dukungan
Mengapa Server MCP Couchbase
- Aman secara default — operasi penulisan (upsert/insert/delete dokumen dan kueri SQL++ yang memodifikasi data) diblokir kecuali Anda secara eksplisit mengatur
CB_MCP_READ_ONLY_MODE=false, dan alat individual dapat dinonaktifkan atau dibatasi di belakang konfirmasi pengguna. - Berfungsi dengan klaster Capella dan yang dikelola sendiri — konfigurasi yang sama terhubung ke Couchbase Capella (dikelola penuh) atau klaster Couchbase Server yang di-hosting sendiri.
- Sadar RBAC — penonaktifan alat adalah lapisan kenyamanan untuk memandu perilaku LLM; kontrol akses berbasis peran pengguna Couchbase yang mendasarinya tetap menjadi batas keamanan yang otoritatif.
- Transport produksi — jalankan melalui STDIO untuk klien desktop lokal, atau Streamable HTTP dengan OAuth 2.1 opsional (JWT/JWKS, agnostik penyedia — Auth0, Okta, Keycloak, Entra, Cognito, dll.) untuk deployment bersama/jarak jauh.
- Klien MCP apa pun — diuji dengan Claude Desktop, Cursor, Windsurf, VS Code, dan JetBrains AI Assistant/Junie; berfungsi dengan klien apa pun yang mengimplementasikan spesifikasi MCP.
Contoh Prompt
Setelah server terhubung, Anda dapat berbicara dengan klaster Couchbase Anda dalam bahasa alami melalui asisten AI Anda. Misalnya:
- "Bucket, scope, dan koleksi apa yang saya miliki di klaster ini, dan apa skema dari koleksi
orders?" - "Jalankan kueri SQL++ untuk menemukan 10 dokumen terbaru di koleksi
userswhere status = 'active'." - "Apa 5 kueri paling lambat di klaster ini dalam satu jam terakhir, dan apakah ada yang kekurangan covering index?"
- "Periksa apakah klaster ini sehat dan beri tahu saya layanan mana yang berjalan."
- "Sisipkan dokumen baru ke koleksi
productsdengan kolom berikut: ..." (memerlukanCB_MCP_READ_ONLY_MODE=false)
Fitur/Alat
Distribusi ini mengirimkan dua server: server operasional (default —
tabel tepat di bawah) berbicara ke klaster Couchbase biasa melalui
SDK couchbase, dan server Operational Insights
(tabelnya sendiri di bawah) berbicara ke klaster Operational Insights melalui
SDK couchbase-operational-insights.
Alat penyiapan & kesehatan klaster
| Nama Alat | Deskripsi |
|---|---|
get_server_configuration_status | Dapatkan status server dan konfigurasi tanpa terhubung ke klaster — melaporkan mode baca-saja, alat yang dinonaktifkan/memerlukan konfirmasi, pengaturan OAuth, dan konfigurasi logging yang diselesaikan |
test_cluster_connection | Periksa kredensial klaster dengan terhubung ke klaster |
get_cluster_health_and_services | Dapatkan status kesehatan klaster dan daftar semua layanan yang berjalan, opsional difilter ke layanan tertentu melalui service_types |
get_cluster_diagnostics_report | Dapatkan diagnostik koneksi cache SDK — apakah koneksi sudah rusak dan berapa lama, tanpa probing jaringan aktif |
get_cluster_metrics | Dapatkan satu atau lebih statistik klaster selama jendela waktu historis melalui endpoint stats-range Management REST API. Khusus Couchbase Server 7.6+ yang dikelola sendiri — tidak tersedia di Capella. |
discover_tool_input_values | Cari nilai input persis yang dibutuhkan alat lain, dari data referensi yang dibundel dengan server — saat ini setiap nama metrik Couchbase Server (tipe, unit, versi ditambahkan, deskripsi) untuk get_cluster_metrics. Jelajahi berdasarkan kategori atau cari fuzzy berdasarkan kata kunci. Berfungsi offline, tanpa koneksi klaster. |
Alat penemuan model data & skema
| Nama Alat | Deskripsi |
|---|---|
get_buckets_in_cluster | Dapatkan daftar semua bucket di klaster |
get_scopes_in_bucket | Dapatkan daftar semua scope di bucket yang ditentukan |
get_collections_in_scope | Dapatkan daftar semua koleksi di scope dan bucket yang ditentukan. Perhatikan bahwa alat ini memerlukan klaster memiliki layanan Query. |
get_scopes_and_collections_in_bucket | Dapatkan daftar semua scope dan koleksi di bucket yang ditentukan |
get_schema_for_collection | Dapatkan struktur untuk sebuah koleksi |
create_scope | Buat scope baru di bucket (Couchbase Server 7.6+ dan Capella). Dinonaktifkan secara default saat CB_MCP_READ_ONLY_MODE=true. |
create_collection | Buat koleksi baru di scope yang ada (Couchbase Server 7.6+ dan Capella). Dinonaktifkan secara default saat CB_MCP_READ_ONLY_MODE=true. |
delete_scope | Hapus scope dan semua koleksinya dari bucket — permanen. Dinonaktifkan secara default saat CB_MCP_READ_ONLY_MODE=true. |
delete_collection | Hapus koleksi dan semua dokumennya dari scope — permanen. Dinonaktifkan secara default saat CB_MCP_READ_ONLY_MODE=true. |
Alat operasi dokumen KV
| Nama Alat | Deskripsi |
|---|---|
get_document_by_id | Dapatkan dokumen berdasarkan ID dari scope dan koleksi yang ditentukan |
lookup_subdocument | Cari bagian dokumen (kolom tertentu, pemeriksaan keberadaan, atau hitungan array/objek) berdasarkan jalur tanpa mengambil seluruh dokumen |
upsert_document_by_id | Upsert dokumen berdasarkan ID ke scope dan koleksi yang ditentukan. Dinonaktifkan secara default saat CB_MCP_READ_ONLY_MODE=true. |
insert_document_by_id | Sisipkan dokumen baru berdasarkan ID (gagal jika dokumen sudah ada). Dinonaktifkan secara default saat CB_MCP_READ_ONLY_MODE=true. |
replace_document_by_id | Ganti dokumen yang ada berdasarkan ID (gagal jika dokumen tidak ada). Dinonaktifkan secara default saat CB_MCP_READ_ONLY_MODE=true. |
delete_document_by_id | Hapus dokumen berdasarkan ID dari scope dan koleksi yang ditentukan. Dinonaktifkan secara default saat CB_MCP_READ_ONLY_MODE=true. |
mutate_subdocument | Ubah bagian dokumen yang ada (upsert, insert, replace, remove, operasi array, counter) berdasarkan jalur tanpa menulis ulang seluruh dokumen. Dinonaktifkan secara default saat CB_MCP_READ_ONLY_MODE=true. |
Alat kueri dan pengindeksan
| Nama Alat | Deskripsi |
|---|---|
list_indexes | Daftar semua indeks di klaster dengan definisinya, dengan filter opsional berdasarkan bucket, scope, koleksi, dan nama indeks. Atur return_raw_index_stats=true untuk mengembalikan informasi indeks yang tidak diproses. |
get_index_advisor_recommendations | Dapatkan rekomendasi indeks dari Couchbase Index Advisor untuk kueri SQL++ tertentu guna mengoptimalkan performa kueri |
create_index | Buat indeks sekunder GSI skalar (non-vektor) pada koleksi. Ditangguhkan secara default — panggil build_index setelahnya untuk membangunnya. Dinonaktifkan secara default saat CB_MCP_READ_ONLY_MODE=true. |
build_index | Picu pembangunan semua indeks yang ditangguhkan pada koleksi. Dinonaktifkan secara default saat CB_MCP_READ_ONLY_MODE=true. |
drop_index | Hapus indeks GSI (skalar atau vektor) dari koleksi. Dinonaktifkan secara default saat CB_MCP_READ_ONLY_MODE=true. |
run_sql_plus_plus_query | Jalankan kueri SQL++ pada scope yang ditentukan. Kueri secara otomatis dibatasi ke bucket dan scope yang ditentukan, jadi gunakan nama koleksi secara langsung (misalnya, SELECT * FROM users alih-alih SELECT * FROM bucket.scope.users).CB_MCP_READ_ONLY_MODE adalah true secara default, yang berarti bahwa semua operasi penulisan (KV, Query, manajemen scope/koleksi, dan manajemen indeks) dinonaktifkan. Saat diaktifkan (yaitu CB_MCP_READ_ONLY_MODE=true), alat penulisan tidak dimuat dan kueri SQL++ yang memodifikasi data diblokir. |
explain_sql_plus_plus_query | Hasilkan dan evaluasi rencana EXPLAIN untuk kueri SQL++. Mengembalikan metadata kueri, rencana yang diekstrak, dan temuan evaluasi rencana. |
Alat pencarian teks lengkap (FTS)
Memerlukan Couchbase Server 7.6+ dan layanan Search. Pencarian vektor tidak didukung oleh alat-alat ini (lihat alat pencarian vektor terpisah).
| Nama Alat | Deskripsi |
|---|---|
list_fts_indexes | Daftar indeks Search (FTS). Tanpa filter, mencantumkan indeks tingkat klaster (legacy); dengan bucket_name, mencantumkan indeks tingkat scope (scoped) di setiap scope di bucket tersebut; dengan bucket_name dan scope_name, mencantumkan indeks tingkat scope di satu scope tersebut. |
get_fts_index_definition | Dapatkan definisi lengkap dari satu indeks Search (pemetaan, analyzer, parameter rencana). Berikan bucket_name dan scope_name bersama-sama untuk indeks tingkat scope, atau hilangkan keduanya untuk indeks tingkat klaster (legacy). |
run_fts_query | Jalankan kueri FTS terhadap indeks Search, atau ambil rencana eksekusinya. query adalah badan JSON kueri FTS mentah, mendukung semua jenis kueri non-vektor (match, match_phrase, term, conjuncts, disjuncts, geo, rentang tanggal/numerik, query_string, ...). Berikan explain=true untuk mengambil rencana eksekusi alih-alih hasil — ini tetap menjalankan kueri (limit default ke 1) karena layanan Search hanya mengekspos rencana per hit yang cocok, bukan sebagai panggilan dry-run terpisah. |
Alat analisis performa kueri
| Nama Alat | Deskripsi |
|---|---|
get_longest_running_queries | Dapatkan kueri yang berjalan paling lama berdasarkan waktu layanan rata-rata |
get_most_frequent_queries | Dapatkan kueri yang paling sering dieksekusi |
get_queries_with_largest_response_sizes | Dapatkan kueri dengan ukuran respons terbesar |
get_queries_with_large_result_count | Dapatkan kueri dengan jumlah hasil terbesar |
get_queries_using_primary_index | Dapatkan kueri yang menggunakan indeks primer (potensi masalah performa) |
get_queries_not_using_covering_index | Dapatkan kueri yang tidak menggunakan covering index |
get_queries_not_selective | Dapatkan kueri yang tidak selektif (pemindaian indeks mengembalikan lebih banyak dokumen daripada hasil akhir) |
Alat Operational Insights
Didaftarkan oleh server operational-insights terpisah (lihat
Server Operational Insights di bawah), bukan
server operational default.
| Nama Alat | Deskripsi |
|---|---|
get_server_configuration_status | Mendapatkan status dan konfigurasi server ini tanpa terhubung ke cluster — mode hanya-baca, alat yang dinonaktifkan/butuh konfirmasi, pengaturan OAuth, dan konfigurasi logging yang telah diselesaikan. Dibagikan dengan server operasional: alat yang sama, didaftarkan oleh keduanya. |
get_databases_in_cluster | Menampilkan semua database di cluster Operational Insights. |
get_scopes_in_database | Menampilkan semua scope dalam sebuah database. |
get_collections_in_scope | Menampilkan semua koleksi (dataset) dalam sebuah scope. Berbagi nama dengan alat server operasional yang sama — lihat catatan di bawah. |
get_schema_for_collection | Menyimpulkan skema JSON dari sebuah koleksi dengan mengambil sampel dokumen. Berbagi nama dengan alat server operasional yang sama — lihat catatan di bawah. |
list_indexes | Menampilkan indeks sekunder melalui katalog System.Metadata.Index (SDK tidak memiliki manajer indeks). Berbagi nama dengan alat server operasional yang sama — lihat catatan di bawah. |
run_query_sync | Menjalankan pernyataan SQL++ (SELECT, DML, atau DDL) dan mengembalikan semua baris hasil. Memberlakukan mode hanya-baca di sisi server melalui QueryOptions(readonly=True) — tidak ada parser SQL++ sisi klien di sini. |
explain_query | Membuat rencana kueri untuk pernyataan SQL++ melalui EXPLAIN, tanpa mengeksekusinya. |
create_index | Membuat indeks sekunder melalui CREATE INDEX (SDK tidak memiliki manajer indeks). Dinonaktifkan secara default ketika CB_MCP_READ_ONLY_MODE=true. Berbagi nama dengan alat server operasional yang sama — lihat catatan di bawah. |
run_query_async | Memulai pernyataan SQL++ tanpa menunggu selesai, mengembalikan token query_handle. Penegakan hanya-baca yang sama seperti run_query_sync. |
get_async_query_results | Memeriksa apakah kueri asinkron telah selesai dan, jika ya, mengembalikan barisnya. Sekaligus berfungsi sebagai pemeriksaan status — panggil lagi nanti jika belum siap. |
discard_async_query_results | Membebaskan buffer hasil kueri asinkron yang telah selesai di server. Langkah pembersihan normal setelah get_async_query_results. |
cancel_async_query | Menghentikan kueri asinkron yang masih berjalan. Dinonaktifkan secara default ketika CB_MCP_READ_ONLY_MODE=true. Kueri yang telah selesai tidak dapat dibatalkan — buang hasilnya sebagai gantinya. |
Alat Server Async Request API membentuk alur mulai → polling → buang-atau-batalkan
untuk kueri yang berjalan lama: run_query_async mengembalikan query_handle,
get_async_query_results dipolling hingga melaporkan kesiapan (dan mengembalikan
baris), lalu baik discard_async_query_results membebaskan hasil atau,
untuk kueri yang masih berjalan, cancel_async_query menghentikannya.
Catatan:
get_collections_in_scope,get_schema_for_collection,create_indexdanlist_indexesada, dengan perilaku berbeda, di kedua server. (get_server_configuration_statusjuga muncul di keduanya, tetapi sengaja satu alat yang dibagikan — implementasi sama, bentuk hasil sama — sehingga tidak perlu disambiguasi.) Setiap server adalah proses terpisah, jadi ini hanya menjadi perhatian jika satu klien MCP mendaftarkanoperationaldanoperational-insightssecara bersamaan — dalam kasus itu, lakukan disambiguasi di lapisan konfigurasi klien (misalnya dengan memberi dua entri server nama yang berbeda di konfigurasi klien itu sendiri).
Prasyarat
- Python 3.10 atau lebih tinggi.
- Cluster Couchbase yang berjalan. Cara termudah untuk memulai adalah menggunakan Capella tingkat gratis, yang merupakan versi terkelola penuh dari server Couchbase. Anda dapat mengikuti instruksi untuk mengimpor salah satu dataset sampel atau mengimpor dataset Anda sendiri.
- uv terinstal untuk menjalankan server.
- Klien MCP seperti Claude Desktop terinstal untuk menghubungkan server ke Claude. Instruksi diberikan untuk Claude Desktop dan Cursor. Klien MCP lain juga dapat digunakan.
Konfigurasi
Server MCP dapat dijalankan baik dari paket PyPI yang sudah dibuat atau dari sumber menggunakan uv.
Menjalankan dari PyPI
Kami menerbitkan paket PyPI yang sudah dibuat untuk server MCP.
Konfigurasi Server menggunakan Paket yang Sudah Dibuat untuk Klien MCP
Autentikasi Dasar
{
"mcpServers": {
"couchbase": {
"command": "uvx",
"args": ["couchbase-mcp-server"],
"env": {
"CB_CONNECTION_STRING": "couchbases://connection-string",
"CB_USERNAME": "username",
"CB_PASSWORD": "password"
}
}
}
}
atau
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"
}
}
}
}
Catatan: Jika Anda memiliki server MCP lain yang digunakan di klien, Anda dapat menambahkannya ke objek
mcpServersyang ada.
Menjalankan dari Sumber
Server MCP dapat dijalankan dari sumber menggunakan repositori ini.
Klon repositori ke mesin lokal Anda
git clone https://github.com/couchbase/mcp-server-couchbase.git
Konfigurasi Server menggunakan Sumber untuk Klien MCP
Ini adalah konfigurasi umum untuk klien MCP seperti Claude Desktop, Cursor, Windsurf Editor.
{
"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"
}
}
}
}
Catatan:
path/to/cloned/repo/mcp-server-couchbase/harus berupa jalur ke repositori yang dikloning di mesin lokal Anda. Jangan lupa garis miring di akhir!
Catatan: Jika Anda memiliki server MCP lain yang digunakan di klien, Anda dapat menambahkannya ke objek
mcpServersyang ada.
Konfigurasi Tambahan untuk Server MCP
Server dapat dikonfigurasi menggunakan variabel lingkungan atau argumen baris perintah:
| Variabel Lingkungan | Argumen CLI | Deskripsi | Default |
|---|---|---|---|
CB_CONNECTION_STRING | --connection-string | String koneksi ke cluster Couchbase | Wajib |
CB_USERNAME | --username | Nama pengguna dengan akses ke bucket yang diperlukan untuk autentikasi dasar | Wajib (atau Sertifikat Klien dan Kunci diperlukan untuk mTLS) |
CB_PASSWORD | --password | Kata sandi untuk autentikasi dasar | Wajib (atau Sertifikat Klien dan Kunci diperlukan untuk mTLS) |
CB_CLIENT_CERT_PATH | --client-cert-path | Jalur ke file sertifikat klien untuk autentikasi mTLS | Wajib jika menggunakan mTLS (atau Nama Pengguna dan Kata Sandi diperlukan) |
CB_CLIENT_KEY_PATH | --client-key-path | Jalur ke file kunci klien untuk autentikasi mTLS | Wajib jika menggunakan mTLS (atau Nama Pengguna dan Kata Sandi diperlukan) |
CB_CA_CERT_PATH | --ca-cert-path | Jalur ke sertifikat root server untuk TLS jika server dikonfigurasi dengan sertifikat yang ditandatangani sendiri/tidak tepercaya. Ini tidak diperlukan jika Anda terhubung ke Capella | |
CB_MCP_READ_ONLY_MODE | --read-only-mode | Mencegah semua modifikasi data (KV, Query, manajemen scope/koleksi, dan manajemen indeks). Saat diaktifkan, alat tulis tidak dimuat. | true |
CB_MCP_TRANSPORT | --transport | Mode transport: stdio, http, sse | stdio |
CB_MCP_HOST | --host | Host untuk mode transport HTTP/SSE | 127.0.0.1 |
CB_MCP_PORT | --port | Port untuk mode transport HTTP/SSE | 8000 |
CB_MCP_DISABLED_TOOLS | --disabled-tools | Alat yang akan dinonaktifkan (lihat Menonaktifkan Alat) | Tidak ada |
CB_MCP_CONFIRMATION_REQUIRED_TOOLS | --confirmation-required-tools | Alat yang memerlukan konfirmasi eksplisit pengguna sebelum eksekusi melalui elisitasi MCP (lihat Alat yang Memerlukan Elisitasi/Konfirmasi) | Tidak ada |
CB_MCP_LOG_LEVEL | --log-level | Tingkat logging untuk server MCP: off, debug, info, warning, error (lihat Logging) | info |
CB_MCP_LOG_SINKS | --log-sinks | Tujuan log yang dipisahkan koma: stderr, file, atau keduanya (lihat Logging) | stderr |
CB_MCP_LOG_FILE | --log-file | Jalur dasar untuk file log per tingkat (hanya digunakan saat sink file diaktifkan) | mcp_server.log |
CB_MCP_LOG_ROTATION_MAX_SIZE_MB | --log-rotation-max-size-mb | Ukuran maksimum global dalam MB per file log sebelum rotasi, diwarisi oleh setiap tingkat kecuali ditimpa. 0 tidak valid dan kembali ke default dengan peringatan saat startup | 1 (1 MB) |
CB_MCP_LOG_MAX_BYTES | --log-max-bytes | Tidak digunakan lagi — gunakan CB_MCP_LOG_ROTATION_MAX_SIZE_MB (MB). Ukuran rotasi global dalam byte, masih dihormati untuk kompatibilitas mundur; diabaikan saat CB_MCP_LOG_ROTATION_MAX_SIZE_MB juga diatur | Tidak diatur |
CB_MCP_LOG_ERROR_ROTATION_MAX_SIZE_MB | --log-error-rotation-max-size-mb | Ukuran rotasi dalam MB untuk file log ERROR; menimpa CB_MCP_LOG_ROTATION_MAX_SIZE_MB untuk ERROR | Mewarisi CB_MCP_LOG_ROTATION_MAX_SIZE_MB |
CB_MCP_LOG_WARNING_ROTATION_MAX_SIZE_MB | --log-warning-rotation-max-size-mb | Ukuran rotasi dalam MB untuk file log WARNING; menimpa CB_MCP_LOG_ROTATION_MAX_SIZE_MB untuk WARNING | Mewarisi CB_MCP_LOG_ROTATION_MAX_SIZE_MB |
CB_MCP_LOG_INFO_ROTATION_MAX_SIZE_MB | --log-info-rotation-max-size-mb | Ukuran rotasi dalam MB untuk file log INFO; menimpa CB_MCP_LOG_ROTATION_MAX_SIZE_MB untuk INFO | Mewarisi CB_MCP_LOG_ROTATION_MAX_SIZE_MB |
CB_MCP_LOG_DEBUG_ROTATION_MAX_SIZE_MB | --log-debug-rotation-max-size-mb | Ukuran rotasi dalam MB untuk file log DEBUG; menimpa CB_MCP_LOG_ROTATION_MAX_SIZE_MB untuk DEBUG | Mewarisi CB_MCP_LOG_ROTATION_MAX_SIZE_MB |
CB_MCP_LOG_RETENTION_BACKUP_COUNT | --log-retention-backup-count | File cadangan yang dirotasi disimpan per file log tingkat (tidak termasuk file langsung), diterapkan ke setiap tingkat kecuali ditimpa. 0 hanya menyimpan file langsung (lihat Logging) | 1 |
CB_MCP_LOG_ERROR_RETENTION_BACKUP_COUNT | --log-error-retention-backup-count | Cadangan yang dirotasi disimpan untuk file log ERROR; menimpa jumlah global untuk ERROR | Mewarisi CB_MCP_LOG_RETENTION_BACKUP_COUNT |
CB_MCP_LOG_WARNING_RETENTION_BACKUP_COUNT | --log-warning-retention-backup-count | Cadangan yang dirotasi disimpan untuk file log WARNING; menimpa jumlah global untuk WARNING | Mewarisi CB_MCP_LOG_RETENTION_BACKUP_COUNT |
CB_MCP_LOG_INFO_RETENTION_BACKUP_COUNT | --log-info-retention-backup-count | Cadangan yang dirotasi disimpan untuk file log INFO; menimpa jumlah global untuk INFO | Mewarisi CB_MCP_LOG_RETENTION_BACKUP_COUNT |
CB_MCP_LOG_DEBUG_RETENTION_BACKUP_COUNT | --log-debug-retention-backup-count | Cadangan yang dirotasi disimpan untuk file log DEBUG; menimpa jumlah global untuk DEBUG | Mewarisi CB_MCP_LOG_RETENTION_BACKUP_COUNT |
CB_MCP_OAUTH_JWT_JWKS_URI | --oauth-jwks-uri | Titik akhir JWKS dari penyedia identitas yang digunakan untuk memverifikasi JWT bearer. Mengaktifkan OAuth saat diatur dengan penerbit dan audiens (lihat Otorisasi OAuth 2.1) | Tidak ada |
CB_MCP_OAUTH_JWT_ISSUER | --oauth-issuer | Klaim iss JWT yang diharapkan. Diperlukan untuk mengaktifkan OAuth | Tidak ada |
CB_MCP_OAUTH_JWT_AUDIENCE | --oauth-audience | Klaim aud JWT yang diharapkan. Diperlukan untuk mengaktifkan OAuth | Tidak ada |
CB_MCP_OAUTH_JWT_ALGORITHM | --oauth-algorithm | Algoritma penandatanganan JWT: salah satu dari RS256/384/512, ES256/384/512, PS256/384/512 | RS256 |
CB_MCP_OAUTH_MCP_BASE_URL | --oauth-mcp-base-url | URL dasar publik dari server ini. Saat diatur, menerbitkan Metadata Sumber Daya Terlindungi RFC 9728 sehingga klien yang sadar-PRM dapat menemukan IdP | Tidak ada |
CB_MCP_OAUTH_SCOPE_READ_LABEL | --oauth-scope-read-label | Menimpa label cakupan OAuth yang diperlakukan sebagai akses 'baca' (diiklankan di PRM dan dicocokkan dengan klaim scope/scp token). Gunakan saat IdP Anda tidak dapat mengeluarkan bentuk kanonik | couchbase-mcp:read |
CB_MCP_OAUTH_SCOPE_WRITE_LABEL | --oauth-scope-write-label | Menimpa label cakupan OAuth yang diperlakukan sebagai akses 'tulis'; semantik yang sama dengan label baca | couchbase-mcp:write |
Konfigurasi Mode Hanya-Baca
CB_MCP_READ_ONLY_MODE adalah sakelar tunggal yang mengontrol operasi tulis:
- Saat
true(default): Semua operasi tulis (KV, Query, manajemen scope/koleksi, dan manajemen indeks) dinonaktifkan. Semua alat tulis (KV: upsert, insert, replace, delete, sub-dokumen mutate; manajemen scope/koleksi: create_scope, create_collection, delete_scope, delete_collection; manajemen indeks: create_index, build_index, drop_index) tidak dimuat dan tidak akan tersedia untuk LLM, dan kueri SQL++ yang memodifikasi data atau struktur diblokir. - Saat
false: Semua alat tulis dimuat dan kueri modifikasi data/struktur SQL++ diizinkan.
Ini adalah default aman yang direkomendasikan untuk mencegah modifikasi data yang tidak disengaja oleh LLM.
Catatan: Untuk autentikasi, Anda memerlukan Nama Pengguna dan Kata Sandi atau jalur Sertifikat Klien dan kunci. Secara opsional, Anda dapat menentukan jalur sertifikat root CA yang akan digunakan untuk memvalidasi sertifikat server. Jika jalur Sertifikat Klien & kunci dan nama pengguna dan kata sandi keduanya ditentukan, sertifikat klien akan digunakan untuk autentikasi.
Menonaktifkan Alat
Anda dapat menonaktifkan alat tertentu untuk mencegahnya dimuat dan diekspos ke klien MCP. Alat yang dinonaktifkan tidak akan muncul dalam penemuan alat dan tidak dapat dipanggil oleh LLM.
Format yang Didukung
Daftar yang dipisahkan koma:
# 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
Jalur file (satu nama alat per baris):
# Environment variable
CB_MCP_DISABLED_TOOLS=disabled_tools.txt
# Command line
uvx couchbase-mcp-server --disabled-tools disabled_tools.txt
Format file (misalnya, disabled_tools.txt):
# Write operations
upsert_document_by_id
delete_document_by_id
# Index advisor
get_index_advisor_recommendations
Baris yang diawali dengan # diperlakukan sebagai komentar dan diabaikan.
Contoh Konfigurasi Klien MCP
Menggunakan daftar yang dipisahkan koma:
{
"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"
}
}
}
}
Menggunakan jalur file (disarankan untuk banyak alat):
{
"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"
}
}
}
}
Catatan Keamanan Penting
Peringatan: Menonaktifkan alat saja tidak menjamin bahwa operasi tertentu tidak dapat dilakukan. Izin RBAC (Role-Based Access Control) pengguna basis data yang mendasarinya adalah kontrol keamanan yang berwenang.
Misalnya, bahkan jika Anda menonaktifkan
upsert_document_by_iddandelete_document_by_id, modifikasi data masih dapat terjadi melalui alatrun_sql_plus_plus_querymenggunakan pernyataan DML SQL++ (INSERT, UPDATE, DELETE, MERGE) kecuali:
CB_MCP_READ_ONLY_MODEdiatur ketrue(default), ATAU- Pengguna basis data tidak memiliki izin RBAC yang diperlukan untuk modifikasi data
Praktik Terbaik: Selalu konfigurasikan izin RBAC yang sesuai pada kredensial pengguna Couchbase Anda sebagai langkah keamanan utama. Gunakan penonaktifan alat sebagai lapisan tambahan untuk memandu perilaku LLM dan mengurangi permukaan serangan, bukan sebagai satu-satunya kontrol keamanan.
Elicitation/Konfirmasi untuk Pemanggilan Alat
Anda dapat memerlukan konfirmasi eksplisit dari pengguna untuk alat tertentu sebelum eksekusi (saat klien MCP mendukung elicitation).
CB_MCP_CONFIRMATION_REQUIRED_TOOLS / --confirmation-required-tools mendukung format berikut:
- Daftar yang dipisahkan koma
- Jalur file (satu nama alat per baris, komentar
#didukung)
Contoh:
# 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
Saat alat yang terdaftar dipanggil:
- Jika klien mendukung elicitation, pengguna akan diminta untuk mengonfirmasi.
- Jika klien tidak mendukung elicitation, alat akan dieksekusi tanpa konfirmasi untuk kompatibilitas mundur.
Anda juga dapat memeriksa versi server menggunakan:
uvx couchbase-mcp-server --version
Pencatatan Log
Server MCP mencatat log ke stderr secara default. Pencatatan log dikonfigurasi dengan variabel CB_MCP_LOG_* yang tercantum di Konfigurasi Tambahan:
CB_MCP_LOG_LEVEL— seberapa banyak yang dicatat:info(default) mencatat peristiwa siklus hidup dan pemanggilan alat,debugmenambahkan detail internal yang verbose, danoffmenonaktifkan semua pencatatan log.CB_MCP_LOG_SINKS— ke mana log pergi:stderr(default), file bergilir per tingkat (file), atau keduanya. Denganfile, satu file ditulis per tingkat (misalnyamcp_server.info.logdanmcp_server.error.log) di jalur yang ditetapkan olehCB_MCP_LOG_FILE.- Ukuran rotasi —
CB_MCP_LOG_ROTATION_MAX_SIZE_MBadalah ukuran global (dalam MB) di mana setiap file per tingkat berputar. Timpa tingkat individual denganCB_MCP_LOG_<LEVEL>_ROTATION_MAX_SIZE_MB(ERROR/WARNING/INFO/DEBUG), juga dalam MB, yang mewarisi global saat tidak diatur. Ukuran0(global atau per tingkat) tidak valid dan kembali ke default (1 MB) dengan peringatan saat startup.CB_MCP_LOG_MAX_BYTES(byte) tidak digunakan lagi tetapi masih dihormati untuk kompatibilitas mundur; ini diabaikan saatCB_MCP_LOG_ROTATION_MAX_SIZE_MBjuga diatur, dan mencetak peringatan depresiasi saat startup. - Retensi —
CB_MCP_LOG_RETENTION_BACKUP_COUNTmenetapkan berapa banyak cadangan yang diputar yang disimpan per tingkat (tidak termasuk file langsung); default1mempertahankan perilaku sebelumnya. Timpa tingkat individual denganCB_MCP_LOG_<LEVEL>_RETENTION_BACKUP_COUNT(ERROR/WARNING/INFO/DEBUG), yang mewarisi nilai global saat tidak diatur. Tetapkan jumlah ke0untuk hanya menyimpan file langsung untuk tingkat itu — masih dibatasi oleh ukuran rotasi (diatur ulang saat bergulir daripada dicadangkan). - Snapshot konfigurasi server — saat sink
fileaktif, catatan satu kali (OS, Python, versi dependensi, transport, konfigurasi log yang diselesaikan, dan konfigurasi server yang disunting) ditulis sebagai JSON ke filemcp_server_config.log.jsonkhusus (diturunkan dari basisCB_MCP_LOG_FILE). Ini ditimpa setiap kali dimulai, sehingga dukungan selalu memiliki konfigurasi saat ini dan tidak pernah keluar dari log yang berputar.
# 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
Untuk detail lebih lanjut, lihat dokumentasi.
Konfigurasi Khusus Klien
Claude Desktop
Ikuti langkah-langkah di bawah ini untuk menggunakan server MCP Couchbase dengan klien MCP Claude Desktop
-
Server MCP sekarang dapat ditambahkan ke Claude Desktop dengan mengedit file konfigurasi. Instruksi lebih rinci dapat ditemukan di panduan memulai cepat MCP.
- Di Mac, file konfigurasi terletak di
~/Library/Application Support/Claude/claude_desktop_config.json - Di Windows, file konfigurasi terletak di
%APPDATA%\Claude\claude_desktop_config.json
Buka file konfigurasi dan tambahkan konfigurasi ke bagian
mcpServers. - Di Mac, file konfigurasi terletak di
-
Mulai ulang Claude Desktop untuk menerapkan perubahan.
-
Anda sekarang dapat menggunakan server di Claude Desktop untuk menjalankan kueri pada cluster Couchbase menggunakan bahasa alami dan melakukan operasi CRUD pada dokumen.
Log
Log untuk Claude Desktop dapat ditemukan di lokasi berikut:
- MacOS: ~/Library/Logs/Claude
- Windows: %APPDATA%\Claude\Logs
Log dapat digunakan untuk mendiagnosis masalah koneksi atau masalah lain dengan konfigurasi server MCP Anda. Untuk detail lebih lanjut, lihat dokumentasi resmi.
Cursor
Ikuti langkah-langkah di bawah ini untuk menggunakan server MCP Couchbase dengan Cursor:
-
Instal Cursor di mesin Anda.
-
Di Cursor, buka Cursor > Pengaturan Cursor > Alat & Integrasi > Alat MCP. Juga, periksa dokumen tentang menyiapkan konfigurasi server MCP dari Cursor.
-
Tentukan konfigurasi yang sama secara manual, atau gunakan tautan Instal di Cursor satu klik. Anda mungkin perlu menambahkan konfigurasi server di bawah kunci induk
mcpServers.Catatan: Tautan instalasi menggunakan nilai placeholder dari contoh konfigurasi di atas. Perbarui string koneksi dan kredensial setelah instalasi.
-
Simpan konfigurasi.
-
Anda akan melihat couchbase sebagai server yang ditambahkan dalam daftar server MCP. Segarkan untuk melihat apakah server diaktifkan.
-
Anda sekarang dapat menggunakan server MCP Couchbase di Cursor untuk mengkueri cluster Couchbase Anda menggunakan bahasa alami dan melakukan operasi CRUD pada dokumen.
Untuk detail lebih lanjut tentang integrasi MCP dengan Cursor, lihat dokumentasi MCP Cursor resmi.
Log
Di panel bawah Cursor, klik "Output" dan pilih "Cursor MCP" dari menu dropdown untuk melihat log server. Ini dapat membantu mendiagnosis masalah koneksi atau masalah lain dengan konfigurasi server MCP Anda.
Editor Windsurf
Ikuti langkah-langkah di bawah ini untuk menggunakan server MCP Couchbase dengan Editor Windsurf.
-
Instal Editor Windsurf di mesin Anda.
-
Di Editor Windsurf, navigasikan ke Palet Perintah > Panel Konfigurasi MCP Windsurf atau Windsurf - Pengaturan > Lanjutan > Cascade > Server Model Context Protocol (MCP). Untuk detail lebih lanjut tentang konfigurasi, lihat dokumentasi resmi.
-
Klik Tambah Server lalu Tambah server kustom. Pada konfigurasi yang terbuka di editor, tambahkan konfigurasi Server MCP Couchbase dari atas.
-
Simpan konfigurasi.
-
Anda akan melihat couchbase sebagai server yang ditambahkan dalam daftar Server MCP di bawah Pengaturan Lanjutan. Segarkan untuk melihat apakah server diaktifkan.
-
Anda sekarang dapat menggunakan server MCP Couchbase di Editor Windsurf untuk mengkueri cluster Couchbase Anda menggunakan bahasa alami dan melakukan operasi CRUD pada dokumen.
Untuk detail lebih lanjut tentang integrasi MCP dengan Editor Windsurf, lihat dokumentasi MCP Windsurf resmi.
VS Code
Ikuti langkah-langkah di bawah ini untuk menggunakan server MCP Couchbase dengan VS Code.
-
Instal VS Code
-
Berikut adalah beberapa cara untuk mengonfigurasi server MCP.
-
Untuk konfigurasi server Workspace
- Buat file baru di workspace sebagai .vscode/mcp.json.
- Tambahkan konfigurasi dan simpan file.
-
Untuk konfigurasi server Global:
- Jalankan MCP: Buka Konfigurasi Pengguna di Palet Perintah (
Ctrl+Shift+PatauCmd+Shift+P) - Tambahkan konfigurasi dan simpan file.
- Jalankan MCP: Buka Konfigurasi Pengguna di Palet Perintah (
-
Catatan: VS Code menggunakan
serverssebagai properti JSON tingkat atas dalam file mcp.json untuk mendefinisikan server MCP (Model Context Protocol), sementara Cursor menggunakanmcpServersuntuk konfigurasi yang setara. Periksa konfigurasi klien VS Code untuk perubahan atau detail lebih lanjut. Contoh konfigurasi VS Code disediakan di bawah ini.{ "servers": { "couchbase": { "command": "uvx", "args": ["couchbase-mcp-server"], "env": { "CB_CONNECTION_STRING": "couchbases://connection-string", "CB_USERNAME": "username", "CB_PASSWORD": "password" } } } }
-
-
Setelah Anda menyimpan file, server dimulai dan daftar tindakan kecil muncul dengan
Running|Stop|n Tools|More... -
Klik opsi dari daftar opsi untuk
Start/Stop/kelola server. -
Anda sekarang dapat menggunakan server MCP Couchbase di VS Code untuk mengkueri cluster Couchbase Anda menggunakan bahasa alami dan melakukan operasi CRUD pada dokumen.
Log:
Di Palet Perintah (Ctrl+Shift+P atau Cmd+Shift+P),
- jalankan perintah MCP: Daftar Server dan pilih server couchbase
- pilih "Tampilkan Output" untuk melihat lognya di tab Output.
IDE JetBrains
Ikuti langkah-langkah di bawah ini untuk menggunakan server MCP Couchbase dengan IDE JetBrains
- Instal salah satu IDE JetBrains
- Instal salah satu plugin JetBrains - AI Assistant atau Junie
- Navigasikan ke Pengaturan > Alat > AI Assistant atau Junie > Server MCP
- Klik "+" untuk menambahkan konfigurasi MCP Couchbase dan klik Simpan.
- Anda akan melihat server MCP Couchbase ditambahkan ke daftar server. Setelah Anda mengklik Terapkan, server MCP Couchbase dimulai dan saat kursor diarahkan ke status, itu menunjukkan semua alat yang tersedia.
- Anda sekarang dapat menggunakan server MCP Couchbase di IDE JetBrains untuk mengkueri cluster Couchbase Anda menggunakan bahasa alami dan melakukan operasi CRUD pada dokumen.
Log: File log dapat dijelajahi di Bantuan > Tampilkan Log di Finder (Explorer) > mcp > couchbase
Server Wawasan Operasional
Selain server operational default (yang dijelaskan oleh setiap bagian di atas),
distribusi ini menyertakan server kedua untuk
cluster Wawasan Operasional,
menggunakan
couchbase-operational-insights
SDK yang terpisah. Ini adalah produk yang berbeda dari cluster Couchbase biasa dan berjalan sebagai
proses independen di portnya sendiri.
Jalankan dengan meneruskan operational-insights sebagai subperintah CLI (atau menambahkan
sebagai perintah kontainer):
uvx couchbase-mcp-server operational-insights
# or, from source:
uv run src/mcp_server.py operational-insights
# or, via Docker:
docker run --rm -i \
-e CB_OI_CONNECTION_STRING=http://localhost:8095 \
-e CB_OI_USERNAME=Administrator \
-e CB_OI_PASSWORD=password \
couchbase/mcp-server:<version> operational-insights
--connection-string adalah URL HTTP(S), bukan string koneksi couchbase://
— misalnya http://localhost:8095 untuk server Wawasan Operasional
lokal, atau https://<host>:18095 untuk Capella. Ini adalah
kesalahan konfigurasi paling umum saat mengarahkan server ini ke cluster.
| Argumen CLI | Variabel Lingkungan | Deskripsi | Default |
|---|---|---|---|
--connection-string | CB_OI_CONNECTION_STRING | URL endpoint Operational Insights (HTTP/HTTPS, bukan couchbase://) | Tidak ada |
--username | CB_OI_USERNAME | Nama pengguna Operational Insights | Tidak ada |
--password | CB_OI_PASSWORD | Kata sandi Operational Insights | Tidak ada |
--ca-cert-path | CB_OI_CA_CERT_PATH | Jalur ke sertifikat root server (PEM), untuk memverifikasi sertifikat server yang ditandatangani sendiri/tidak tepercaya | Tidak ada |
--client-cert-path | CB_OI_CLIENT_CERT_PATH | Jalur ke sertifikat klien untuk autentikasi mTLS — sertifikat PEM (dipasangkan dengan --client-key-path) atau bundel PKCS#12 (.p12/.pfx, --client-key-path dibiarkan tidak disetel). Memerlukan https:// --connection-string; menimpa --username/--password saat disetel | Tidak ada |
--client-key-path | CB_OI_CLIENT_KEY_PATH | Jalur ke kunci privat sertifikat klien (PEM). Biarkan tidak disetel saat --client-cert-path adalah bundel PKCS#12 | Tidak ada |
--client-cert-password | CB_OI_CLIENT_CERT_PASSWORD | Kata sandi dekripsi untuk kunci klien terenkripsi atau bundel PKCS#12 | Tidak ada |
Setiap flag lainnya (--read-only-mode, --transport, --host, --port,
--disabled-tools, --confirmation-required-tools, --log-*,
--oauth-*) identik dengan server operasional — lihat
Konfigurasi Tambahan untuk MCP Server —
kecuali default untuk port (8001, bukan 8000) dan file log
(mcp_server_operational_insights.log, bukan mcp_server.log), karena dua
server tidak dapat berbagi keduanya. OAuth menggunakan label cakupan yang sama
(couchbase-mcp:read / couchbase-mcp:write) dengan server operasional, sehingga
konfigurasi IdP yang ada berfungsi untuk keduanya tanpa perubahan.
Contoh konfigurasi klien MCP:
{
"mcpServers": {
"couchbase-operational-insights": {
"command": "uvx",
"args": ["couchbase-mcp-server", "operational-insights"],
"env": {
"CB_OI_CONNECTION_STRING": "http://localhost:8095",
"CB_OI_USERNAME": "Administrator",
"CB_OI_PASSWORD": "password"
}
}
}
}
Lihat Alat Operational Insights di atas untuk daftar alat, dan catatan di sana tentang tiga nama alat yang dibagikan dengan server operasional.
Kedua server berbagi satu daftar MCP Registry,
io.github.couchbase/mcp-server-couchbase, yang diterbitkan dari
server.json. Daftar tersebut memiliki entri paket terpisah untuk setiap server (PyPI
dan Docker). Setiap entri meneruskan subperintahnya (operational atau
operational-insights) dan hanya mendeklarasikan argumen dan
variabel lingkungan server tersebut.
Mode Transport HTTP Streamable
MCP Server dapat dijalankan dalam mode transport Streamable HTTP yang memungkinkan beberapa klien terhubung ke instance server yang sama melalui HTTP. Periksa apakah klien MCP Anda mendukung transport http streamable sebelum mencoba terhubung ke MCP server dalam mode ini.
Catatan: Otorisasi OAuth 2.1 didukung pada transport ini. Lihat Otorisasi OAuth 2.1. Tanpa OAuth yang dikonfigurasi, endpoint HTTP tidak diautentikasi.
Penggunaan
Secara default, MCP server akan berjalan pada port 8000 tetapi ini dapat dikonfigurasi menggunakan variabel lingkungan --port atau CB_MCP_PORT.
uvx couchbase-mcp-server \
--connection-string='<couchbase_connection_string>' \
--username='<database_username>' \
--password='<database_password>' \
--read-only-mode=true \
--transport=http
Server akan tersedia di http://localhost:8000/mcp. Ini dapat digunakan di klien MCP yang mendukung mode transport http streamable seperti Cursor.
Konfigurasi Klien MCP
{
"mcpServers": {
"couchbase-http": {
"url": "http://localhost:8000/mcp"
}
}
}
Mode Transport SSE
Ada opsi untuk menjalankan MCP server dalam mode transport Server-Sent Events (SSE).
Catatan: Mode SSE telah ditinggalkan oleh MCP. Kami memiliki dukungan untuk Streamable HTTP.
SSE: Penggunaan
Secara default, MCP server akan berjalan pada port 8000 tetapi ini dapat dikonfigurasi menggunakan variabel lingkungan --port atau CB_MCP_PORT.
uvx couchbase-mcp-server \
--connection-string='<couchbase_connection_string>' \
--username='<database_username>' \
--password='<database_password>' \
--read-only-mode=true \
--transport=sse
Server akan tersedia di http://localhost:8000/sse. Ini dapat digunakan di klien MCP yang mendukung mode transport SSE seperti Cursor.
SSE: Konfigurasi Klien MCP
{
"mcpServers": {
"couchbase-sse": {
"url": "http://localhost:8000/sse"
}
}
}
Otorisasi OAuth 2.1
Saat dijalankan dengan --transport=http, MCP server dapat bertindak sebagai server sumber daya OAuth 2.1: ia memvalidasi JWT bearer yang masuk terhadap JWKS penyedia identitas Anda. Ini agnostik terhadap penyedia (penyedia OAuth 2.1 / OIDC apa pun yang menerbitkan JWKS — Auth0, Okta, Keycloak, AWS Cognito, Microsoft Entra, dll.) dan tidak menerbitkan token atau mengelola pengguna. Pengaturan OAuth diabaikan pada stdio.
OAuth dikonfigurasi dengan variabel CB_MCP_OAUTH_* yang tercantum di Konfigurasi Tambahan:
- OAuth aktif hanya ketika ketiga
CB_MCP_OAUTH_JWT_JWKS_URI,CB_MCP_OAUTH_JWT_ISSUER, danCB_MCP_OAUTH_JWT_AUDIENCEdisetel; menyetel hanya sebagian akan gagal saat startup. - Menyetel
CB_MCP_OAUTH_MCP_BASE_URLjuga menerbitkan Metadata Sumber Daya Terlindungi RFC 9728 sehingga klien yang mendukung PRM dapat menemukan server otorisasi. - Akses dibatasi oleh dua cakupan yang dibaca dari klaim
scope/scptoken:couchbase-mcp:read(alat baca, termasuk SQL++) dancouchbase-mcp:write(alat tulis: mutasi KV, manajemen cakupan/koleksi, dan manajemen indeks). Akses penuh memerlukan keduanya. Jika IdP Anda tidak dapat mengeluarkan label kanonik tersebut, timpa denganCB_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>'
Untuk detail lengkap, lihat dokumentasi.
Gambar Docker
MCP server juga dapat dibangun dan dijalankan sebagai kontainer Docker. Gambar yang sudah dibuat sebelumnya dapat ditemukan di DockerHub atau ditarik melalui docker pull docker.io/couchbase/mcp-server:latest.
Atau, kami adalah bagian dari Katalog MCP Docker.
Membangun Gambar
docker build -t mcp/couchbase-src .
Membangun dengan Argumen
Jika Anda ingin membangun dengan argumen build untuk hash commit dan waktu build, Anda dapat membangun menggunakan: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 .
Atau, gunakan skrip build yang disediakan:
# Build with default image name (mcp/couchbase-src)
./build.sh
# Build with custom image name
./build.sh my-custom/image-name
Skrip ini secara otomatis:
- Menerima parameter nama gambar opsional (default ke
mcp/couchbase-src) - Menghasilkan hash commit git dan stempel waktu build
- Membuat beberapa tag yang berguna (
latest,<short-commit>) - Menampilkan informasi build dan hasil
- Menggunakan argumen yang sama dengan build CI/CD
Verifikasi label gambar:
# 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
Menjalankan
MCP server dapat dijalankan dengan variabel lingkungan yang digunakan untuk mengonfigurasi pengaturan Couchbase. Variabel lingkungan sama seperti yang dijelaskan di bagian Konfigurasi Tambahan.
Kontainer Docker Independen
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
Variabel lingkungan CB_MCP_PORT dan CB_MCP_HOST hanya berlaku dalam kasus mode transport HTTP seperti http dan sse.
Docker: Konfigurasi Klien MCP
Gambar Docker dapat digunakan dalam mode transport stdio dengan konfigurasi berikut.
{
"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"
]
}
}
}
Catatan
- Nilai
couchbase_connection_stringbergantung pada apakah server Couchbase berjalan di mesin host yang sama, di kontainer Docker lain, atau di host jarak jauh. Jika server Couchbase Anda berjalan di mesin host Anda, string koneksi Anda kemungkinan akan berbentukcouchbase://host.docker.internal. Untuk detailnya, lihat dokumentasi docker. - Anda dapat menentukan jaringan kontainer menggunakan opsi
--network=<your_network>. Jaringan yang Anda pilih bergantung pada lingkungan Anda; defaultnya adalahbridge. Untuk detailnya, lihat driver jaringan di docker.
Risiko Terkait dengan LLM
- Penggunaan model bahasa besar dan teknologi serupa melibatkan risiko, termasuk potensi keluaran yang tidak akurat atau berbahaya.
- Couchbase tidak meninjau atau mengevaluasi kualitas atau keakuratan keluaran tersebut, dan keluaran tersebut mungkin tidak mencerminkan pandangan Couchbase.
- Anda sepenuhnya bertanggung jawab untuk menentukan apakah akan menggunakan model bahasa besar dan teknologi terkait, serta mematuhi ketentuan lisensi, ketentuan penggunaan, dan kebijakan organisasi Anda yang mengatur penggunaan tersebut.
Pengumpulan Data Penggunaan
Produk ini secara otomatis mengumpulkan data penggunaan dan kinerja (seperti nama produk dan versi) serta informasi browser (seperti alamat IP) (secara kolektif, "Data Penggunaan"). Couchbase menggunakan Data Penggunaan, bersama dengan data lain yang mungkin Anda berikan kepada Couchbase (seperti nama pengguna atau alamat email Anda), untuk mengembangkan dan meningkatkan produk kami serta menginformasikan program penjualan dan pemasaran kami. Kami tidak mengakses atau mengumpulkan data apa pun yang Anda simpan di produk Couchbase. Kami menggunakan Data Penggunaan untuk memahami pola penggunaan agregat dan membuat produk kami lebih berguna bagi Anda. Untuk informasi lebih lanjut tentang bagaimana Couchbase mengumpulkan, melindungi, dan memproses informasi, silakan merujuk ke Kebijakan Privasi Couchbase yang dapat dilihat di https://www.couchbase.com/privacy-policy.
Tips Pemecahan Masalah
- Pastikan jalur ke repositori MCP server Anda benar dalam konfigurasi jika dijalankan dari sumber.
- Verifikasi bahwa string koneksi Couchbase, nama pengguna database, kata sandi, atau jalur ke sertifikat Anda sudah benar.
- Jika menggunakan Couchbase Capella, pastikan cluster dapat diakses dari mesin tempat MCP server berjalan.
- Periksa bahwa pengguna database memiliki izin yang tepat untuk mengakses setidaknya satu bucket.
- Konfirmasikan bahwa manajer paket
uvterinstal dengan benar dan dapat diakses. Anda mungkin perlu memberikan jalur absolut keuv/uvxdi bidangcommanddalam konfigurasi. - Periksa log untuk kesalahan atau peringatan yang mungkin menunjukkan masalah dengan MCP server. Lokasi log bergantung pada klien MCP Anda.
- Jika Anda mengalami masalah menjalankan MCP server dari sumber setelah memperbarui repositori MCP server lokal Anda, coba jalankan
uv syncuntuk memperbarui dependensi.
Pengujian integrasi
Kami menyediakan pengujian integrasi MCP tingkat tinggi untuk memverifikasi bahwa server mengekspos alat yang diharapkan dan bahwa alat tersebut dapat dipanggil terhadap cluster Couchbase demo.
- Ekspor kredensial cluster demo:
CB_CONNECTION_STRINGCB_USERNAMECB_PASSWORD- Opsional:
CB_MCP_TEST_BUCKET(bucket untuk diuji selama pengujian) - Opsional, untuk pengujian server Operational Insights
sendiri:
CB_OI_CONNECTION_STRING/CB_OI_USERNAME/CB_OI_PASSWORD. Pengujian tersebut dilewati secara otomatis (tidak gagal) saat tidak disetel.
- Jalankan pengujian:
uv run --extra dev pytest tests/integration -v
FAQ
Apa itu Couchbase MCP Server? Ini adalah implementasi yang dihosting sendiri dari Model Context Protocol yang memungkinkan asisten AI dan agen (Claude, Cursor, Windsurf, VS Code Copilot, JetBrains AI Assistant/Junie, dan klien MCP lainnya) untuk membuat kueri dan, secara opsional, memodifikasi data di cluster Couchbase menggunakan bahasa alami.
Bagaimana cara menghubungkan Claude Desktop ke Couchbase? Instal server dengan uvx couchbase-mcp-server (atau jalankan dari sumber atau Docker), lalu tambahkan konfigurasinya ke claude_desktop_config.json Claude Desktop seperti yang ditunjukkan di Konfigurasi. Mulai ulang Claude Desktop dan ia akan mengambil alat baru.
Bisakah saya menggunakan ini dengan Couchbase Capella? Ya. Konfigurasi CB_CONNECTION_STRING/CB_USERNAME/CB_PASSWORD (atau sertifikat mTLS) yang sama berfungsi untuk cluster Couchbase Capella dan Couchbase Server yang dikelola sendiri.
Apakah aman membiarkan agen AI menulis ke database saya? Secara default, CB_MCP_READ_ONLY_MODE adalah true, sehingga semua operasi tulis — upsert/insert/replace/delete dokumen dan pernyataan SQL++ yang memodifikasi data — dinonaktifkan dan alat tulis bahkan tidak dimuat. Anda juga dapat menonaktifkan alat individual (lihat Menonaktifkan Alat) atau memerlukan konfirmasi pengguna yang eksplisit sebelum alat tertentu dijalankan (lihat Elicitation/Confirmation). Kontrol tingkat alat memandu perilaku LLM; izin RBAC pengguna Couchbase Anda tetap menjadi batas keamanan yang sebenarnya.
Bisakah saya menjalankan kueri bahasa alami terhadap data saya tanpa menulis SQL++ sendiri? Ya — ajukan pertanyaan kepada asisten AI Anda dalam bahasa Inggris sederhana (misalnya "tunjukkan 10 pesanan terbaru di atas $100") dan ia dapat menerjemahkannya menjadi kueri SQL++ menggunakan alat run_sql_plus_plus_query. Anda juga dapat meminta asisten untuk explain_sql_plus_plus_query kueri atau meminta penasihat indeks untuk rekomendasi.
Apa perbedaan antara transport STDIO, Streamable HTTP, dan SSE? STDIO digunakan untuk satu klien MCP lokal (misalnya Claude Desktop) yang meluncurkan server sebagai subproses. Streamable HTTP memungkinkan beberapa klien berbagi satu instance server yang berjalan melalui HTTP, dan mendukung OAuth 2.1. SSE adalah transport HTTP yang lebih lama, kini tidak digunakan lagi oleh spesifikasi MCP dan digantikan oleh Streamable HTTP — lihat Streamable HTTP Transport Mode.
Apakah ini didukung secara resmi oleh Couchbase? Proyek ini dikelola oleh komunitas Couchbase — lihat Support Policy. Dukungan enterprise tersedia secara terpisah melalui Couchbase AI Data Plane.
Berkontribusi
Kami menyambut kontribusi dari komunitas! Baik Anda ingin memperbaiki bug, menambahkan fitur, atau meningkatkan dokumentasi, bantuan Anda sangat kami hargai.
Jika Anda membutuhkan bantuan, menemukan bug, atau ingin menyumbangkan perbaikan, tempat terbaik untuk melakukannya adalah di sini — dengan membuka issue GitHub.
Untuk Pengembang
Jika Anda tertarik untuk berkontribusi kode atau menyiapkan lingkungan pengembangan:
📖 Lihat CONTRIBUTING.md untuk petunjuk pengaturan pengembang yang lengkap, termasuk:
- Pengaturan lingkungan pengembangan dengan
uv - Linting dan pemformatan kode dengan Ruff
- Instalasi pre-commit hooks
- Ringkasan struktur proyek
- Alur kerja dan praktik pengembangan
Mulai Cepat untuk Kontributor
# 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
📢 Kebijakan Dukungan
Kami sangat menghargai minat Anda pada proyek ini! Proyek ini dikelola oleh komunitas Couchbase, yang berarti tidak didukung secara resmi oleh tim dukungan kami. Namun, para insinyur kami secara aktif memantau dan memelihara repositori ini dan akan berusaha menyelesaikan masalah dengan upaya terbaik.
Portal dukungan kami tidak dapat membantu dengan permintaan yang terkait dengan proyek ini, jadi kami mohon agar semua pertanyaan tetap berada di GitHub.
Kolaborasi Anda membantu kita semua maju bersama — terima kasih!