Couchbase

resmi

Couchbase kümelerinde depolanan verilerle doğal dil kullanarak etkileşim kurun.

Couchbase MCP ile neler yapabilirsiniz?

  • Küme yapısını keşfedin — Bucket, scope ve koleksiyonları listelemek için istekte bulunun ve get_buckets_in_cluster, get_scopes_in_bucket ve get_schema_for_collection ile şemaları inceleyin.
  • SQL++ sorguları çalıştırın — run_sql_plus_plus_query ile bir scope üzerinde salt okunur sorgular yürütün veya explain_sql_plus_plus_query ile yürütme planlarını alın.
  • Küme sağlığını kontrol edin — test_cluster_connection ve get_cluster_health_and_services ile bağlantıyı ve hizmet durumunu doğrulayın veya get_cluster_diagnostics_report ile tanılama bilgilerini çekin.
  • Sorgu performansını analiz edin — get_longest_running_queries ve get_queries_using_primary_index ile yavaş veya verimsiz sorguları belirleyin.
  • Belgeleri yönetin — get_document_by_id ve upsert_document_by_id ile belgeleri kimliğe göre alın veya değiştirin (yazma araçları CB_MCP_READ_ONLY_MODE=false gerektirir).
  • Dizinleri optimize edin — get_index_advisor_recommendations ile dizin önerileri alın veya list_indexes ile mevcut dizinleri listeleyin.

Dokümantasyon

Couchbase MCP Sunucusu

Couchbase MCP Sunucusu, kendi kendine barındırılan bir Model Context Protocol (MCP) sunucusudur; AI ajanlarını ve LLM destekli asistanları — Claude, Cursor, Windsurf, VS Code Copilot ve diğer MCP istemcilerini — Capella üzerinde veya kendi kendine yönetilen Couchbase kümelerindeki verilere bağlar. MCP, AI asistanlarının araçları çağırmasına ve harici veri kaynaklarını sorgulamasına izin veren açık bir standarttır; bu sunucu, bu standardı Couchbase için uygular; böylece bir AI ajanı kümenizi inceleyebilir, SQL++ sorguları çalıştırabilir, belgeleri okuyup yazabilir ve el yazısı kod yerine doğal dil kullanarak sorgu performansını analiz edebilir.

Küme Sağlığı, Veri Şeması, Anahtar-Değer, Sorgu ve Performans dahil olmak üzere kategorilerde araçlar sağlar — salt okunur mod (varsayılan olarak açık) ve ayrıntılı araç devre dışı bırakma yoluyla güvenlik kontrolleri sunar; böylece bir AI ajanının istenmeyen yazma işlemleri riski olmadan verilerinizi keşfetmesine ve sorgulamasına izin verebilirsiniz. Hem STDIO hem de Streamable HTTP taşıma protokollerini destekler.

Couchbase MCP sunucusu, Python Package Index (PyPI) paketi olarak ve Docker aracılığıyla dağıtılır. Couchbase MCP Sunucusu için kurumsal destek, Couchbase AI Data Plane lisansı alınarak sağlanır; bu lisans aynı zamanda Couchbase Agent Memory ve Couchbase Agent Catalog kullanımını ve kurumsal desteğini de içerir.

Tam dokümantasyon için mcp-server.couchbase.com adresini ziyaret edin.

Docs License Python 3.10+ PyPI version Install in Cursor Verified on MseeP Trust Score

Tam dokümantasyon için docs.couchbase.com/mcp-server adresini ziyaret edin.

Couchbase Server MCP server

İçindekiler

Neden Couchbase MCP Sunucusu

  • Varsayılan olarak güvenli — yazma işlemleri (belge upsert/insert/delete ve veri değiştiren SQL++ sorguları), CB_MCP_READ_ONLY_MODE=false değerini açıkça ayarlamadığınız sürece engellenir ve bireysel araçlar devre dışı bırakılabilir veya kullanıcı onayının arkasına alınabilir.
  • Capella ve kendi kendine yönetilen kümelerle çalışır — aynı yapılandırma, Couchbase Capella'ya (tamamen yönetilen) veya kendi kendine barındırılan bir Couchbase Server kümesine bağlanır.
  • RBAC farkındalığı — araç devre dışı bırakma, LLM davranışını yönlendirmek için bir kolaylık katmanıdır; altta yatan Couchbase kullanıcısının rol tabanlı erişim kontrolü, yetkili güvenlik sınırı olmaya devam eder.
  • Üretim taşıma protokolleri — yerel masaüstü istemciler için STDIO üzerinden veya paylaşılan/uzak dağıtımlar için isteğe bağlı OAuth 2.1 (JWT/JWKS, sağlayıcıdan bağımsız — Auth0, Okta, Keycloak, Entra, Cognito vb.) ile Streamable HTTP üzerinden çalışır.
  • Herhangi bir MCP istemcisi — Claude Desktop, Cursor, Windsurf, VS Code ve JetBrains AI Assistant/Junie ile test edilmiştir; MCP spesifikasyonunu uygulayan herhangi bir istemciyle çalışır.

Örnek Komutlar

Sunucu bağlandıktan sonra, AI asistanınız aracılığıyla Couchbase kümenizle doğal dilde konuşabilirsiniz. Örneğin:

  • "Bu kümede hangi bucket, scope ve collection'larım var ve orders collection'ının şeması nedir?"
  • "SQL++ sorgusu çalıştırarak users collection'ındaki en son 10 belgeyi bul where status = 'active'."
  • "Bu kümede son bir saatteki en yavaş 5 sorgu hangileri ve bunlardan herhangi biri kapsayan bir indeksten yoksun mu?"
  • "Bu kümenin sağlıklı olup olmadığını kontrol et ve hangi servislerin çalıştığını söyle."
  • "products collection'ına şu alanlarla yeni bir belge ekle: ..." (CB_MCP_READ_ONLY_MODE=false gerektirir)

Özellikler/Araçlar

Bu dağıtım iki sunucu içerir: operasyonel sunucu (varsayılan — hemen aşağıdaki tablolar) normal bir Couchbase kümesiyle couchbase SDK üzerinden konuşur ve Operational Insights sunucusu (kendi tablosu daha aşağıda) Operational Insights kümeleriyle couchbase-operational-insights SDK üzerinden konuşur.

Küme kurulumu ve sağlık araçları

Araç AdıAçıklama
get_server_configuration_statusKümeye bağlanmadan sunucu durumunu ve yapılandırmasını alır — salt okunur modu, devre dışı/onay gerektiren araçları, OAuth ayarlarını ve çözümlenmiş günlük yapılandırmasını raporlar
test_cluster_connectionKümeye bağlanarak küme kimlik bilgilerini kontrol eder
get_cluster_health_and_servicesKüme sağlık durumunu ve çalışan tüm servislerin listesini alır; isteğe bağlı olarak service_types aracılığıyla belirli servislere filtrelenebilir
get_cluster_diagnostics_reportSDK'nın önbelleğe alınmış bağlantı teşhislerini alır — bağlantıların zaten bozuk olup olmadığını ve ne kadar süredir bozuk olduğunu, aktif ağ yoklaması olmadan
get_cluster_metricsYönetim REST API'sinin stats-range uç noktası aracılığıyla geçmiş bir zaman penceresi üzerinde bir veya daha fazla küme istatistiği alır. Yalnızca kendi kendine yönetilen Couchbase Server 7.6+ — Capella'da kullanılamaz.
discover_tool_input_valuesSunucuyla birlikte gelen referans verilerinden başka bir aracın ihtiyaç duyduğu tam girdi değerlerini arar — şu anda get_cluster_metrics için her Couchbase Server metrik adı (tür, birim, eklendiği sürüm, açıklama). Kategoriye göre göz atın veya anahtar kelimeyle bulanık arama yapın. Küme bağlantısı olmadan çevrimdışı çalışır.

Veri modeli ve şema keşif araçları

