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 becerileri listele — Asistanın
growthbook_list_skillsçağrısını yaparak üst düzey GrowthBook iş akışı giriş noktalarını ve açıklamalarını görmesini isteyin. -
Bir beceri iş akışını yükle —
growthbook_read_skillkullanarak tam bir becerinin markdown dosyasını,feature-flags/references/flag-creategibi alt iş akışları dahil olmak üzere getirin. -
GrowthBook verilerini oku — Asistanın, kimliği doğrulanmış GET istekleriyle veri getirmek için
/api/v1/projectsgibi bir yollagrowthbook_api_readçağrısını yapmasını sağlayın. -
GrowthBook API'sine yaz — Kaynak oluşturmak veya değiştirmek için
growthbook_api_writekullanın; örneğin, yeni bir bayrak için JSON gövdesiyle/api/v2/featuresadresine POST isteği gönderin. -
Okuma/yazma izinlerine saygı göster — Sunucu, istemcilerin salt okunur ve değiştirici işlemleri güvenle ayırt edebilmesi için
readOnlyHintvedestructiveHintöğelerini açığa çıkarır.
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.
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 |
GB_OAUTH_ISSUER | Hayır | GB_API_URL | GrowthBook OAuth AS veren URL'si |
GB_HTTP_HEADER_* | Hayır | — | Ekstra 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, GrowthBook Yetkilendirme Sunucusunu tanıtan /.well-known/oauth-protected-resource adresini gösteren WWW-Authenticate ile 401 alır.
MCP'yi işlemeden önce sunucu, taşıyıcıyla 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 verir — "This API key has expired" değerini bir araç hatası olarak göstermek yerine. Bir 403, kabul edilmiş bir taşıyıcı olarak ele alınır (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öre. Gitignore edilir;agent-skills.local.json.examplekopyalayınskills-src/— CI ve Docker derlemesinin sağladığı şey
Örtük kardeş arama yoktur. ../skills, o yolda ne varsa onu çözer; bu da yerel bir derlemenin CI'ın 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. Yeni beceriler, bundle-skills.mjs içindeki
küçük kara listede adlandırılanlar dışında otomatik olarak akar. Şu anda yalnızca gb-setup engellenmiştir çü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 öğesine kabuk çağrısı yapmaz. GET → growthbook_api_read ve POST/PUT/PATCH/DELETE → growthbook_api_write aynı yol ve isteğe bağlı JSON gövde dizesiyle eşleyin. 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 uygulanabilir bir hata (
isError: true) döndürür - Serbest biçimli yollar GrowthBook REST API hedefler
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ş, eksiksiz 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ışı + koruma rayları) döndürür.
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. Bağımsız bir HTTP sunucusu olarak çalıştırmak için GB_MCP_TRANSPORT=http ayarlayın; bu sunucu MCP'yi /mcp (beceriler + API araçları) ve /mcp/api (yalnızca yetenek) adreslerinde, bir OAuth 2.0 korumalı kaynak yüzeyinin (RFC 9728 meta verileri + RFC 6750 WWW-Authenticate) arkasında açığa çıkarır.
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 geri döngüye bağlı olarak çalıştırın. Çok kiracılı veya genel bir dağıtım için önüne kendi ağ geçidinizi/kimlik doğrulamanızı koyun.
Sürümler
Sürüm çıkarmak kasıtlıdır: package.json içindeki sürümü yükseltin, 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:
- npm'e
@growthbook/mcp— ön sürümler (-içeren sürümler, örn.2.0.0-beta.1)betadist-etiketi altına gider; kararlı sürümlerlatestolur ghcr.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ü
Bir sürümü npx @growthbook/mcp@<version> ile yükleyin veya ghcr.io/growthbook/growthbook-mcp:<version> çekin.