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_skillsaracılığıyla listelemesini isteyerek hangi görevlerin desteklendiğini görün. - Adım adım kılavuzları yükleyin —
feature-flags/references/flag-creategibi 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_readkullanarak 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_writearacı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_skill | Listelenen bir beceriyi veya nitelikli alt iş akışını döndür (feature-flags veya feature-flags/references/flag-create) |
growthbook_api_read | GrowthBook API'sine kimlik doğrulamalı GET geçişi |
growthbook_api_write | Kimlik 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şken | Gerekli | Varsayılan | Amaç |
|---|---|---|---|
GB_API_KEY | stdio için evet; HTTP OAuth için isteğe bağlı | — | GrowthBook API anahtarı veya kişisel erişim belirteci |
GB_API_URL | Hayır | https://api.growthbook.io | API temel URL'si (kendi kendine barındırılan) ve varsayılan OAuth AS veren |
GB_MCP_TRANSPORT | Hayır | stdio | stdio veya http |
GB_MCP_PORT | Hayır | 3333 | HTTP dinleme bağlantı noktası (transport=http olduğunda) |
GB_MCP_HOST | Hayır | 127.0.0.1 | HTTP bağlama ana bilgisayarı |
GB_MCP_URL | HTTP 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_MS | Hayır | 90000 | HTTP 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_TOKEN | Hayı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_ISSUER | Hayır | GB_API_URL | GrowthBook OAuth AS veren URL'si |
GB_HTTP_HEADER_* | Hayır | — | Ek istek başlıkları (örn. GB_HTTP_HEADER_CF_ACCESS_TOKEN) |
GB_SKILLS_ENABLED | Hayır | true | Beceri 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"
}
}
}
| Yol | Araçlar |
|---|---|
/mcp | growthbook_list_skills, growthbook_read_skill, growthbook_api_read, growthbook_api_write (GB_SKILLS_ENABLED=false olmadığı sürece) |
/mcp/api | yalnı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:
SKILLS_SRCortam değişkeni (beceri deposu köküne yol)agent-skills.local.json—{ "path": "../skills" }, depo köküne göreli. Gitignore edilir;agent-skills.local.json.examplekopyalayınskills-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-Tool | growthbook_api_read | Çağrıyı yapan araç |
X-GB-MCP-Version | 2.2.0 | Bu sunucunun sürümü |
X-GB-MCP-Transport | stdio | stdio veya http |
X-GB-MCP-Client | cursor/1.2.3 | initialize 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ılan3333) veGB_MCP_HOST(varsayılan127.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-Authenticatealı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/mcpnpm'e — ön sürümler (-içeren sürümler, örn.2.0.0-beta.1)betadist-etiketi altına gider; kararlı sürümlerlatestolurghcr.io/growthbook/growthbook-mcpadresine ç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.