GrowthBook

resmi

Membuat dan membaca bendera fitur, meninjau eksperimen, menghasilkan tipe bendera, mencari dokumentasi, serta berinteraksi dengan platform bendera fitur dan eksperimen GrowthBook.

Apa yang bisa Anda lakukan dengan GrowthBook MCP?

  • Daftar keterampilan yang dibundel — Minta asisten Anda untuk menyebutkan keterampilan agen GrowthBook dengan growthbook_list_skills untuk melihat alur kerja yang tersedia.
  • Baca panduan lengkap keterampilan — Gunakan growthbook_read_skill untuk mengambil alur kerja markdown lengkap dan batasan untuk keterampilan tertentu.
  • Baca data API GrowthBook — Lakukan permintaan GET terautentikasi ke titik akhir REST GrowthBook mana pun melalui growthbook_api_read, misalnya, ambil proyek atau fitur.
  • Tulis ke API GrowthBook — Gunakan growthbook_api_write untuk membuat, memperbarui, atau menghapus sumber daya melalui POST/PUT/PATCH/DELETE, dengan destructiveHint demi keamanan.

Dokumentasi

GrowthBook MCP Thin

Server MCP tipis untuk GrowthBook dengan empat alat:

ToolTujuan
growthbook_list_skillsDaftar keterampilan (skill) agen GrowthBook yang dibundel (nama + deskripsi)
growthbook_read_skillMengembalikan markdown skill lengkap (alur kerja + pengaman)
growthbook_api_readTerusan GET terautentikasi ke GrowthBook API
growthbook_api_writeTerusan POST/PUT/PATCH/DELETE terautentikasi

Kompetensi berada di repositori skills dan dibundel pada waktu build. Kapabilitas dipisah menjadi alat API baca vs tulis (tanpa pemformat per-endpoint) sehingga klien dapat menghormati readOnlyHint / destructiveHint dengan benar.

Alat diberi prefiks growthbook_ sehingga tetap tidak ambigu ketika klien memuat beberapa server MCP.

Instalasi / menjalankan

npm install
npm run build

Arahkan klien MCP Anda ke entrypoint yang terkompilasi:

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

Atau jalankan paket yang telah dipublikasikan:

npx @growthbook/mcp

Variabel lingkungan

VariabelWajibDefaultTujuan
GB_API_KEYWajib untuk stdio; opsional untuk HTTP OAuthKunci API GrowthBook atau token akses pribadi
GB_API_URLTidakhttps://api.growthbook.ioURL basis API (self-hosted) dan issuer AS OAuth default
GB_MCP_TRANSPORTTidakstdiostdio atau http
GB_MCP_PORTTidak3333Port listen HTTP (ketika transport=http)
GB_MCP_HOSTTidak127.0.0.1Host bind HTTP
GB_MCP_URLWajib untuk HTTPURL basis MCP publik yang dicap ke metadata resource OAuth (server menolak untuk memulai dalam mode HTTP tanpanya)
GB_OAUTH_ISSUERTidakGB_API_URLURL issuer AS OAuth GrowthBook
GB_HTTP_HEADER_*TidakHeader permintaan tambahan (mis. GB_HTTP_HEADER_CF_ACCESS_TOKEN)
GB_SKILLS_ENABLEDTidaktrueDisetel ke false / 0 untuk menonaktifkan alat skill

Mode HTTP + OAuth

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

Klien terhubung ke:

  • http://127.0.0.1:3333/mcp — lengkap (skill + API baca/tulis)
  • http://127.0.0.1:3333/mcp/api — hanya kapabilitas (growthbook_api_read + growthbook_api_write)

Permintaan yang tidak terautentikasi menerima 401 dengan WWW-Authenticate yang menunjuk ke /.well-known/oauth-protected-resource, yang mengiklankan Authorization Server GrowthBook.

Sebelum menangani MCP, server memeriksa GrowthBook REST (GET /api/v1/) dengan bearer. 401 dari pemeriksaan tersebut (atau kemudian dari alat API) menghasilkan HTTP 401 dengan error="invalid_token" sehingga klien MCP dapat melakukan refresh — alih-alih menampilkan "This API key has expired" sebagai kesalahan alat. 403 diperlakukan sebagai bearer yang diterima (izin ditolak ≠ token tidak valid) sehingga klien tidak dipaksa ke dalam loop refresh.

Mode hanya kapabilitas

HTTP (direkomendasikan untuk jarak jauh): arahkan klien ke /mcp/api alih-alih /mcp:

{
  "mcpServers": {
    "growthbook": {
      "url": "http://127.0.0.1:3333/mcp/api"
    }
  }
}
JalurAlat
/mcpgrowthbook_list_skills, growthbook_read_skill, growthbook_api_read, growthbook_api_write (kecuali GB_SKILLS_ENABLED=false)
/mcp/apigrowthbook_api_read, growthbook_api_write saja

stdio / seluruh proses: atur env sehingga skill tidak pernah didaftarkan:

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

Ketika skill dinonaktifkan, hanya alat baca/tulis API yang didaftarkan. growthbook_list_skills dan growthbook_read_skill tidak diekspos.

Cara skill dibundel

npm run build   # tsc && bundle-skills

scripts/bundle-skills.mjs menyalin setiap skills/*/SKILL.md dari checkout skill kanonik ke server/skills/<name>.md.

Resolusi jalur sumber:

  1. Variabel env SKILLS_SRC (jalur ke root repositori skills), atau
  2. ../skills (direktori saudara)

Repositori skill tetap menjadi sumber kebenaran — paket ini tidak pernah memfork konten skill.

Menggunakan skill dengan alat API

Skill yang dibundel masih menampilkan alur kerja sebagai:

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

Server MCP ini tidak memanggil gb-call. Petakan GETgrowthbook_api_read dan POST/PUT/PATCH/DELETEgrowthbook_api_write dengan jalur yang sama dan string body JSON opsional. Instruksi server dan output growthbook_read_skill menyertakan catatan jembatan ini.

Detail alat

growthbook_api_read / growthbook_api_write

{ "path": "/api/v1/projects" }
{ "method": "POST", "path": "/api/v2/features", "body": "{\"id\":\"my-flag\",...}" }
  • Baca: GET saja (readOnlyHint: true)
  • Tulis: POST | PUT | PATCH | DELETE (destructiveHint: true)
  • Mengembalikan body respons mentah pada 2xx
  • Pada non-2xx, mengembalikan kesalahan yang dapat ditindaklanjuti (isError: true) yang mencakup kegagalan autentikasi, petunjuk 404 self-hosted, dan batas kecepatan (rate limit)
  • Jalur bebas menargetkan GrowthBook REST API

growthbook_list_skills / growthbook_read_skill

Hanya didaftarkan ketika GB_SKILLS_ENABLED tidak dinonaktifkan. growthbook_read_skill mengembalikan konten SKILL.md lengkap sehingga agen dapat mengikuti langkah-langkah alur kerja dan pengaman.

Pengembangan

# Requires a sibling checkout at ../skills (or SKILLS_SRC)
npm install
npm run build
npm start

Mode HTTP mandiri

Secara default, server berjalan melalui stdio. Setel GB_MCP_TRANSPORT=http untuk menjalankannya sebagai server HTTP mandiri yang mengekspos MCP di /mcp (skill + alat API) dan /mcp/api (hanya kapabilitas), di balik permukaan sumber daya terproteksi OAuth 2.0 (metadata RFC 9728 + RFC 6750 WWW-Authenticate).

  • GB_MCP_URL (wajib dalam mode HTTP) — URL basis publik server. URL ini dicap ke resource OAuth (audience) dan metadata sumber daya terproteksi, sehingga tidak pernah diturunkan dari header permintaan. Server menolak untuk memulai tanpanya.
  • GB_MCP_PORT (default 3333) dan GB_MCP_HOST (default 127.0.0.1).
  • Bearer yang masuk divalidasi dengan memeriksa GrowthBook REST API; token yang ditolak mendapatkan HTTP 401 + WWW-Authenticate sehingga klien dapat melakukan refresh.

Jalankan di jaringan tepercaya atau terikat ke loopback. Untuk deployment multi-tenant atau publik, letakkan gateway/auth Anda sendiri di depannya.

Rilis

Membuat rilis adalah tindakan yang disengaja: naikkan versi di package.json, lalu dorong tag v* yang sesuai:

git tag v2.0.0
git push origin v2.0.0

Komit yang diberi tag tersebut (dengan skill yang dibekukan saat pemotongan) memublikasikan:

  • @growthbook/mcp ke npm — pra-rilis (versi dengan -, mis. 2.0.0-beta.1) masuk di bawah dist-tag beta; versi stabil menjadi latest
  • image multi-arsitektur (amd64 + arm64) ke ghcr.io/growthbook/growthbook-mcp (:<version>, plus :<major>, :<major>.<minor>, dan :latest untuk rilis stabil)
  • entri di registry MCP
  • Rilis GitHub

Instal rilis dengan npx @growthbook/mcp@<version> atau tarik ghcr.io/growthbook/growthbook-mcp:<version>.