GrowthBook

公式

フィーチャーフラグの作成と読み取り、実験のレビュー、フラグタイプの生成、ドキュメントの検索、そしてGrowthBookのフィーチャーフラグ管理および実験プラットフォームとの連携を行います。

GrowthBook MCPで何ができますか?

  • バンドルされたスキルの一覧表示 — アシスタントにgrowthbook_list_skillsを実行させ、利用可能なGrowthBookエージェントスキルとその説明を確認します。
  • スキル詳細の読み取りgrowthbook_read_skillを使用して、特定のスキルの完全なMarkdownワークフローとガードレールを取得します。
  • GrowthBook APIの呼び出し — メソッド、パス、およびオプションのJSONボディを指定してgrowthbook_call_apiを呼び出し、プロジェクトの取得や機能の作成などの認証付きREST操作を実行します。
  • 変更を伴う操作の確認 — アシスタントは、growthbook_call_apiを介したPOST、PUT、PATCH、またはDELETEリクエストを実行する前に、特に指示がない限り、ユーザーに確認を求めます。

ドキュメント

GrowthBook MCP Thin

GrowthBook用のシンプルなMCPサーバーで、3つのツールを提供します:

ツール目的
growthbook_list_skillsバンドルされたGrowthBookエージェントスキルを一覧表示(名前+説明)
growthbook_read_skill完全なスキルMarkdownを返す(ワークフロー+ガードレール)
growthbook_call_apiGrowthBook APIへの認証付きRESTパススルー

能力はskillsリポジトリにあり、ビルド時にバンドルされます。機能は汎用のgrowthbook_call_apiツールであり、エンドポイントごとのフォーマッタはありません。ツールの説明では、エージェントがユーザーに明示的に指示されていない限り、変更を伴うメソッド(POST/PUT/PATCH/DELETE)をユーザーに確認するよう求めています。

ツールにはgrowthbook_というプレフィックスが付いているため、クライアントに複数のMCPサーバーが読み込まれている場合でも曖昧さがありません。エージェントがgrowthbook_call_apiを汎用のAPI呼び出しツールと誤解することはありません。

インストール/実行

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_URLいいえhttps://api.growthbook.ioAPIベースURL(セルフホスト)およびデフォルトのOAuth AS発行者
GB_MCP_TRANSPORTいいえstdiostdioまたはhttp
GB_MCP_PORTいいえ3333HTTPリッスンポート(transport=httpの場合)
GB_MCP_HOSTいいえ127.0.0.1HTTPバインドホスト
GB_MCP_URLHTTPでは必須OAuthリソースメタデータにスタンプされる公開MCPベースURL(これがないとサーバーはHTTPモードで起動を拒否します)
GB_OAUTH_ISSUERいいえGB_API_URLGrowthBook OAuth AS発行者URL
GB_HTTP_HEADER_*いいえ追加のリクエストヘッダー(例:GB_HTTP_HEADER_CF_ACCESS_TOKEN
GB_SKILLS_ENABLEDいいえtruefalse / 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_call_api

認証されていないリクエストは、WWW-Authenticate/.well-known/oauth-protected-resourceを指す401を受け取り、GrowthBook Authorization Serverをアドバタイズします。

MCPを処理する前に、サーバーはベアラートークンを使用してGrowthBook REST(GET /api/v1/)をプローブします。そのプローブ(または後でgrowthbook_call_apiから)からの401は、"This API key has expired"をツールエラーとして表示する代わりに、MCPクライアントが更新できるようにHTTP 401error="invalid_token"を生成します。403は受け入れられたベアラーとして扱われます(権限拒否≠無効なトークン)ため、クライアントが更新ループに陥ることはありません。

機能のみモード

HTTP(リモート推奨): クライアントを/mcpの代わりに/mcp/apiに指定します:

{
  "mcpServers": {
    "growthbook": {
      "url": "http://127.0.0.1:3333/mcp/api"
    }
  }
}
パスツール
/mcpgrowthbook_list_skillsgrowthbook_read_skillgrowthbook_call_apiGB_SKILLS_ENABLED=falseでない限り)
/mcp/apigrowthbook_call_apiのみ