Araç AdıAçıklama
get_buckets_in_clusterKümedeki tüm bucket'ların listesini alır
get_scopes_in_bucketBelirtilen bucket'taki tüm scope'ların listesini alır
get_collections_in_scopeBelirtilen scope ve bucket'taki tüm collection'ların listesini alır. Bu aracın kümede Query servisinin olmasını gerektirdiğini unutmayın.
get_scopes_and_collections_in_bucketBelirtilen bucket'taki tüm scope ve collection'ların listesini alır
get_schema_for_collectionBir collection'ın yapısını alır
create_scopeBir bucket'ta yeni bir scope oluşturur (Couchbase Server 7.6+ ve Capella). CB_MCP_READ_ONLY_MODE=true olduğunda varsayılan olarak devre dışıdır.
create_collectionMevcut bir scope'ta yeni bir collection oluşturur (Couchbase Server 7.6+ ve Capella). CB_MCP_READ_ONLY_MODE=true olduğunda varsayılan olarak devre dışıdır.
delete_scopeBir bucket'tan bir scope'u ve tüm collection'larını siler — kalıcıdır. CB_MCP_READ_ONLY_MODE=true olduğunda varsayılan olarak devre dışıdır.
delete_collectionBir scope'tan bir collection'ı ve tüm belgelerini siler — kalıcıdır. CB_MCP_READ_ONLY_MODE=true olduğunda varsayılan olarak devre dışıdır.

Belge KV işlem araçları

Araç AdıAçıklama
get_document_by_idBelirtilen scope ve collection'dan kimliğe göre bir belge alır
lookup_subdocumentBelgenin tamamını getirmeden yola göre bir belgenin bölümlerini (belirli alanlar, varlık kontrolleri veya dizi/nesne sayıları) arar
upsert_document_by_idBelirtilen scope ve collection'a kimliğe göre bir belgeyi upsert eder. CB_MCP_READ_ONLY_MODE=true olduğunda varsayılan olarak devre dışıdır.
insert_document_by_idKimliğe göre yeni bir belge ekler (belge varsa başarısız olur). CB_MCP_READ_ONLY_MODE=true olduğunda varsayılan olarak devre dışıdır.
replace_document_by_idKimliğe göre mevcut bir belgeyi değiştirir (belge yoksa başarısız olur). CB_MCP_READ_ONLY_MODE=true olduğunda varsayılan olarak devre dışıdır.
delete_document_by_idBelirtilen scope ve collection'dan kimliğe göre bir belgeyi siler. CB_MCP_READ_ONLY_MODE=true olduğunda varsayılan olarak devre dışıdır.
mutate_subdocumentBelgenin tamamını yeniden yazmadan yola göre mevcut bir belgenin bölümlerini değiştirir (upsert, insert, replace, remove, dizi işlemleri, sayaçlar). CB_MCP_READ_ONLY_MODE=true olduğunda varsayılan olarak devre dışıdır.

Sorgu ve indeksleme araçları

Araç AdıAçıklama
list_indexesKümedeki tüm indeksleri tanımlarıyla birlikte listeler; bucket, scope, collection ve indeks adına göre isteğe bağlı filtreleme yapar. İşlenmemiş indeks bilgisini döndürmek için return_raw_index_stats=true değerini ayarlayın.
get_index_advisor_recommendationsBelirli bir SQL++ sorgusu için sorgu performansını optimize etmek üzere Couchbase Index Advisor'dan indeks önerileri alır
create_indexBir collection üzerinde skaler (vektör olmayan) GSI ikincil indeks oluşturur. Varsayılan olarak ertelenir — oluşturmak için ardından build_index çağırın. CB_MCP_READ_ONLY_MODE=true olduğunda varsayılan olarak devre dışıdır.
build_indexBir collection üzerindeki tüm ertelenmiş indekslerin oluşturulmasını tetikler. CB_MCP_READ_ONLY_MODE=true olduğunda varsayılan olarak devre dışıdır.
drop_indexBir collection'dan bir GSI indeksini (skaler veya vektör) bırakır. CB_MCP_READ_ONLY_MODE=true olduğunda varsayılan olarak devre dışıdır.
run_sql_plus_plus_queryBelirtilen bir scope üzerinde bir SQL++ sorgusu çalıştırır.

Sorgular otomatik olarak belirtilen bucket ve scope'a kapsamlanır; bu nedenle collection adlarını doğrudan kullanın (ör. SELECT * FROM users yerine SELECT * FROM bucket.scope.users).

CB_MCP_READ_ONLY_MODE varsayılan olarak true değerindedir; bu, tüm yazma işlemlerinin (KV, Query, scope/collection yönetimi ve indeks yönetimi) devre dışı olduğu anlamına gelir. Etkinleştirildiğinde (yani CB_MCP_READ_ONLY_MODE=true), yazma araçları yüklenmez ve verileri değiştiren SQL++ sorguları engellenir.
explain_sql_plus_plus_queryBir SQL++ sorgusu için EXPLAIN planı oluşturur ve değerlendirir. Sorgu meta verilerini, çıkarılan planı ve plan değerlendirme bulgularını döndürür.

Tam metin arama (FTS) araçları

Couchbase Server 7.6+ ve Search servisi gerektirir. Vektör arama bu araçlar tarafından desteklenmez (ayrı vektör arama araçlarına bakın).

Araç AdıAçıklama
list_fts_indexesSearch (FTS) indekslerini listeler. Filtre olmadan küme düzeyindeki (eski) indeksleri listeler; bucket_name ile o bucket'taki her scope genelinde scope düzeyindeki (kapsamlı) indeksleri listeler; bucket_name ve scope_name ile o tek scope'taki scope düzeyindeki indeksleri listeler.
get_fts_index_definitionTek bir Search indeksinin tam tanımını alır (eşlemeler, analizörler, plan parametreleri). Scope düzeyindeki bir indeks için bucket_name ve scope_name birlikte geçirin veya küme düzeyindeki (eski) bir indeks için ikisini de atlayın.
run_fts_queryBir Search indeksine karşı FTS sorgusu çalıştırır veya yürütme planını getirir. query ham FTS sorgu JSON gövdesidir; vektör olmayan herhangi bir sorgu türünü destekler (match, match_phrase, term, conjuncts, disjuncts, geo, date/numeric range, query_string, ...). Sonuçlar yerine yürütme planını getirmek için explain=true geçirin — bu yine de sorguyu yürütür (limit varsayılan olarak 1) çünkü Search servisi planı yalnızca eşleşen her isabet için sunar, ayrı bir kuru çalıştırma çağrısı olarak değil.

Sorgu performansı analiz araçları

Araç AdıAçıklama
get_longest_running_queriesOrtalama servis süresine göre en uzun süren sorguları alır
get_most_frequent_queriesEn sık yürütülen sorguları alır
get_queries_with_largest_response_sizesEn büyük yanıt boyutlarına sahip sorguları alır
get_queries_with_large_result_countEn büyük sonuç sayılarına sahip sorguları alır
get_queries_using_primary_indexBirincil indeks kullanan sorguları alır (potansiyel performans endişesi)
get_queries_not_using_covering_indexKapsayan indeks kullanmayan sorguları alır
get_queries_not_selectiveSeçici olmayan sorguları alır (indeks taramaları nihai sonuçtan çok daha fazla belge döndürür)

Operasyonel İçgörüler araçları

Ayrı operational-insights sunucusu tarafından kaydedilir (aşağıdaki Operational Insights Sunucusu bölümüne bakın), varsayılan operational sunucusu tarafından değil.

