GrowthBook
resmiMembuat 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 tersedia — Minta asisten untuk memanggil
growthbook_list_skillsguna melihat titik masuk alur kerja GrowthBook tingkat atas beserta deskripsinya. -
Muat alur kerja keterampilan — Gunakan
growthbook_read_skilluntuk mengambil markdown keterampilan lengkap, termasuk alur kerja turunan sepertifeature-flags/references/flag-create. -
Baca data GrowthBook — Minta asisten memanggil
growthbook_api_readdengan jalur seperti/api/v1/projectsuntuk mengambil data melalui permintaan GET yang terautentikasi. -
Tulis ke API GrowthBook — Gunakan
growthbook_api_writeuntuk membuat atau memodifikasi sumber daya, misalnya, POST ke/api/v2/featuresdengan badan JSON untuk flag baru. -
Hormati izin baca/tulis — Server mengekspos
readOnlyHintdandestructiveHintsehingga klien dapat dengan aman membatasi operasi hanya-baca versus operasi yang mengubah data.
Dokumentasi
GrowthBook MCP Thin
Server MCP tipis untuk GrowthBook dengan empat alat:
| Alat | Tujuan |
|---|---|
growthbook_list_skills | Menampilkan titik masuk keterampilan tingkat atas (nama + deskripsi) |
growthbook_read_skill | Mengembalikan keterampilan yang terdaftar atau alur kerja anak yang memenuhi syarat (feature-flags atau feature-flags/references/flag-create) |
growthbook_api_read | Penerusan GET terautentikasi ke API GrowthBook |
growthbook_api_write | Penerusan POST/PUT/PATCH/DELETE terautentikasi |
Kompetensi berada di repositori skills dan dikemas saat build. Kemampuan dibagi menjadi alat API baca vs tulis (tanpa pemformat per-endpoint) sehingga klien dapat menghormati readOnlyHint / destructiveHint dengan benar.
Alat diberi awalan growthbook_ agar tetap tidak ambigu ketika klien memuat beberapa server MCP.
Instalasi / menjalankan
npm install
npm run build
Arahkan klien MCP Anda ke titik masuk yang telah dikompilasi:
{
"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 diterbitkan:
npx @growthbook/mcp
Variabel lingkungan
| Variabel | Wajib | Default | Tujuan |
|---|---|---|---|
GB_API_KEY | Ya untuk stdio; opsional untuk OAuth HTTP | — | Kunci API GrowthBook atau token akses pribadi |
GB_API_URL | Tidak | https://api.growthbook.io | URL dasar API (self-hosted) dan penerbit AS OAuth default |
GB_MCP_TRANSPORT | Tidak | stdio | stdio atau http |
GB_MCP_PORT | Tidak | 3333 | Port listen HTTP (saat transport=http) |
GB_MCP_HOST | Tidak | 127.0.0.1 | Host bind HTTP |
GB_MCP_URL | Ya untuk HTTP | — | URL dasar MCP publik yang dicap ke metadata sumber daya OAuth (server menolak untuk memulai dalam mode HTTP tanpa itu) |
GB_MCP_KEEP_ALIVE_TIMEOUT_MS | Tidak | 90000 | Waktu tunggu keep-alive idle dalam mode HTTP. Harus melebihi waktu tunggu idle dari penyeimbang beban di depannya, atau LB dapat menggunakan kembali koneksi yang telah ditutup server dan permintaan gagal dengan 502 |
GB_OAUTH_ISSUER | Tidak | GB_API_URL | URL penerbit AS OAuth GrowthBook |
GB_HTTP_HEADER_* | Tidak | — | Header permintaan tambahan (mis. GB_HTTP_HEADER_CF_ACCESS_TOKEN) |
GB_SKILLS_ENABLED | Tidak | true | Atur ke false / 0 untuk menonaktifkan alat keterampilan |
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 (keterampilan + baca/tulis API)http://127.0.0.1:3333/mcp/api— hanya kemampuan (growthbook_api_read+growthbook_api_write)
Permintaan tidak terautentikasi menerima 401 dengan WWW-Authenticate yang menunjuk ke /.well-known/oauth-protected-resource, yang mengiklankan Server Otorisasi GrowthBook.
Sebelum menangani MCP, server memeriksa REST GrowthBook (GET /api/v1/) dengan bearer. 401 dari pemeriksaan tersebut (atau nanti dari alat API) menghasilkan HTTP 401 dengan error="invalid_token" sehingga klien MCP dapat menyegarkan — 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 penyegaran.
Mode hanya kemampuan
HTTP (disarankan untuk jarak jauh): arahkan klien ke /mcp/api alih-alih /mcp:
{
"mcpServers": {
"growthbook": {
"url": "http://127.0.0.1:3333/mcp/api"
}
}
}
| Jalur | Alat |
|---|---|
/mcp | growthbook_list_skills, growthbook_read_skill, growthbook_api_read, growthbook_api_write (kecuali GB_SKILLS_ENABLED=false) |
/mcp/api | growthbook_api_read, growthbook_api_write saja |
stdio / proses-lebar: atur env sehingga keterampilan tidak pernah didaftarkan:
"env": {
"GB_API_KEY": "...",
"GB_SKILLS_ENABLED": "false"
}
Ketika keterampilan dinonaktifkan, hanya alat baca/tulis API yang didaftarkan. growthbook_list_skills dan growthbook_read_skill tidak diekspos.
Bagaimana keterampilan dikemas
npm run build # tsc && bundle-skills
scripts/bundle-skills.mjs menyalin pohon keterampilan tingkat atas dari checkout keterampilan kanonik, mempertahankan struktur:
skills/<skill>/SKILL.md → server/skills/<skill>/SKILL.md
skills/<skill>/references/<workflow>.md → server/skills/<skill>/references/<workflow>.md
Resolusi jalur sumber:
SKILLS_SRCvariabel env (jalur ke root repositori keterampilan)agent-skills.local.json—{ "path": "../skills" }, relatif terhadap root repositori. Diabaikan git; salinagent-skills.local.json.exampleskills-src/— apa yang CI dan build Docker sediakan
Tidak ada pencarian saudara implisit. ../skills diselesaikan ke apa pun yang ada di jalur itu, yang membuat build lokal secara diam-diam tidak setuju dengan commit yang dibangun CI.
CI, penyebaran cloud, dan rilis semuanya membaca agent-skills.lock.json dan checkout
commit keterampilan yang tepat itu. Untuk mengirim perubahan keterampilan hulu, perbarui commit di
file kunci. Pengembangan lokal dapat menunjuk ke checkout apa pun dengan
agent-skills.local.json atau SKILLS_SRC.
Repositori keterampilan tetap menjadi sumber kebenaran — paket ini tidak memelihara
fork konten keterampilan. Keterampilan baru mengalir secara otomatis, kecuali yang disebutkan
dalam daftar blokir kecil di bundle-skills.mjs. Saat ini hanya gb-setup yang
diblokir karena mengonfigurasi adaptor shell gb-call daripada GrowthBook
itu sendiri.
Direktori scripts/ per-keterampilan tidak disalin. Tautan relatif
`references/foo.md` ditulis ulang menjadi
`feature-flags/references/foo` paths so growthbook_read_skill yang memenuhi syarat dapat menyelesaikannya.
Menggunakan keterampilan dengan alat API
Keterampilan yang dikemas masih menampilkan alur kerja sebagai:
gb-call GET /api/v1/projects
gb-call POST /api/v2/features ./payload.json
Server MCP ini tidak meneruskan ke gb-call. Petakan GET → growthbook_api_read dan POST/PUT/PATCH/DELETE → growthbook_api_write dengan jalur yang sama dan string badan 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 badan 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 - Jalur bebas menargetkan API REST GrowthBook
growthbook_list_skills / growthbook_read_skill
Hanya didaftarkan ketika GB_SKILLS_ENABLED tidak dinonaktifkan.
growthbook_list_skillsmengembalikan titik masuk keterampilan tingkat atas. Sebuah entri dapat berisi alur kerja lengkap atau rute ke alur kerja anak.growthbook_read_skillmenerima nama tingkat atas yang terdaftar atau jalur anak yang memenuhi syarat yang dinamai oleh keterampilan yang dimuat (feature-flags/references/flag-create) dan mengembalikan markdown lengkap (alur kerja + pagar pengaman).
Pengembangan
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
Mode HTTP mandiri
Secara default server berjalan melalui stdio. Atur GB_MCP_TRANSPORT=http untuk menjalankannya sebagai server HTTP mandiri yang mengekspos MCP di /mcp (keterampilan + alat API) dan /mcp/api (hanya kemampuan), di belakang permukaan sumber daya yang dilindungi OAuth 2.0 (metadata RFC 9728 + RFC 6750 WWW-Authenticate).
GB_MCP_URL(wajib dalam mode HTTP) — URL dasar publik server. Ini dicap ke sumber daya OAuth (audiens) dan metadata sumber daya yang dilindungi, sehingga tidak pernah diturunkan dari header permintaan. Server menolak untuk memulai tanpa itu.GB_MCP_PORT(default3333) danGB_MCP_HOST(default127.0.0.1).- Bearer masuk divalidasi dengan memeriksa API REST GrowthBook; token yang ditolak mendapatkan HTTP
401+WWW-Authenticatesehingga klien dapat menyegarkan.
Jalankan di jaringan tepercaya atau terikat ke loopback. Untuk penyebaran multi-tenant atau publik, depankan dengan gateway/auth Anda sendiri.
Rilis
Memotong rilis adalah tindakan yang disengaja: naikkan versi di package.json, lalu dorong tag v* yang cocok:
git tag v2.0.0
git push origin v2.0.0
Commit yang ditandai itu (dengan keterampilan dibekukan pada saat pemotongan) menerbitkan:
@growthbook/mcpke npm — prarilis (versi dengan-, mis.2.0.0-beta.1) masuk di bawah dist-tagbeta; versi stabil menjadilatest- gambar multi-arsitektur (
amd64+arm64) keghcr.io/growthbook/growthbook-mcp(:<version>, plus:<major>,:<major>.<minor>, dan:latestuntuk rilis stabil) - entri di registri MCP
- Rilis GitHub
Instal rilis dengan npx @growthbook/mcp@<version> atau tarik ghcr.io/growthbook/growthbook-mcp:<version>.