GrowthBook

resmi

Özellik bayrakları oluşturup okuyun, deneyleri inceleyin, bayrak türleri oluşturun, dokümanları arayın ve GrowthBook'un özellik bayraklama ve deney platformuyla etkileşime geçin.

GrowthBook MCP ile neler yapabilirsiniz?

  • Mevcut iş akışlarını keşfedin — Asistanın GrowthBook beceri giriş noktalarını growthbook_list_skills aracılığıyla listelemesini isteyerek hangi görevlerin desteklendiğini görün.
  • Adım adım kılavuzları yükleyin — feature-flags/references/flag-create gibi belirli bir iş akışını growthbook_read_skill üzerinden talep ederek güvenlik önlemleriyle birlikte ayrıntılı talimatlar alın.
  • GrowthBook verilerini sorgulayın — Asistanın growthbook_api_read kullanarak geçerli herhangi bir REST API yolu ile projeleri, özellikleri veya diğer kaynakları getirmesini sağlayın.
  • GrowthBook kaynaklarını değiştirin — Asistana growthbook_api_write aracılığıyla bayraklar oluşturmasını veya güncellemesini talimat verin; POST/PUT/PATCH/DELETE çağrılarını aynı API yollarına eşleyin.

Dokümantasyon

GrowthBook MCP Thin

GrowthBook için dört araç içeren ince bir MCP sunucusu:

AraçAmaç
growthbook_list_skillsÜst düzey beceri giriş noktalarını listele (ad + açıklama)
growthbook_read_skillListelenen bir beceriyi veya nitelikli alt iş akışını döndür (feature-flags veya feature-flags/references/flag-create)
growthbook_api_readGrowthBook API'sine kimlik doğrulamalı GET geçişi
growthbook_api_writeKimlik doğrulamalı POST/PUT/PATCH/DELETE geçişi

Yeterlilik, beceriler deposunda yaşar ve derleme zamanında paketlenir. Yetenek, okuma ve yazma API araçları olarak ayrılır (uç nokta başına biçimlendirici yok), böylece istemciler readOnlyHint / destructiveHint değerlerini doğru şekilde onurlandırabilir.

Araçlar, bir istemcide birden fazla MCP sunucusu yüklüyken belirsiz kalmamaları için growthbook_ ile öneklenir.

Cursor eklentisi

Cursor Marketplace üzerinden GrowthBook yükleyin. Eklenti, Cursor'u https://mcp.growthbook.io/mcp adresindeki barındırılan sunucuya bağlar; ilk araç çağrısı, yetkilendirmek için bir GrowthBook oturum açma penceresi açar. Kendi kendine barındırılan GrowthBook kullanıcıları, sunucuyu aşağıda açıklandığı gibi manuel olarak yapılandırmalıdır.

Eklenti, .cursor-plugin/plugin.json ve mcp.json tarafından tanımlanır. Değişiklikleri yerel olarak test etmek için depoyu ~/.cursor/plugins/local/growthbook konumuna kopyalayın ve Geliştirici: Pencereyi Yeniden Yükle komutunu çalıştırın.

Kurulum / çalıştırma

npm install
npm run build

MCP istemcinizi derlenmiş giriş noktasına yönlendirin:

{
  "mcpServers": {
    "growthbook": {
      "command": "node",
      "args": ["/absolute/path/to/growthbook-mcp/server/index.js"],
      "env": {
        "GB_API_KEY": "your_api_key_or_pat",
        "GB_API_URL": "https://api.growthbook.io"
      }
    }
  }
}

Veya yayınlanmış paketi çalıştırın:

npx @growthbook/mcp

Ortam değişkenleri