Araç AdıAçıklama
get_server_configuration_statusBu sunucunun durumunu ve yapılandırmasını bir kümeye bağlanmadan alın — salt okunur mod, devre dışı bırakılmış/onay gerektiren araçlar, OAuth ayarları ve çözümlenmiş günlük yapılandırması. Operasyonel sunucuyla paylaşılır: her ikisi tarafından kaydedilen aynı araç.
get_databases_in_clusterOperational Insights kümesindeki tüm veritabanlarını listeler.
get_scopes_in_databaseBir veritabanındaki tüm kapsamları listeler.
get_collections_in_scopeBir kapsamdaki tüm koleksiyonları (veri kümelerini) listeler. Adını operasyonel sunucunun aynı addaki aracıyla paylaşır — aşağıdaki nota bakın.
get_schema_for_collectionBelgeleri örnekleyerek bir koleksiyonun JSON şemasını çıkarır. Adını operasyonel sunucunun aynı addaki aracıyla paylaşır — aşağıdaki nota bakın.
list_indexesSystem.Metadata.Index kataloğu aracılığıyla ikincil dizinleri listeler (SDK'da dizin yöneticisi yoktur). Adını operasyonel sunucunun aynı addaki aracıyla paylaşır — aşağıdaki nota bakın.
run_query_syncBir SQL++ ifadesini (SELECT, DML veya DDL) çalıştırır ve tüm sonuç satırlarını döndürür. Salt okunur modu sunucu tarafında QueryOptions(readonly=True) aracılığıyla zorunlu kılar — burada istemci tarafı SQL++ ayrıştırıcısı yoktur.
explain_queryBir SQL++ ifadesi için EXPLAIN aracılığıyla sorgu planını, ifadeyi çalıştırmadan oluşturur.
create_indexCREATE INDEX aracılığıyla ikincil bir dizin oluşturur (SDK'da dizin yöneticisi yoktur). CB_MCP_READ_ONLY_MODE=true olduğunda varsayılan olarak devre dışıdır. Adını operasyonel sunucunun aynı addaki aracıyla paylaşır — aşağıdaki nota bakın.
run_query_asyncBir SQL++ ifadesini bitmesini beklemeden başlatır ve bir query_handle belirteci döndürür. run_query_sync ile aynı salt okunur zorunluluğu.
get_async_query_resultsZaman uyumsuz bir sorgunun bitip bitmediğini kontrol eder ve bittiyse satırlarını döndürür. Aynı zamanda durum kontrolü olarak da işlev görür — henüz hazır değilse daha sonra tekrar çağırın.
discard_async_query_resultsSunucuda bitmiş bir zaman uyumsuz sorgunun sonuç arabelleklerini serbest bırakır. get_async_query_results sonrası normal temizlik adımı.
cancel_async_queryHâlâ çalışan bir zaman uyumsuz sorguyu durdurur. CB_MCP_READ_ONLY_MODE=true olduğunda varsayılan olarak devre dışıdır. Bitmiş bir sorgu iptal edilemez — bunun yerine sonuçlarını atın.

Sunucu Zaman Uyumsuz İstek API araçları, uzun süren sorgular için başlat → yokla → at veya iptal et akışını oluşturur: run_query_async bir query_handle döndürür, get_async_query_results hazır olduğunu bildirene kadar yoklanır (ve satırları döndürür), ardından discard_async_query_results sonuçları serbest bırakır veya hâlâ çalışan bir sorgu için cancel_async_query onu durdurur.

Not: get_collections_in_scope, get_schema_for_collection, create_index ve list_indexes her iki sunucuda da farklı davranışlarla mevcuttur. (get_server_configuration_status da her ikisinde de görünür, ancak kasıtlı olarak tek paylaşılan araçtır — aynı uygulama, aynı sonuç şekli — bu nedenle ayrıştırma gerektirmez.) Her sunucu ayrı bir süreçtir, bu nedenle bu yalnızca tek bir MCP istemcisi hem operational hem de operational-insights aynı anda kaydederse bir sorundur — bu durumda, istemci yapılandırma katmanında ayrıştırın (ör. iki sunucu girişine istemcinin kendi yapılandırmasında farklı adlar vererek).

Ön Koşullar

  • Python 3.10 veya üzeri.
  • Çalışan bir Couchbase kümesi. Başlamanın en kolay yolu, Couchbase sunucusunun tamamen yönetilen sürümü olan Capella ücretsiz katmanını kullanmaktır. Örnek veri kümelerinden birini içe aktarmak veya kendi verinizi içe aktarmak için talimatları izleyebilirsiniz.
  • Sunucuyu çalıştırmak için uv kurulu olmalıdır.
  • Sunucuyu Claude'a bağlamak için Claude Desktop gibi bir MCP istemcisi kurulu olmalıdır. Talimatlar Claude Desktop ve Cursor için sağlanmıştır. Diğer MCP istemcileri de kullanılabilir.

Yapılandırma

MCP sunucusu, önceden derlenmiş PyPI paketinden veya uv kullanarak kaynaktan çalıştırılabilir.

PyPI'dan Çalıştırma

MCP sunucusu için önceden derlenmiş bir PyPI paketi yayınlıyoruz.

MCP İstemcileri için Önceden Derlenmiş Paket Kullanarak Sunucu Yapılandırması

Temel Kimlik Doğrulama

{
  "mcpServers": {
    "couchbase": {
      "command": "uvx",
      "args": ["couchbase-mcp-server"],
      "env": {
        "CB_CONNECTION_STRING": "couchbases://connection-string",
        "CB_USERNAME": "username",
        "CB_PASSWORD": "password"
      }
    }
  }
}

veya

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"
      }
    }
  }
}

Not: İstemcide başka MCP sunucuları kullanıyorsanız, bunu mevcut mcpServers nesnesine ekleyebilirsiniz.

Kaynaktan Çalıştırma

MCP sunucusu, bu depoyu kullanarak kaynaktan çalıştırılabilir.

Depoyu yerel makinenize klonlayın

git clone https://github.com/couchbase/mcp-server-couchbase.git

MCP İstemcileri için Kaynak Kullanarak Sunucu Yapılandırması

Bu, Claude Desktop, Cursor, Windsurf Editor gibi MCP istemcileri için ortak yapılandırmadır.

{
  "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"
      }
    }
  }
}

Not: path/to/cloned/repo/mcp-server-couchbase/, yerel makinenizdeki klonlanmış deponun yolu olmalıdır. Sondaki eğik çizgiyi unutmayın!

Not: İstemcide başka MCP sunucuları kullanıyorsanız, bunu mevcut mcpServers nesnesine ekleyebilirsiniz.

MCP Sunucusu için Ek Yapılandırma

Sunucu, ortam değişkenleri veya komut satırı bağımsız değişkenleri kullanılarak yapılandırılabilir:

Ortam DeğişkeniCLI Bağımsız DeğişkeniAçıklamaVarsayılan
CB_CONNECTION_STRING--connection-stringCouchbase kümesine bağlantı dizesiGerekli
CB_USERNAME--usernameTemel kimlik doğrulama için gerekli paketlere erişimi olan kullanıcı adıGerekli (veya mTLS için İstemci Sertifikası ve Anahtarı gerekli)
CB_PASSWORD--passwordTemel kimlik doğrulama için parolaGerekli (veya mTLS için İstemci Sertifikası ve Anahtarı gerekli)
CB_CLIENT_CERT_PATH--client-cert-pathmTLS kimlik doğrulaması için istemci sertifika dosyasının yolumTLS kullanılıyorsa gerekli (veya Kullanıcı Adı ve Parola gerekli)
CB_CLIENT_KEY_PATH--client-key-pathmTLS kimlik doğrulaması için istemci anahtar dosyasının yolumTLS kullanılıyorsa gerekli (veya Kullanıcı Adı ve Parola gerekli)
CB_CA_CERT_PATH--ca-cert-pathSunucu, kendinden imzalı/güvenilmeyen bir sertifikayla yapılandırılmışsa TLS için sunucu kök sertifikasının yolu. Capella'ya bağlanıyorsanız bu gerekli olmayacaktır
CB_MCP_READ_ONLY_MODE--read-only-modeTüm veri değişikliklerini önler (KV, Sorgu, kapsam/koleksiyon yönetimi ve dizin yönetimi). Etkinleştirildiğinde, yazma araçları yüklenmez.true
CB_MCP_TRANSPORT--transportAktarım modu: stdio, http, ssestdio
CB_MCP_HOST--hostHTTP/SSE aktarım modları için ana bilgisayar127.0.0.1
CB_MCP_PORT--portHTTP/SSE aktarım modları için bağlantı noktası8000
CB_MCP_DISABLED_TOOLS--disabled-toolsDevre dışı bırakılacak araçlar (bkz. Araçları Devre Dışı Bırakma)Yok
CB_MCP_CONFIRMATION_REQUIRED_TOOLS--confirmation-required-toolsMCP istemi yoluyla yürütmeden önce açık kullanıcı onayı gerektiren araçlar (bkz. İstem/Onay Gerektiren Araçlar)Yok
CB_MCP_LOG_LEVEL--log-levelMCP sunucusu için günlük düzeyi: off, debug, info, warning, error (bkz. Günlük Kaydı)info
CB_MCP_LOG_SINKS--log-sinksVirgülle ayrılmış günlük hedefleri: stderr, file veya her ikisi (bkz. Günlük Kaydı)stderr
CB_MCP_LOG_FILE--log-fileDüzey başına günlük dosyaları için temel yol (yalnızca file hedefi etkinleştirildiğinde kullanılır)mcp_server.log
CB_MCP_LOG_ROTATION_MAX_SIZE_MB--log-rotation-max-size-mbDöndürülmeden önce günlük dosyası başına MB cinsinden genel maksimum boyut, aksi belirtilmedikçe her düzey tarafından devralınır. 0 geçersizdir ve bir başlangıç uyarısıyla varsayılana geri döner1 (1 MB)
CB_MCP_LOG_MAX_BYTES--log-max-bytesKullanımdan kaldırıldı — CB_MCP_LOG_ROTATION_MAX_SIZE_MB (MB) kullanın. Bayt cinsinden genel döndürme boyutu, geriye dönük uyumluluk için hâlâ onurlandırılır; CB_MCP_LOG_ROTATION_MAX_SIZE_MB de ayarlandığında yok sayılırAyarlanmamış
CB_MCP_LOG_ERROR_ROTATION_MAX_SIZE_MB--log-error-rotation-max-size-mbERROR günlük dosyası için MB cinsinden döndürme boyutu; ERROR için CB_MCP_LOG_ROTATION_MAX_SIZE_MB değerini geçersiz kılarCB_MCP_LOG_ROTATION_MAX_SIZE_MB değerini devralır
CB_MCP_LOG_WARNING_ROTATION_MAX_SIZE_MB--log-warning-rotation-max-size-mbWARNING günlük dosyası için MB cinsinden döndürme boyutu; WARNING için CB_MCP_LOG_ROTATION_MAX_SIZE_MB değerini geçersiz kılarCB_MCP_LOG_ROTATION_MAX_SIZE_MB değerini devralır
CB_MCP_LOG_INFO_ROTATION_MAX_SIZE_MB--log-info-rotation-max-size-mbINFO günlük dosyası için MB cinsinden döndürme boyutu; INFO için CB_MCP_LOG_ROTATION_MAX_SIZE_MB değerini geçersiz kılarCB_MCP_LOG_ROTATION_MAX_SIZE_MB değerini devralır
CB_MCP_LOG_DEBUG_ROTATION_MAX_SIZE_MB--log-debug-rotation-max-size-mbDEBUG günlük dosyası için MB cinsinden döndürme boyutu; DEBUG için CB_MCP_LOG_ROTATION_MAX_SIZE_MB değerini geçersiz kılarCB_MCP_LOG_ROTATION_MAX_SIZE_MB değerini devralır
CB_MCP_LOG_RETENTION_BACKUP_COUNT--log-retention-backup-countDüzey başına günlük dosyası başına tutulan döndürülmüş yedek dosyalar (canlı dosya hariç), aksi belirtilmedikçe her düzeye uygulanır. 0 yalnızca canlı dosyayı tutar (bkz. Günlük Kaydı)1
CB_MCP_LOG_ERROR_RETENTION_BACKUP_COUNT--log-error-retention-backup-countERROR günlük dosyası için tutulan döndürülmüş yedekler; ERROR için genel sayıyı geçersiz kılarCB_MCP_LOG_RETENTION_BACKUP_COUNT değerini devralır
CB_MCP_LOG_WARNING_RETENTION_BACKUP_COUNT--log-warning-retention-backup-countWARNING günlük dosyası için tutulan döndürülmüş yedekler; WARNING için genel sayıyı geçersiz kılarCB_MCP_LOG_RETENTION_BACKUP_COUNT değerini devralır
CB_MCP_LOG_INFO_RETENTION_BACKUP_COUNT--log-info-retention-backup-countINFO günlük dosyası için tutulan döndürülmüş yedekler; INFO için genel sayıyı geçersiz kılarCB_MCP_LOG_RETENTION_BACKUP_COUNT değerini devralır
CB_MCP_LOG_DEBUG_RETENTION_BACKUP_COUNT--log-debug-retention-backup-countDEBUG günlük dosyası için tutulan döndürülmüş yedekler; DEBUG için genel sayıyı geçersiz kılarCB_MCP_LOG_RETENTION_BACKUP_COUNT değerini devralır
CB_MCP_OAUTH_JWT_JWKS_URI--oauth-jwks-uriTaşıyıcı JWT'leri doğrulamak için kullanılan kimlik sağlayıcının JWKS uç noktası. Veren ve hedef kitle ile ayarlandığında OAuth'u etkinleştirir (bkz. OAuth 2.1 Yetkilendirme)Yok
CB_MCP_OAUTH_JWT_ISSUER--oauth-issuerBeklenen JWT iss talebi. OAuth'u etkinleştirmek için gereklidirYok
CB_MCP_OAUTH_JWT_AUDIENCE--oauth-audienceBeklenen JWT aud talebi. OAuth'u etkinleştirmek için gereklidirYok
CB_MCP_OAUTH_JWT_ALGORITHM--oauth-algorithmJWT imzalama algoritması: RS256/384/512, ES256/384/512, PS256/384/512 değerlerinden biriRS256
CB_MCP_OAUTH_MCP_BASE_URL--oauth-mcp-base-urlBu sunucunun genel temel URL'si. Ayarlandığında, RFC 9728 Korumalı Kaynak Meta Verilerini yayınlar, böylece PRM farkında istemciler IdP'yi keşfedebilirYok
CB_MCP_OAUTH_SCOPE_READ_LABEL--oauth-scope-read-label'okuma' erişimi olarak ele alınan OAuth kapsam etiketini geçersiz kılar (PRM'de tanıtılır ve belirtecin scope/scp talebiyle eşleştirilir). IdP'niz kurallı formu yayamadığında kullanıncouchbase-mcp:read
CB_MCP_OAUTH_SCOPE_WRITE_LABEL--oauth-scope-write-label'yazma' erişimi olarak ele alınan OAuth kapsam etiketini geçersiz kılar; okuma etiketiyle aynı anlambilimcouchbase-mcp:write

Salt Okunur Mod Yapılandırması

CB_MCP_READ_ONLY_MODE yazma işlemlerini kontrol eden tek anahtardır:

  • true olduğunda (varsayılan): Tüm yazma işlemleri (KV, Sorgu, kapsam/koleksiyon yönetimi ve dizin yönetimi) devre dışıdır. Tüm yazma araçları (KV: upsert, insert, replace, delete, alt belge değiştirme; kapsam/koleksiyon yönetimi: create_scope, create_collection, delete_scope, delete_collection; dizin yönetimi: create_index, build_index, drop_index) yüklenmez ve LLM için kullanılabilir olmayacaktır ve verileri veya yapıyı değiştiren SQL++ sorguları engellenir.
  • false olduğunda: Tüm yazma araçları yüklenir ve SQL++ veri/yapı değiştirme sorgularına izin verilir.

Bu, LLM'ler tarafından yanlışlıkla veri değişikliklerini önlemek için önerilen güvenli varsayılandır.

Not: Kimlik doğrulama için Kullanıcı Adı ve Parola veya İstemci Sertifikası ve anahtar yollarından birine ihtiyacınız vardır. İsteğe bağlı olarak, sunucu sertifikalarını doğrulamak için kullanılacak CA kök sertifika yolunu belirtebilirsiniz. Hem İstemci Sertifikası ve anahtar yolu hem de kullanıcı adı ve parola belirtilirse, kimlik doğrulama için istemci sertifikaları kullanılacaktır.

Araçları Devre Dışı Bırakma

Belirli araçları devre dışı bırakarak bunların yüklenmesini ve MCP istemcisine sunulmasını engelleyebilirsiniz. Devre dışı bırakılan araçlar araç keşfinde görünmez ve LLM tarafından çağrılamaz.

Desteklenen Biçimler

Virgülle ayrılmış liste:

# 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

Dosya yolu (her satırda bir araç adı):

# Environment variable
CB_MCP_DISABLED_TOOLS=disabled_tools.txt

# Command line
uvx couchbase-mcp-server --disabled-tools disabled_tools.txt

Dosya biçimi (örn. disabled_tools.txt):

# Write operations
upsert_document_by_id
delete_document_by_id

# Index advisor
get_index_advisor_recommendations

# ile başlayan satırlar yorum olarak kabul edilir ve yok sayılır.

MCP İstemci Yapılandırma Örnekleri

Virgülle ayrılmış liste kullanma:

{
  "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"
      }
    }
  }
}

Dosya yolu kullanma (çok sayıda araç için önerilir):

{
  "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"
      }
    }
  }
}

Önemli Güvenlik Notu

