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_skill kullanarak tam bir becerinin markdown dosyasını, feature-flags/references/flag-create gibi 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/projects gibi bir yolla growthbook_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_write kullanın; örneğin, yeni bir bayrak için JSON gövdesiyle /api/v2/features adresine 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 readOnlyHint ve destructiveHint öğ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_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.

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
GB_OAUTH_ISSUERHayırGB_API_URLGrowthBook OAuth AS veren URL'si
GB_HTTP_HEADER_*Hayır—Ekstra 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, 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"
    }
  }
}
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öre. Gitignore edilir; agent-skills.local.json.example kopyalayın
  3. skills-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ı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 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) 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ü

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