stdio / プロセス全体: スキルが登録されないように環境変数を設定します:

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

スキルが無効な場合、growthbook_call_apiのみが登録されます。growthbook_list_skillsgrowthbook_read_skillは公開されません。

スキルのバンドル方法

npm run build   # tsc && bundle-skills

scripts/bundle-skills.mjsは、正規のスキルチェックアウトからすべてのskills/*/SKILL.mdserver/skills/<name>.mdにコピーします。

ソースパスの解決:

  1. SKILLS_SRC環境変数(スキルリポジトリのルートへのパス)、または
  2. ../skills(兄弟ディレクトリ)

スキルリポジトリが情報源であり、このパッケージはスキルコンテンツをフォークしません。

growthbook_call_apiでスキルを使用する

バンドルされたスキルは、ワークフローを次のように表示します:

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

このMCPサーバーはgb-callにシェルアウトしません。スキルがそのパターンを示す場合、同じメソッド、パス、およびオプションのJSONボディ文字列を使用してgrowthbook_call_apiツールを呼び出します。サーバー指示とgrowthbook_read_skill出力には、このブリッジに関する注記が含まれます。

ツールの詳細

growthbook_call_api

{ "method": "GET", "path": "/api/v1/projects" }
{ "method": "POST", "path": "/api/v2/features", "body": "{\"id\":\"my-flag\",...}" }
  • メソッド:GET | POST | PUT | PATCH | DELETE
  • 2xxでは生のレスポンスボディを返します
  • 2xx以外では、認証失敗、セルフホストの404ヒント、レート制限をカバーする実用的なエラー(isError: true)を返します
  • ツールの説明+サーバー指示により、エージェントはユーザーに明示的に指示されていない限り、POST/PUT/PATCH/DELETEをユーザーに確認します(ソフトなガイダンスであり、ハードな制限ではありません)

growthbook_list_skills / growthbook_read_skill

GB_SKILLS_ENABLEDが無効でない場合にのみ登録されます。growthbook_read_skillは完全なSKILL.mdコンテンツを返し、エージェントがワークフローの手順とガードレールに従えるようにします。

開発

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

スタンドアロンHTTPモード

デフォルトでは、サーバーはstdio上で実行されます。GB_MCP_TRANSPORT=httpを設定すると、OAuth 2.0保護リソースサーフェス(RFC 9728メタデータ+RFC 6750 WWW-Authenticate)の背後で、/mcp(スキル+growthbook_call_api)と/mcp/api(機能のみ)でMCPを公開するスタンドアロンHTTPサーバーとして実行されます。

  • GB_MCP_URLHTTPモードでは必須)— サーバーの公開ベースURL。OAuthリソース(オーディエンス)と保護リソースメタデータにスタンプされるため、リクエストヘッダーから導出されることはありません。これがないとサーバーは起動を拒否します。
  • GB_MCP_PORT(デフォルト3333)およびGB_MCP_HOST(デフォルト127.0.0.1)。
  • 受信ベアラーはGrowthBook REST APIのプローブによって検証されます。拒否されたトークンは、クライアントが更新できるようにHTTP 401WWW-Authenticateを取得します。

信頼できるネットワーク上またはループバックにバインドして実行します。マルチテナントまたはパブリック展開の場合は、独自のゲートウェイ/認証で前面に配置します。

リリース

リリースの作成は慎重に行います:package.jsonでバージョンを上げ、一致するv*タグをプッシュします:

git tag v2.0.0
git push origin v2.0.0

そのタグ付きコミット(カット時にスキルが固定される)は以下を公開します:

  • npmへの@growthbook/mcp — プレリリース(-を含むバージョン、例:2.0.0-beta.1)はbetadist-tagの下に配置されます。安定版はlatestになります
  • ghcr.io/growthbook/growthbook-mcpへのマルチアーキテクチャ(amd64arm64)イメージ(:<version>、および安定版リリース用の:<major>:<major>.<minor>:latest
  • MCPレジストリへのエントリ
  • GitHubリリース

npx @growthbook/mcp@<version>でリリースをインストールするか、ghcr.io/growthbook/growthbook-mcp:<version>をプルします。