Uyarı: Araçları devre dışı bırakmak tek başına belirli işlemlerin gerçekleştirilemeyeceğini garanti etmez. Temel veritabanı kullanıcısının RBAC (Rol Tabanlı Erişim Kontrolü) izinleri yetkili güvenlik kontrolüdür.

Örneğin, upsert_document_by_id ve delete_document_by_id araçlarını devre dışı bıraksanız bile, aşağıdaki durumlar söz konusu olmadıkça veri değişiklikleri yine de run_sql_plus_plus_query aracı üzerinden SQL++ DML ifadeleri (INSERT, UPDATE, DELETE, MERGE) kullanılarak gerçekleştirilebilir:

  • CB_MCP_READ_ONLY_MODE değeri true olarak ayarlanmışsa (varsayılan), VEYA
  • Veritabanı kullanıcısı veri değişikliği için gerekli RBAC izinlerine sahip değilse

En İyi Uygulama: Birincil güvenlik önlemi olarak Couchbase kullanıcı kimlik bilgilerinizde her zaman uygun RBAC izinlerini yapılandırın. Araç devre dışı bırakmayı LLM davranışını yönlendirmek ve saldırı yüzeyini azaltmak için ek bir katman olarak kullanın, tek güvenlik kontrolü olarak değil.

Araç Çağrıları için Bilgi İsteme/Onay

Belirli araçlar için yürütmeden önce açık kullanıcı onayı isteyebilirsiniz (MCP istemcisi bilgi istemeyi desteklediğinde).