DeğişkenGerekliVarsayılanAmaç
GB_API_KEYstdio için evet; HTTP OAuth için isteğe bağlı—GrowthBook API anahtarı veya kişisel erişim belirteci
GB_API_URLHayırhttps://api.growthbook.ioAPI temel URL'si (kendi kendine barındırılan) ve varsayılan OAuth AS veren
GB_MCP_TRANSPORTHayırstdiostdio veya http
GB_MCP_PORTHayır3333HTTP dinleme bağlantı noktası (transport=http olduğunda)
GB_MCP_HOSTHayır127.0.0.1HTTP bağlama ana bilgisayarı
GB_MCP_URLHTTP için evet—OAuth kaynak meta verilerine damgalanan genel MCP temel URL'si (sunucu, HTTP modunda onsuz başlamayı reddeder)
GB_MCP_KEEP_ALIVE_TIMEOUT_MSHayır90000HTTP modunda boşta kalma süresi. Önündeki herhangi bir yük dengeleyicinin boşta kalma süresini aşmalıdır; aksi takdirde LB, sunucunun zaten kapattığı bir bağlantıyı yeniden kullanabilir ve istek 502 ile başarısız olur
OPENAI_APPS_CHALLENGE_TOKENHayır—OpenAI eklenti alanı doğrulaması için /.well-known/openai-apps-challenge adresinde düz metin olarak sunulur (HTTP modu); ayarlanmadığında rota 404 döndürür
GB_OAUTH_ISSUERHayırGB_API_URLGrowthBook OAuth AS veren URL'si
GB_HTTP_HEADER_*Hayır—Ek istek başlıkları (örn. GB_HTTP_HEADER_CF_ACCESS_TOKEN)
GB_SKILLS_ENABLEDHayırtrueBeceri araçlarını devre dışı bırakmak için false / 0 olarak ayarlayın

HTTP + OAuth modu

OAUTH_AS_ENABLED=1  # on the GrowthBook API
GB_MCP_TRANSPORT=http GB_API_URL=http://localhost:3100 GB_MCP_PORT=3333 npm start

İstemciler şuraya bağlanır:

  • http://127.0.0.1:3333/mcp — tam (beceriler + API okuma/yazma)
  • http://127.0.0.1:3333/mcp/api — yalnızca yetenek (growthbook_api_read + growthbook_api_write)

Kimliği doğrulanmamış istekler, /.well-known/oauth-protected-resource adresini işaret eden WWW-Authenticate ile 401 alır; bu, GrowthBook Yetkilendirme Sunucusunu tanıtır.

MCP'yi işlemeden önce sunucu, taşıyıcı ile GrowthBook REST'i (GET /api/v1/) yoklar. Bu yoklamadan (veya daha sonra bir API aracından) gelen bir 401, MCP istemcisinin yenileyebilmesi için error="invalid_token" ile HTTP 401 üretir — "This API key has expired" değerini bir araç hatası olarak göstermek yerine. Bir 403, kabul edilmiş bir taşıyıcı olarak kabul edilir (izin reddi ≠ geçersiz belirteç), böylece istemciler yenileme döngüsüne zorlanmaz.

Yalnızca yetenek modu

HTTP (uzak için önerilir): istemciyi /mcp yerine /mcp/api adresine yönlendirin:

{
  "mcpServers": {
    "growthbook": {
      "url": "http://127.0.0.1:3333/mcp/api"
    }
  }
}
YolAraçlar
/mcpgrowthbook_list_skills, growthbook_read_skill, growthbook_api_read, growthbook_api_write (GB_SKILLS_ENABLED=false olmadığı sürece)
/mcp/apiyalnızca growthbook_api_read, growthbook_api_write

stdio / süreç genelinde: becerilerin asla kaydedilmemesi için ortamı ayarlayın:

"env": {
  "GB_API_KEY": "...",
  "GB_SKILLS_ENABLED": "false"
}

Beceriler devre dışı bırakıldığında, yalnızca API okuma/yazma araçları kaydedilir. growthbook_list_skills ve growthbook_read_skill açığa çıkarılmaz.

Beceriler nasıl paketlenir

npm run build   # tsc && bundle-skills

scripts/bundle-skills.mjs, kanonik beceri kontrolünden üst düzey beceri ağacını kopyalar ve yapıyı korur:

skills/<skill>/SKILL.md                   → server/skills/<skill>/SKILL.md
skills/<skill>/references/<workflow>.md   → server/skills/<skill>/references/<workflow>.md

Kaynak yol çözümlemesi:

  1. SKILLS_SRC ortam değişkeni (beceri deposu köküne yol)
  2. agent-skills.local.json — { "path": "../skills" }, depo köküne göreli. Gitignore edilir; agent-skills.local.json.example kopyalayın
  3. skills-src/ — CI ve Docker derlemesinin sağladığı

Örtük kardeş arama yoktur. ../skills, o yolda ne varsa onu çözer; bu, yerel bir derlemenin CI'nin derlediği commit ile sessizce uyuşmamasına neden olur.

CI, bulut dağıtımları ve sürümlerin tümü agent-skills.lock.json okur ve tam o beceri commit'ini kontrol eder. Yukarı akış beceri değişikliklerini göndermek için kilit dosyasındaki commit'i güncelleyin. Yerel geliştirme, herhangi bir kontrolü agent-skills.local.json veya SKILLS_SRC ile işaret edebilir.

Beceri deposu gerçeğin kaynağı olmaya devam eder — bu paket, beceri içeriğinin bir çatalını sürdürmez. bundle-skills.mjs içindeki küçük kara listede adlandırılanlar dışında yeni beceriler otomatik olarak akar. Şu anda yalnızca gb-setup engellenir çünkü GrowthBook'un kendisi yerine gb-call kabuk bağdaştırıcısını yapılandırır.

Beceri başına scripts/ dizinleri kopyalanmaz. Göreli `references/foo.md` bağlantıları, nitelikli `feature-flags/references/foo` paths so growthbook_read_skill bunları çözebilir.

Becerileri API araçlarıyla kullanma

Paketlenmiş beceriler hâlâ iş akışlarını şu şekilde gösterir:

gb-call GET /api/v1/projects
gb-call POST /api/v2/features ./payload.json

Bu MCP sunucusu gb-call komutunu çalıştırmaz. GET → growthbook_api_read ve POST/PUT/PATCH/DELETE → growthbook_api_write eşlemesini aynı yol ve isteğe bağlı JSON gövde dizesiyle yapın. Sunucu talimatları ve growthbook_read_skill çıktısı bu köprü notunu içerir.

Araç ayrıntıları

growthbook_api_read / growthbook_api_write

{ "path": "/api/v1/projects" }
{ "method": "POST", "path": "/api/v2/features", "body": "{\"id\":\"my-flag\",...}" }
  • Okuma: yalnızca GET (readOnlyHint: true)
  • Yazma: POST | PUT | PATCH | DELETE (destructiveHint: true)
  • 2xx'de ham yanıt gövdesini döndürür
  • 2xx dışında, kimlik doğrulama hatalarını, kendi kendine barındırılan 404 ipuçlarını ve hız sınırlarını kapsayan eyleme dönüştürülebilir bir hata (isError: true) döndürür
  • Serbest biçimli yollar GrowthBook REST API hedefler
  • Her istek MCP kullanım başlıklarını taşır (bkz. Kullanım telemetrisi)

growthbook_list_skills / growthbook_read_skill

Yalnızca GB_SKILLS_ENABLED devre dışı bırakılmadığında kaydedilir.

  • growthbook_list_skills, üst düzey beceri giriş noktalarını döndürür. Bir giriş, tam bir iş akışı içerebilir veya alt iş akışlarına yönlendirebilir.
  • growthbook_read_skill, listelenen bir üst düzey adı veya yüklenmiş bir beceri tarafından adlandırılan nitelikli bir alt yol kabul eder (feature-flags/references/flag-create) ve tam markdown'ı (iş akışı + güvenlik önlemleri) döndürür.

Kullanım telemetrisi

