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_KEYstdio 模式必填;HTTP OAuth 模式可選GrowthBook API 金鑰或個人存取權杖
GB_API_URLhttps://api.growthbook.ioAPI 基礎 URL(自架)與預設 OAuth AS 發行者
GB_MCP_TRANSPORTstdiostdiohttp
GB_MCP_PORT3333HTTP 監聽埠口(當 transport=http 時)
GB_MCP_HOST127.0.0.1HTTP 繫結主機
GB_MCP_URLHTTP 模式必填寫入 OAuth 資源中繼資料的公開 MCP 基礎 URL(HTTP 模式下若缺少此項,伺服器將拒絕啟動)
GB_OAUTH_ISSUERGB_API_URLGrowthBook OAuth AS 發行者 URL
GB_HTTP_HEADER_*額外的請求標頭(例如 GB_HTTP_HEADER_CF_ACCESS_TOKEN
GB_SKILLS_ENABLEDtrue設為 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"
    }
  }
}
路徑工具
/mcpgrowthbook_list_skillsgrowthbook_read_skillgrowthbook_api_readgrowthbook_api_write(除非 GB_SKILLS_ENABLED=false
/mcp/apigrowthbook_api_readgrowthbook_api_write

stdio/整個程序: 設定環境變數,使技能永遠不會被註冊:

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

當技能被停用時,只會註冊 API 讀取/寫入工具。growthbook_list_skillsgrowthbook_read_skill 不會被暴露。

技能如何打包

npm run build   # tsc && bundle-skills

scripts/bundle-skills.mjs 會將每個 skills/*/SKILL.md 從正式的技能檢出目錄複製到 server/skills/<name>.md

來源路徑解析:

  1. SKILLS_SRC 環境變數(技能儲存庫根目錄的路徑),或
  2. ../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 | DELETEdestructiveHint: 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)會放在 beta dist-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>