CB_MCP_CONFIRMATION_REQUIRED_TOOLS / --confirmation-required-tools şu biçimleri destekler:

  • Virgülle ayrılmış liste
  • Dosya yolu (her satırda bir araç adı, # yorumları desteklenir)

Örnek:

# 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

Listelenen bir araç çağrıldığında:

  • İstemci bilgi istemeyi destekliyorsa, kullanıcıdan onay istenir.
  • İstemci bilgi istemeyi desteklemiyorsa, geriye dönük uyumluluk için araç onay olmadan yürütülür.

Sunucunun sürümünü de şu şekilde kontrol edebilirsiniz:

uvx couchbase-mcp-server --version

Günlükleme

MCP sunucusu varsayılan olarak stderr konumuna günlük kaydeder. Günlükleme, Ek Yapılandırma bölümünde listelenen CB_MCP_LOG_* değişkenleriyle yapılandırılır:

  • CB_MCP_LOG_LEVEL — ne kadar günlük kaydedileceği: info (varsayılan) yaşam döngüsü olaylarını ve araç çağrılarını kaydeder, debug ayrıntılı dahili bilgi ekler ve off tüm günlüklemeyi devre dışı bırakır.
  • CB_MCP_LOG_SINKS — günlüklerin nereye gideceği: stderr (varsayılan), seviye başına dönen dosyalar (file) veya her ikisi. file ile, CB_MCP_LOG_FILE tarafından belirlenen yolda seviye başına bir dosya yazılır (örneğin mcp_server.info.log ve mcp_server.error.log).
  • Döndürme boyutu — CB_MCP_LOG_ROTATION_MAX_SIZE_MB, her seviyedeki dosyanın döndüğü genel boyuttur (MB cinsinden). Tek tek seviyeleri CB_MCP_LOG_<LEVEL>_ROTATION_MAX_SIZE_MB (ERROR/WARNING/INFO/DEBUG) ile geçersiz kılın, ayrıca MB cinsinden, ayarlanmadığında genel değeri devralır. 0 boyutu (genel veya seviye başına) geçersizdir ve başlangıç uyarısıyla varsayılana (1 MB) geri döner. CB_MCP_LOG_MAX_BYTES (bayt) kullanımdan kaldırıldı ancak geriye dönük uyumluluk için hâlâ onurlandırılır; CB_MCP_LOG_ROTATION_MAX_SIZE_MB de ayarlandığında yok sayılır ve başlangıçta bir kullanımdan kaldırma uyarısı yazdırır.
  • Saklama — CB_MCP_LOG_RETENTION_BACKUP_COUNT, seviye başına (canlı dosya hariç) kaç döndürülmüş yedek kopyanın tutulacağını belirler; 1 varsayılanı önceki davranışı korur. Tek tek seviyeleri CB_MCP_LOG_<LEVEL>_RETENTION_BACKUP_COUNT (ERROR/WARNING/INFO/DEBUG) ile geçersiz kılın, ayarlanmadığında genel değeri devralır. Bir sayımı 0 olarak ayarlayın; bu seviye için yalnızca canlı dosya tutulur — yine de döndürme boyutuyla sınırlıdır (yedeklenmek yerine döndürmede sıfırlanır).
  • Sunucu yapılandırma anlık görüntüsü — file havuzu etkin olduğunda, tek seferlik bir kayıt (OS, Python, bağımlılık sürümleri, taşıma, çözümlenmiş günlükleme yapılandırması ve gizlenmiş sunucu yapılandırması) özel bir mcp_server_config.log.json dosyasına (CB_MCP_LOG_FILE tabanından türetilir) JSON olarak yazılır. Her başlangıçta üzerine yazılır, böylece destek her zaman güncel yapılandırmaya sahip olur ve dönen bir günlükten asla kaybolmaz.
# 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

Daha fazla ayrıntı için belgelere bakın.

İstemciye Özel Yapılandırma

Claude Desktop

Couchbase MCP sunucusunu Claude Desktop MCP istemcisiyle kullanmak için aşağıdaki adımları izleyin:

  1. MCP sunucusu artık yapılandırma dosyasını düzenleyerek Claude Desktop'a eklenebilir. Daha ayrıntılı talimatlar MCP hızlı başlangıç kılavuzunda bulunabilir.

    • Mac'te yapılandırma dosyası ~/Library/Application Support/Claude/claude_desktop_config.json konumunda bulunur
    • Windows'ta yapılandırma dosyası %APPDATA%\Claude\claude_desktop_config.json konumunda bulunur

    Yapılandırma dosyasını açın ve yapılandırmayı mcpServers bölümüne ekleyin.

  2. Değişiklikleri uygulamak için Claude Desktop'ı yeniden başlatın.

  3. Artık sunucuyu Claude Desktop'ta Couchbase kümesinde doğal dil kullanarak sorgular çalıştırmak ve belgeler üzerinde CRUD işlemleri gerçekleştirmek için kullanabilirsiniz.

Günlükler

Claude Desktop günlükleri aşağıdaki konumlarda bulunabilir:

  • MacOS: ~/Library/Logs/Claude
  • Windows: %APPDATA%\Claude\Logs

Günlükler, MCP sunucu yapılandırmanızla ilgili bağlantı sorunlarını veya diğer sorunları teşhis etmek için kullanılabilir. Daha fazla ayrıntı için resmi belgelere bakın.

Cursor

Couchbase MCP sunucusunu Cursor ile kullanmak için aşağıdaki adımları izleyin:

  1. Makinenize Cursor yükleyin.

  2. Cursor'da Cursor > Cursor Ayarları > Araçlar ve Entegrasyonlar > MCP Araçları bölümüne gidin. Ayrıca Cursor'dan MCP sunucu yapılandırması kurulumuyla ilgili belgelere göz atın.

  3. Aynı yapılandırmayı manuel olarak belirtin veya tek tıklamayla Cursor'da Kur bağlantısını kullanın. Sunucu yapılandırmasını mcpServers üst anahtarı altına eklemeniz gerekebilir.

    Not: Kurulum bağlantısı, yukarıdaki yapılandırma örneklerindeki yer tutucu değerleri kullanır. Kurulumdan sonra bağlantı dizesini ve kimlik bilgilerini güncelleyin.

  4. Yapılandırmayı kaydedin.

  5. MCP sunucuları listesinde eklenen bir sunucu olarak couchbase'i göreceksiniz. Sunucunun etkin olup olmadığını görmek için yenileyin.

  6. Artık Couchbase MCP sunucusunu Cursor'da Couchbase kümenizi doğal dil kullanarak sorgulamak ve belgeler üzerinde CRUD işlemleri gerçekleştirmek için kullanabilirsiniz.

Cursor ile MCP entegrasyonu hakkında daha fazla ayrıntı için resmi Cursor MCP belgelerine bakın.

Günlükler

Cursor'un alt panelinde "Çıktı"ya tıklayın ve sunucu günlüklerini görüntülemek için açılır menüden "Cursor MCP"yi seçin. Bu, MCP sunucu yapılandırmanızla ilgili bağlantı sorunlarını veya diğer sorunları teşhis etmeye yardımcı olabilir.

Windsurf Editor

Couchbase MCP sunucusunu Windsurf Editor ile kullanmak için aşağıdaki adımları izleyin.

  1. Makinenize Windsurf Editor yükleyin.

  2. Windsurf Editor'da Komut Paleti > Windsurf MCP Yapılandırma Paneli veya Windsurf - Ayarlar > Gelişmiş > Cascade > Model Context Protocol (MCP) Sunucuları bölümüne gidin. Yapılandırma hakkında daha fazla ayrıntı için lütfen resmi belgelere bakın.

  3. Sunucu Ekle'ye ve ardından Özel sunucu ekle'ye tıklayın. Düzenleyicide açılan yapılandırmaya yukarıdaki Couchbase MCP Sunucusu yapılandırmasını ekleyin.

  4. Yapılandırmayı kaydedin.

  5. Gelişmiş Ayarlar altındaki MCP Sunucuları listesinde eklenen bir sunucu olarak couchbase'i göreceksiniz. Sunucunun etkin olup olmadığını görmek için yenileyin.

  6. Artık Couchbase MCP sunucusunu Windsurf Editor'da Couchbase kümenizi doğal dil kullanarak sorgulamak ve belgeler üzerinde CRUD işlemleri gerçekleştirmek için kullanabilirsiniz.

Windsurf Editor ile MCP entegrasyonu hakkında daha fazla ayrıntı için resmi Windsurf MCP belgelerine bakın.

VS Code

Couchbase MCP sunucusunu VS Code ile kullanmak için aşağıdaki adımları izleyin.

  1. VS Code yükleyin

  2. MCP sunucusunu yapılandırmanın birkaç yolu aşağıda verilmiştir.

    • Çalışma Alanı sunucu yapılandırması için

      • Çalışma alanında .vscode/mcp.json olarak yeni bir dosya oluşturun.
      • Yapılandırmayı ekleyin ve dosyayı kaydedin.
    • Genel sunucu yapılandırması için:

      • Komut Paleti'nde MCP: Kullanıcı Yapılandırmasını Aç komutunu çalıştırın (Ctrl+Shift+P veya Cmd+Shift+P)
      • Yapılandırmayı ekleyin ve dosyayı kaydedin.
    • Not: VS Code, mcp.json dosyalarında MCP (Model Context Protocol) sunucularını tanımlamak için üst düzey JSON özelliği olarak servers kullanırken, Cursor eşdeğer yapılandırma için mcpServers kullanır. Daha fazla değişiklik veya ayrıntı için VS Code istemci yapılandırmalarına bakın. Aşağıda örnek bir VS Code yapılandırması verilmiştir.

        {
          "servers": {
            "couchbase": {
              "command": "uvx",
              "args": ["couchbase-mcp-server"],
              "env": {
                "CB_CONNECTION_STRING": "couchbases://connection-string",
                "CB_USERNAME": "username",
                "CB_PASSWORD": "password"
              }
            }
          }
        }
      
  3. Dosyayı kaydettiğinizde sunucu başlar ve Running|Stop|n Tools|More.. ile küçük bir eylem listesi görünür.

  4. Sunucuyu Start/Stop/yönetmek için seçenek listesindeki seçeneklere tıklayın.

  5. Artık Couchbase MCP sunucusunu VS Code'da Couchbase kümenizi doğal dil kullanarak sorgulamak ve belgeler üzerinde CRUD işlemleri gerçekleştirmek için kullanabilirsiniz.

Günlükler: Komut Paleti'nde (Ctrl+Shift+P veya Cmd+Shift+P),

  • MCP: Sunucuları Listele komutunu çalıştırın ve couchbase sunucusunu seçin
  • Çıktı sekmesinde günlüklerini görmek için "Çıktıyı Göster"i seçin.
JetBrains IDE'leri

Couchbase MCP sunucusunu JetBrains IDE'leri ile kullanmak için aşağıdaki adımları izleyin:

  1. JetBrains IDE'lerinden herhangi birini yükleyin
  2. JetBrains eklentilerinden herhangi birini yükleyin - AI Assistant veya Junie
  3. Ayarlar > Araçlar > AI Assistant veya Junie > MCP Sunucusu bölümüne gidin
  4. Couchbase MCP yapılandırmasını eklemek için "+"ya tıklayın ve Kaydet'e tıklayın.
  5. Couchbase MCP sunucusunun sunucular listesine eklendiğini göreceksiniz. Uygula'ya tıkladığınızda Couchbase MCP sunucusu başlar ve durumun üzerine geldiğinizde kullanılabilir tüm araçları gösterir.
  6. Artık Couchbase MCP sunucusunu JetBrains IDE'lerinde Couchbase kümenizi doğal dil kullanarak sorgulamak ve belgeler üzerinde CRUD işlemleri gerçekleştirmek için kullanabilirsiniz.

Günlükler: Günlük dosyası Yardım > Günlüğü Bulucuda (Gezginde) Göster > mcp > couchbase bölümünde incelenebilir.

Operasyonel İçgörüler Sunucusu

Varsayılan operational sunucusunun (yukarıdaki her bölümün açıkladığı) yanında, bu dağıtım Operasyonel İçgörüler kümeleri için ayrı bir couchbase-operational-insights SDK kullanan ikinci bir sunucu içerir. Normal bir Couchbase kümesinden farklı bir üründür ve kendi bağlantı noktasında bağımsız bir işlem olarak çalışır.

CLI alt komutu olarak operational-insights ileterek çalıştırın (veya kapsayıcının komutuna ekleyerek):

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 bir HTTP(S) URL'sidir, couchbase:// bağlantı dizesi değildir — örn. yerel bir Operasyonel İçgörüler sunucusu için http://localhost:8095 veya Capella için https://<host>:18095. Bu, bu sunucuyu bir kümeye yönlendirirken en yaygın yanlış yapılandırmadır.

CLI ArgümanıOrtam DeğişkeniAçıklamaVarsayılan
--connection-stringCB_OI_CONNECTION_STRINGOperational Insights uç nokta URL'si (HTTP/HTTPS, couchbase:// değil)Yok
--usernameCB_OI_USERNAMEOperational Insights kullanıcı adıYok
--passwordCB_OI_PASSWORDOperational Insights parolasıYok
--ca-cert-pathCB_OI_CA_CERT_PATHKendinden imzalı/güvenilmeyen bir sunucu sertifikasını doğrulamak için sunucu kök sertifikasının (PEM) yoluYok
--client-cert-pathCB_OI_CLIENT_CERT_PATHmTLS kimlik doğrulaması için istemci sertifikasının yolu — bir PEM sertifikası (--client-key-path ile eşleştirilmiş) veya bir PKCS#12 paketi (.p12/.pfx, --client-key-path ayarlanmamış). Bir https:// --connection-string gerektirir; ayarlandığında --username/--password değerlerini geçersiz kılarYok
--client-key-pathCB_OI_CLIENT_KEY_PATHİstemci sertifikasının özel anahtarının (PEM) yolu. --client-cert-path bir PKCS#12 paketi olduğunda ayarlanmamış bırakınYok
--client-cert-passwordCB_OI_CLIENT_CERT_PASSWORDŞifrelenmiş bir istemci anahtarı veya PKCS#12 paketi için şifre çözme parolasıYok

Diğer tüm bayraklar (--read-only-mode, --transport, --host, --port, --disabled-tools, --confirmation-required-tools, --log-*, --oauth-*) operasyonel sunucununkilerle aynıdır — bkz. MCP Sunucusu için Ek Yapılandırma — port (8001, 8000 değil) ve günlük dosyası (mcp_server_operational_insights.log, mcp_server.log değil) varsayılanları hariç, çünkü iki sunucu bunların hiçbirini paylaşamaz. OAuth, operasyonel sunucuyla aynı kapsam etiketlerini (couchbase-mcp:read / couchbase-mcp:write) kullanır, bu nedenle mevcut bir IdP yapılandırması her ikisi için de değişiklik yapılmadan çalışır.

Örnek MCP istemci yapılandırması:

{
  "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"
      }
    }
  }
}

Araç listesi için yukarıdaki Operational Insights araçları bölümüne ve operasyonel sunucuyla paylaşılan üç araç adı hakkındaki nota bakın.