Bu sunucu telemetriyi kendisi hiçbir yere göndermez. Bunun yerine, growthbook_api_read / growthbook_api_write tarafından yapılan her REST çağrısı, GrowthBook örneğine çağrının MCP'den geldiğini söyleyen başlıklar içerir:

BaşlıkÖrnekİçerik
X-GB-MCP-Toolgrowthbook_api_readÇağrıyı yapan araç
X-GB-MCP-Version2.2.0Bu sunucunun sürümü
X-GB-MCP-Transportstdiostdio veya http
X-GB-MCP-Clientcursor/1.2.3initialize el sıkışmasından MCP istemcisinin adı/sürümü veya HTTP modunda User-Agent

GrowthBook bunları mevcut ürün telemetrisi aracılığıyla kaydeder, bu nedenle aynı kontroller geçerlidir. Kendi kendine barındırılan bir örnekte, GrowthBook arka ucunda DISABLE_TELEMETRY ayarlamak, GrowthBook'un telemetrisinin geri kalanıyla birlikte bunu da kapatır. Eski GrowthBook sürümleri başlıkları yok sayar. Beceri araçları (growthbook_list_skills / growthbook_read_skill) yerel olarak sunulur ve istek yapmaz, bu nedenle izlenmezler.

Geliştirme

git clone git@github.com:growthbook/skills.git ../skills
cp agent-skills.local.json.example agent-skills.local.json  # edit if not at ../skills

npm install
npm run build
npm start

Bağımsız HTTP modu

Varsayılan olarak sunucu stdio üzerinden çalışır. GB_MCP_TRANSPORT=http ayarını yaparak, MCP'yi /mcp (beceriler + API araçları) ve /mcp/api (yalnızca yetenek) adreslerinde, OAuth 2.0 korumalı kaynak yüzeyinin (RFC 9728 meta verileri + RFC 6750 WWW-Authenticate) arkasında açığa çıkaran bağımsız bir HTTP sunucusu olarak çalıştırın.

  • GB_MCP_URL (HTTP modunda gerekli) — sunucunun genel temel URL'si. OAuth kaynağına (hedef kitle) ve korumalı kaynak meta verilerine damgalanır, bu nedenle istek başlıklarından asla türetilmez. Sunucu onsuz başlamayı reddeder.
  • GB_MCP_PORT (varsayılan 3333) ve GB_MCP_HOST (varsayılan 127.0.0.1).
  • Gelen taşıyıcılar, GrowthBook REST API'sini yoklayarak doğrulanır; reddedilen bir belirteç, istemcinin yenileyebilmesi için HTTP 401 + WWW-Authenticate alır.

Güvenilir bir ağda veya döngüye bağlı olarak çalıştırın. Çok kiracılı veya genel bir dağıtım için, kendi ağ geçidinizle/kimlik doğrulamanızla önüne geçin.

Sürümler

Bir sürüm çıkarmak bilinçli bir işlemdir: package.json içindeki sürümü artırın, npm run sync-version çalıştırın (manifest.json, server.json ve .cursor-plugin/plugin.json günceller), ardından eşleşen bir v* etiketi gönderin:

git tag v2.0.0
git push origin v2.0.0

Bu etiketli commit (beceriler kesim zamanında dondurulmuş olarak) yayınlar:

  • @growthbook/mcp npm'e — ön sürümler (- içeren sürümler, örn. 2.0.0-beta.1) beta dist-etiketi altına gider; kararlı sürümler latest olur
  • ghcr.io/growthbook/growthbook-mcp adresine çok mimarili (amd64 + arm64) bir görüntü (:<version>, ayrıca kararlı sürümler için :<major>, :<major>.<minor> ve :latest)
  • MCP kayıt defterinde bir giriş
  • Bir GitHub Sürümü

Cursor eklentisi CI tarafından yayınlanmaz: Cursor, sürüm artışı indikten sonra eklentiyi varsayılan daldan yeniden inceler.

Bir sürümü npx @growthbook/mcp@<version> ile yükleyin veya ghcr.io/growthbook/growthbook-mcp:<version> çekin.