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_api | GrowthBook 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_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_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 401とerror="invalid_token"を生成します。403は受け入れられたベアラーとして扱われます(権限拒否≠無効なトークン)ため、クライアントが更新ループに陥ることはありません。
機能のみモード
HTTP(リモート推奨): クライアントを/mcpの代わりに/mcp/apiに指定します:
{
"mcpServers": {
"growthbook": {
"url": "http://127.0.0.1:3333/mcp/api"
}
}
}
| パス | ツール |
|---|---|
/mcp | growthbook_list_skills、growthbook_read_skill、growthbook_call_api(GB_SKILLS_ENABLED=falseでない限り) |
/mcp/api | growthbook_call_apiのみ |
stdio / プロセス全体: スキルが登録されないように環境変数を設定します:
"env": {
"GB_API_KEY": "...",
"GB_SKILLS_ENABLED": "false"
}
スキルが無効な場合、growthbook_call_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(兄弟ディレクトリ)
スキルリポジトリが情報源であり、このパッケージはスキルコンテンツをフォークしません。
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_URL(HTTPモードでは必須)— サーバーの公開ベースURL。OAuthリソース(オーディエンス)と保護リソースメタデータにスタンプされるため、リクエストヘッダーから導出されることはありません。これがないとサーバーは起動を拒否します。GB_MCP_PORT(デフォルト3333)およびGB_MCP_HOST(デフォルト127.0.0.1)。- 受信ベアラーはGrowthBook REST APIのプローブによって検証されます。拒否されたトークンは、クライアントが更新できるようにHTTP
401+WWW-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へのマルチアーキテクチャ(amd64+arm64)イメージ(:<version>、および安定版リリース用の:<major>、:<major>.<minor>、:latest)- MCPレジストリへのエントリ
- GitHubリリース
npx @growthbook/mcp@<version>でリリースをインストールするか、ghcr.io/growthbook/growthbook-mcp:<version>をプルします。