Her iki sunucu da tek bir MCP Kayıt Defteri listesini paylaşır, io.github.couchbase/mcp-server-couchbase, şuradan yayınlanır: server.json. Liste, her sunucu için ayrı bir paket girişine sahiptir (PyPI ve Docker). Her giriş, kendi alt komutunu (operational veya operational-insights) iletir ve yalnızca o sunucunun argümanlarını ve ortam değişkenlerini bildirir.

Akışkan HTTP Taşıma Modu

MCP Sunucusu, birden çok istemcinin aynı sunucu örneğine HTTP üzerinden bağlanmasına olanak tanıyan Akışkan HTTP taşıma modunda çalıştırılabilir. Bu modda MCP sunucusuna bağlanmaya çalışmadan önce MCP istemcinizin akışkan http taşımasını destekleyip desteklemediğini kontrol edin.

Not: Bu taşımada OAuth 2.1 yetkilendirmesi desteklenir. Bkz. OAuth 2.1 Yetkilendirmesi. OAuth yapılandırılmamışsa, HTTP uç noktası kimlik doğrulamasızdır.

Kullanım

Varsayılan olarak, MCP sunucusu 8000 portunda çalışır, ancak bu, --port veya CB_MCP_PORT ortam değişkeni kullanılarak yapılandırılabilir.

uvx couchbase-mcp-server \
  --connection-string='<couchbase_connection_string>' \
  --username='<database_username>' \
  --password='<database_password>' \
  --read-only-mode=true \
  --transport=http

Sunucu http://localhost:8000/mcp adresinde kullanılabilir olacaktır. Bu, Cursor gibi akışkan http taşıma modunu destekleyen MCP istemcilerinde kullanılabilir.

MCP İstemci Yapılandırması

{
  "mcpServers": {
    "couchbase-http": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

SSE Taşıma Modu

MCP sunucusunu Sunucu Tarafından Gönderilen Olaylar (SSE) taşıma modunda çalıştırma seçeneği vardır.

Not: SSE modu MCP tarafından kullanımdan kaldırılmıştır. Akışkan HTTP için desteğimiz vardır.

SSE: Kullanım

Varsayılan olarak, MCP sunucusu 8000 portunda çalışır, ancak bu, --port veya CB_MCP_PORT ortam değişkeni kullanılarak yapılandırılabilir.

uvx couchbase-mcp-server \
  --connection-string='<couchbase_connection_string>' \
  --username='<database_username>' \
  --password='<database_password>' \
  --read-only-mode=true \
  --transport=sse

Sunucu http://localhost:8000/sse adresinde kullanılabilir olacaktır. Bu, Cursor gibi SSE taşıma modunu destekleyen MCP istemcilerinde kullanılabilir.

SSE: MCP İstemci Yapılandırması

{
  "mcpServers": {
    "couchbase-sse": {
      "url": "http://localhost:8000/sse"
    }
  }
}

OAuth 2.1 Yetkilendirmesi

--transport=http ile çalışırken, MCP sunucusu bir OAuth 2.1 kaynak sunucusu olarak hareket edebilir: gelen taşıyıcı JWT'lerini kimlik sağlayıcınızın JWKS'sine karşı doğrular. Sağlayıcıdan bağımsızdır (JWKS yayınlayan herhangi bir OAuth 2.1 / OIDC sağlayıcısı — Auth0, Okta, Keycloak, AWS Cognito, Microsoft Entra, vb.) ve belirteç vermez veya kullanıcıları yönetmez. OAuth ayarları stdio üzerinde yok sayılır.

OAuth, Ek Yapılandırma bölümünde listelenen CB_MCP_OAUTH_* değişkenleriyle yapılandırılır:

  • OAuth yalnızca CB_MCP_OAUTH_JWT_JWKS_URI, CB_MCP_OAUTH_JWT_ISSUER ve CB_MCP_OAUTH_JWT_AUDIENCE öğelerinin üçü de ayarlandığında etkinleşir; yalnızca bazılarını ayarlamak başlangıçta başarısız olur.
  • CB_MCP_OAUTH_MCP_BASE_URL ayarının yapılması, PRM farkında istemcilerin yetkilendirme sunucusunu keşfedebilmesi için RFC 9728 Korumalı Kaynak Meta Verilerini ek olarak yayınlar.
  • Erişim, belirtecin scope/scp iddiasından okunan iki kapsam tarafından denetlenir: couchbase-mcp:read (SQL++ dahil okuma araçları) ve couchbase-mcp:write (yazma araçları: KV mutasyonları, kapsam/koleksiyon yönetimi ve dizin yönetimi). Tam erişim her ikisini de gerektirir. IdP'niz bu standart etiketleri yayamıyorsa, bunları CB_MCP_OAUTH_SCOPE_READ_LABEL / CB_MCP_OAUTH_SCOPE_WRITE_LABEL ile geçersiz kılın.
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>'

Tam ayrıntılar için belgelere bakın.

Docker Görüntüsü

MCP sunucusu ayrıca bir Docker kapsayıcısı olarak derlenebilir ve çalıştırılabilir. Önceden derlenmiş görüntüler DockerHub üzerinde bulunabilir veya docker pull docker.io/couchbase/mcp-server:latest ile çekilebilir.

Alternatif olarak, Docker MCP Kataloğu bölümünün bir parçasıyız.

Görüntü Derleme

docker build -t mcp/couchbase-src .
Argümanlarla Derleme Commit karması ve derleme zamanı için derleme argümanlarıyla derlemek istiyorsanız, şunu kullanarak derleyebilirsiniz:
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 .

Alternatif olarak, sağlanan derleme betiğini kullanın:

# Build with default image name (mcp/couchbase-src)
./build.sh

# Build with custom image name
./build.sh my-custom/image-name

Bu betik otomatik olarak:

  • İsteğe bağlı bir görüntü adı parametresi kabul eder (varsayılan mcp/couchbase-src)
  • Git commit karması ve derleme zaman damgası oluşturur
  • Birden çok kullanışlı etiket oluşturur (latest, <short-commit>)
  • Derleme bilgilerini ve sonuçlarını gösterir
  • CI/CD derlemeleriyle aynı argümanları kullanır

Görüntü etiketlerini doğrulayın:

# 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

Çalıştırma

MCP sunucusu, Couchbase ayarlarını yapılandırmak için ortam değişkenleri kullanılarak çalıştırılabilir. Ortam değişkenleri, Ek Yapılandırma bölümünde açıklananlarla aynıdır.

Bağımsız Docker Kapsayıcısı

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 ve CB_MCP_HOST ortam değişkenleri yalnızca http ve sse gibi HTTP taşıma modları durumunda geçerlidir.

Docker: MCP İstemci Yapılandırması

Docker görüntüsü, aşağıdaki yapılandırmayla stdio taşıma modunda kullanılabilir.

{
  "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"
      ]
    }
  }
}

Notlar

  • couchbase_connection_string değeri, Couchbase sunucusunun aynı ana makinede, başka bir Docker kapsayıcısında veya uzak bir ana bilgisayarda çalışıp çalışmadığına bağlıdır. Couchbase sunucunuz ana makinenizde çalışıyorsa, bağlantı dizginiz büyük olasılıkla couchbase://host.docker.internal biçiminde olacaktır. Ayrıntılar için docker belgelerine bakın.
  • Kapsayıcının ağını --network=<your_network> seçeneğini kullanarak belirtebilirsiniz. Seçtiğiniz ağ ortamınıza bağlıdır; varsayılan bridge'dır. Ayrıntılar için docker'daki ağ sürücülerine bakın.

LLM'lerle İlişkili Riskler

  • Büyük dil modellerinin ve benzer teknolojilerin kullanımı, yanlış veya zararlı çıktılar potansiyeli dahil olmak üzere riskler içerir.
  • Couchbase, bu tür çıktıların kalitesini veya doğruluğunu incelemez veya değerlendirmez ve bu tür çıktılar Couchbase'in görüşlerini yansıtmayabilir.
  • Büyük dil modellerini ve ilgili teknolojiyi kullanıp kullanmamaya karar vermek ve bunların kullanımını yöneten herhangi bir lisans hükmüne, kullanım koşuluna ve kuruluşunuzun politikalarına uymak yalnızca sizin sorumluluğunuzdadır.

Kullanım Verisi Toplama

