GrowthBook
官方建立與讀取功能旗標、檢視實驗、產生旗標類型、搜
你可以用 GrowthBook MCP 做什麼?
- 列出捆綁的技能 — 請您的助理使用
growthbook_list_skills列舉 GrowthBook 代理技能,以查看可用的工作流程。 - 閱讀技能的完整指南 — 使用
growthbook_read_skill取得特定技能的完整 Markdown 工作流程與防護措施。 - 讀取 GrowthBook API 資料 — 透過
growthbook_api_read對任何 GrowthBook REST 端點執行已驗證的 GET 請求,例如取得專案或功能。 - 寫入 GrowthBook API — 使用
growthbook_api_write透過 POST/PUT/PATCH/DELETE 建立、更新或刪除資源,並以destructiveHint確保安全。
文件
GrowthBook MCP Thin
一個適用於 GrowthBook 的輕量 MCP 伺服器,提供四個工具:
| 工具 | 用途 |
|---|---|
growthbook_list_skills | 列出隨附的 GrowthBook agent 技能(名稱 + 描述) |
growthbook_read_skill | 回傳完整的技能 Markdown(工作流程 + 防護措施) |
growthbook_api_read | 已驗證的 GET 直通至 GrowthBook API |
growthbook_api_write | 已驗證的 POST/PUT/PATCH/DELETE 直通 |
能力定義存放在 skills 儲存庫中,並在建置時打包。工具能力拆分為讀取與寫入兩類 API 工具(沒有逐端點的表達器),以便客戶端能正確遵循 readOnlyHint / destructiveHint。
工具以 growthbook_ 作為前綴,當客戶端載入多個 MCP 伺服器時可避免歧義。
安裝/執行
npm install
npm run build
將您的 MCP 客戶端指向編譯後的進入點:
{
"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"
}
}
}
}
或執行已發佈的套件:
npx @growthbook/mcp
環境變數
| 變數 | 必填 | 預設值 | 用途 |
|---|---|---|---|
GB_API_KEY | stdio 模式必填;HTTP OAuth 模式可選 | — | GrowthBook API 金鑰或個人存取權杖 |
GB_API_URL | 否 | https://api.growthbook.io | API 基礎 URL(自架)與預設 OAuth AS 發行者 |
GB_MCP_TRANSPORT | 否 | stdio | stdio 或 http |
GB_MCP_PORT | 否 | 3333 | HTTP 監聽埠口(當 transport=http 時) |
GB_MCP_HOST | 否 | 127.0.0.1 | HTTP 繫結主機 |
GB_MCP_URL | HTTP 模式必填 | — | 寫入 OAuth 資源中繼資料的公開 MCP 基礎 URL(HTTP 模式下若缺少此項,伺服器將拒絕啟動) |
GB_OAUTH_ISSUER | 否 | GB_API_URL | GrowthBook OAuth AS 發行者 URL |
GB_HTTP_HEADER_* | 否 | — | 額外的請求標頭(例如 GB_HTTP_HEADER_CF_ACCESS_TOKEN) |
GB_SKILLS_ENABLED | 否 | true | 設為 false / 0 以停用技能工具 |
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
客戶端連線至:
http://127.0.0.1:3333/mcp— 完整(技能 + API 讀取/寫入)http://127.0.0.1:3333/mcp/api— 僅能力模式(growthbook_api_read+growthbook_api_write)
未驗證的請求會收到 401,其中 WWW-Authenticate 指向 /.well-known/oauth-protected-resource,後者會宣告 GrowthBook 授權伺服器。
在處理 MCP 之前,伺服器會使用 bearer 權杖探測 GrowthBook REST(GET /api/v1/)。若探測(或稍後來自 API 工具)回傳 401,伺服器會回應 HTTP 401 並附帶 error="invalid_token",讓 MCP 客戶端可以重新整理——而不是將 "This API key has expired" 顯示為工具錯誤。403 會被視為已接受的 bearer 權杖(權限不足 ≠ 無效權杖),因此客戶端不會被迫進入重新整理迴圈。
僅能力模式
HTTP(遠端連線建議): 將客戶端指向 /mcp/api 而非 /mcp:
{
"mcpServers": {
"growthbook": {
"url": "http://127.0.0.1:3333/mcp/api"
}
}
}
| 路徑 | 工具 |
|---|---|
/mcp | growthbook_list_skills、growthbook_read_skill、growthbook_api_read、growthbook_api_write(除非 GB_SKILLS_ENABLED=false) |
/mcp/api | 僅 growthbook_api_read、growthbook_api_write |
stdio/整個程序: 設定環境變數,使技能永遠不會被註冊:
"env": {
"GB_API_KEY": "...",
"GB_SKILLS_ENABLED": "false"
}
當技能被停用時,只會註冊 API 讀取/寫入工具。growthbook_list_skills 和 growthbook_read_skill 不會被暴露。
技能如何打包
npm run build # tsc && bundle-skills
scripts/bundle-skills.mjs 會將每個 skills/*/SKILL.md 從正式的技能檢出目錄複製到 server/skills/<name>.md。
來源路徑解析:
SKILLS_SRC環境變數(技能儲存庫根目錄的路徑),或../skills(同級目錄)
技能儲存庫始終是唯一事實來源——此套件從不分叉技能內容。
搭配 API 工具使用技能
隨附的技能仍以以下形式顯示工作流程:
gb-call GET /api/v1/projects
gb-call POST /api/v2/features ./payload.json
此 MCP 伺服器不會呼叫 gb-call。請將 GET 對應至 growthbook_api_read,並將 POST/PUT/PATCH/DELETE 對應至 growthbook_api_write,使用相同的路徑與可選的 JSON body 字串。伺服器指示與 growthbook_read_skill 輸出會包含此橋接說明。
工具詳情
growthbook_api_read / growthbook_api_write
{ "path": "/api/v1/projects" }
{ "method": "POST", "path": "/api/v2/features", "body": "{\"id\":\"my-flag\",...}" }
- 讀取:僅 GET(
readOnlyHint: true) - 寫入:
POST|PUT|PATCH|DELETE(destructiveHint: true) - 在 2xx 時回傳原始回應 body
- 在非 2xx 時,回傳可操作的錯誤(
isError: true),涵蓋驗證失敗、自架 404 提示與速率限制 - 自由格式路徑指向 GrowthBook REST API
growthbook_list_skills / growthbook_read_skill
僅在 GB_SKILLS_ENABLED 未被停用時註冊。growthbook_read_skill 回傳完整的 SKILL.md 內容,讓 agent 能遵循工作流程步驟與防護措施。
開發
# Requires a sibling checkout at ../skills (or SKILLS_SRC)
npm install
npm run build
npm start
獨立 HTTP 模式
預設情況下,伺服器透過 stdio 執行。設定 GB_MCP_TRANSPORT=http 可將其作為獨立 HTTP 伺服器執行,在 OAuth 2.0 受保護資源介面(RFC 9728 中繼資料 + RFC 6750 WWW-Authenticate)之後,於 /mcp(技能 + API 工具)和 /mcp/api(僅能力模式)暴露 MCP。
GB_MCP_URL(HTTP 模式下必填)——伺服器的公開基礎 URL。它會被寫入 OAuth 資源(audience)與受保護資源中繼資料,因此絕不會從請求標頭推導。伺服器在缺少此項時拒絕啟動。GB_MCP_PORT(預設3333)和GB_MCP_HOST(預設127.0.0.1)。- 傳入的 bearer 權杖會透過探測 GrowthBook REST API 進行驗證;被拒絕的權杖會收到 HTTP
401+WWW-Authenticate,以便客戶端重新整理。
請在受信任的網路或繫結至 loopback 的環境中執行。對於多租戶或公開部署,請在前面加上您自己的閘道/驗證層。
版本發佈
發佈版本是經過謹慎考量的:先在 package.json 中提升版本號,然後推送相符的 v* 標籤:
git tag v2.0.0
git push origin v2.0.0
該帶有標籤的提交(技能在發佈時凍結)會發佈:
@growthbook/mcp至 npm——預發佈版本(帶有-的版本,例如2.0.0-beta.1)會放在betadist-tag 下;穩定版本則成為latest- 一個多架構(
amd64+arm64)映像檔至ghcr.io/growthbook/growthbook-mcp(:<version>,加上穩定版的:<major>、:<major>.<minor>和:latest) - MCP 登錄中的一個條目
- 一個 GitHub Release
使用 npx @growthbook/mcp@<version> 安裝發佈版本,或拉取 ghcr.io/growthbook/growthbook-mcp:<version>。