Bu ürün otomatik olarak kullanım ve performans verilerini (ürün adı ve sürümü gibi) ve tarayıcı bilgilerini (IP adresi gibi) (topluca "Kullanım Verileri") toplar. Couchbase, Kullanım Verilerini, Couchbase'e sağlayabileceğiniz diğer verilerle (kullanıcı adınız veya e-posta adresiniz gibi) birlikte, ürünlerimizi geliştirmek ve iyileştirmek ve satış ve pazarlama programlarımızı bilgilendirmek için kullanır. Couchbase ürünlerinde sakladığınız hiçbir veriye erişmez veya toplamayız. Kullanım Verilerini, toplu kullanım kalıplarını anlamak ve ürünlerimizi sizin için daha kullanışlı hale getirmek için kullanırız. Couchbase'in bilgileri nasıl topladığı, koruduğu ve işlediği hakkında daha fazla bilgi için lütfen https://www.couchbase.com/privacy-policy. adresinde görüntülenebilen Couchbase Gizlilik Politikasına bakın.

Sorun Giderme İpuçları

  • Kaynaktan çalıştırıyorsanız, yapılandırmada MCP sunucu deponuzun yolunun doğru olduğundan emin olun.
  • Couchbase bağlantı dizginizin, veritabanı kullanıcı adınızın, parolanızın veya sertifikaların yolunun doğru olduğunu doğrulayın.
  • Couchbase Capella kullanıyorsanız, kümenin MCP sunucusunun çalıştığı makineden erişilebilir olduğundan emin olun.
  • Veritabanı kullanıcısının en az bir kovaya erişmek için uygun izinlere sahip olduğunu kontrol edin.
  • uv paket yöneticisinin düzgün şekilde kurulu ve erişilebilir olduğunu doğrulayın. Yapılandırmadaki command alanında uv/uvx için mutlak yol sağlamanız gerekebilir.
  • MCP sunucusuyla ilgili sorunları gösterebilecek hatalar veya uyarılar için günlükleri kontrol edin. Günlüklerin konumu MCP istemcinize bağlıdır.
  • Yerel MCP sunucu deponuzu güncelledikten sonra MCP sunucunuzu kaynaktan çalıştırırken sorunlar yaşıyorsanız, bağımlılıkları güncellemek için uv sync komutunu çalıştırmayı deneyin.

Entegrasyon testi

Sunucunun beklenen araçları ortaya çıkardığını ve bunların bir demo Couchbase kümesine karşı çağrılabileceğini doğrulamak için üst düzey MCP entegrasyon testleri sağlıyoruz.

  1. Demo küme kimlik bilgilerini dışa aktarın:
    • CB_CONNECTION_STRING
    • CB_USERNAME
    • CB_PASSWORD
    • İsteğe bağlı: CB_MCP_TEST_BUCKET (testler sırasında yoklanacak bir kova)
    • İsteğe bağlı, Operational Insights sunucusunun kendi testleri için: CB_OI_CONNECTION_STRING / CB_OI_USERNAME / CB_OI_PASSWORD. Bu testler ayarlanmadığında otomatik olarak atlanır (başarısız olmaz).
  2. Testleri çalıştırın:
uv run --extra dev pytest tests/integration -v

SSS

Couchbase MCP Sunucusu nedir? Yapay zeka asistanlarının ve aracılarının (Claude, Cursor, Windsurf, VS Code Copilot, JetBrains AI Assistant/Junie ve diğer tüm MCP istemcileri) doğal dil kullanarak bir Couchbase kümesindeki verileri sorgulamasına ve isteğe bağlı olarak değiştirmesine olanak tanıyan, kendi kendine barındırılan bir Model Context Protocol uygulamasıdır.

Claude Desktop'ı Couchbase'e nasıl bağlarım? Sunucuyu uvx couchbase-mcp-server ile kurun (veya kaynaktan ya da Docker'dan çalıştırın), ardından Yapılandırma bölümünde gösterildiği gibi yapılandırmasını Claude Desktop'un claude_desktop_config.json dosyasına ekleyin. Claude Desktop'ı yeniden başlatın; yeni araçları algılayacaktır.

Bunu Couchbase Capella ile kullanabilir miyim? Evet. Aynı CB_CONNECTION_STRING/CB_USERNAME/CB_PASSWORD (veya mTLS sertifikası) yapılandırması hem Couchbase Capella hem de kendi kendine yönetilen Couchbase Server kümeleri için çalışır.

Bir yapay zeka aracısının veritabanıma yazmasına izin vermek güvenli mi? Varsayılan olarak, CB_MCP_READ_ONLY_MODE true'dur, bu nedenle tüm yazma işlemleri — belge upsert/insert/replace/delete ve veri değiştiren SQL++ ifadeleri — devre dışıdır ve yazma araçları yüklenmez bile. Ayrıca tek tek araçları devre dışı bırakabilir (bkz. Araçları Devre Dışı Bırakma) veya belirli araçlar çalışmadan önce açık kullanıcı onayı isteyebilirsiniz (bkz. Elicitation/Onay). Araç düzeyindeki kontroller LLM davranışını yönlendirir; Couchbase kullanıcınızın RBAC izinleri gerçek güvenlik sınırı olmaya devam eder.

Verilerime karşı SQL++ yazmadan doğal dil sorguları çalıştırabilir miyim? Evet — yapay zeka asistanınıza düz İngilizce bir soru sorun (ör. "bana 100$ üzerindeki en son 10 siparişi göster") ve run_sql_plus_plus_query aracını kullanarak bunu bir SQL++ sorgusuna çevirebilir. Ayrıca asistandan bir sorguyu explain_sql_plus_plus_query yapmasını veya dizin danışmanından öneriler istemesini isteyebilirsiniz. STDIO, Streamable HTTP ve SSE taşımacılığı arasındaki fark nedir? STDIO, tek bir yerel MCP istemcisi (ör. Claude Desktop) için sunucuyu bir alt süreç olarak başlatan yapıdır. Streamable HTTP, birden fazla istemcinin HTTP üzerinden tek bir çalışan sunucu örneğini paylaşmasına olanak tanır ve OAuth 2.1'i destekler. SSE, daha eski HTTP taşımacılığıdır ve MCP spesifikasyonu tarafından Streamable HTTP lehine kullanımdan kaldırılmıştır — bkz. Streamable HTTP Taşıma Modu.

Bu, Couchbase tarafından resmi olarak destekleniyor mu? Bu proje Couchbase topluluğu tarafından bakımı yapılmaktadır — bkz. Destek Politikası. Kurumsal destek, Couchbase AI Veri Düzlemi aracılığıyla ayrıca sağlanmaktadır.

Katkıda Bulunma

Topluluktan gelen katkıları memnuniyetle karşılıyoruz! Hata düzeltmek, özellik eklemek veya dokümantasyonu iyileştirmek istiyorsanız, yardımınız takdir edilir.

Yardıma ihtiyacınız varsa, bir hata bulduysanız veya iyileştirmelere katkıda bulunmak istiyorsanız, bunu yapmak için en iyi yer tam da burasıdır — GitHub sorunu açarak.

Geliştiriciler İçin

Kod katkısında bulunmak veya bir geliştirme ortamı kurmakla ilgileniyorsanız:

📖 Kapsamlı geliştirici kurulum talimatları için CONTRIBUTING.md dosyasına bakın, şunlar dahil:

  • uv ile geliştirme ortamı kurulumu
  • Ruff ile kod lint ve biçimlendirme
  • Pre-commit hook'larının kurulumu
  • Proje yapısına genel bakış
  • Geliştirme iş akışı ve uygulamaları

Katkıda Bulunanlar için Hızlı Başlangıç

# 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

📢 Destek Politikası

Bu projeye olan ilginizi gerçekten takdir ediyoruz! Bu proje Couchbase topluluğu tarafından bakımı yapılmaktadır, yani destek ekibimiz tarafından resmi olarak desteklenmemektedir. Ancak mühendislerimiz bu depoyu aktif olarak izlemekte ve bakımını yapmakta olup, sorunları en iyi çaba düzeyinde çözmeye çalışacaktır.

Destek portalımız bu projeyle ilgili taleplerde yardımcı olamamaktadır, bu nedenle tüm sorularınızı GitHub üzerinde tutmanızı rica ediyoruz.

İş birliğiniz hepimizin birlikte ilerlemesine yardımcı oluyor — teşekkürler!