機能
サーバーを接続すると、AI エージェントは Kameleoon と連携して次のタスクを実行できます。- 実験、フィーチャーフラグ、ゴール、セグメント、ターゲティングルールを検索および確認する。
- 実験をエンドツーエンドで構築する: 作成、複製、ライフサイクル全体 (開始、一時停止、再開、停止、削除) の実行。
- フィーチャーフラグを管理する: 作成、複製、削除、環境ごとの切り替え、変更履歴の確認。
- フラグの配信を構成する: ターゲット配信ルールや実験ルール、カスタムバリエーション、型付き変数の追加。
- ゴールとオーディエンスセグメントを作成・保守し、セグメントを実験に紐付ける。
- 実験およびフィーチャーフラグ実験の結果を分析し、バリエーションの生コード (JavaScript および CSS) を取得する。
- 勝ったバリエーションからゲートされた本番ロールアウトまで、実装ライフサイクル全体を自動化する。
主要ワークフロー: 勝った実験から本番環境へ
Kameleoon MCP サーバーは、実装の「ラストマイル」を自動化します。IDE を離れることなく、AI アシスタントに次のワークフローを実行するよう指示できます。- 実験結果を取得し、勝ったバリエーションを特定する。
- Kameleoon からそのバリエーションの生コードを抽出する。
- コードを既存のコードベースに整合したネイティブで本番対応のコード (React コンポーネントなど) に変換する。
- Kameleoon でフィーチャーフラグを作成する。
- 新しい実装をフィーチャーフラグの背後にラップする。
- 本番環境で機能を有効化して検証する。
利用可能なツール
サーバーは以下のツールを領域別にグループ化して公開しています。各ツールは単一かつ明確に範囲が定められたアクションに対応しているため、より大きなワークフローに組み合わせることができます (例: 結果を読み取り、コードを取得し、フラグを作成し、ルールを追加し、有効化する)。実験
A/B テスト (Web Experiments) を構築、確認、実行します。| ツール | 説明 | プロンプト例 |
|---|---|---|
experiment_list | 実験を名前または ID で検索します。ページネーションされたサマリー (id、name、status、tags) を返します。 | “List active experiments on site d1alzzxd7k.” |
experiment_get | 実験の完全な構成 (バリエーション、トラフィック分割、ゴール、ターゲティング) を取得します。 | “Show the configuration for experiment 149640.” |
experiment_code_get | バリエーションの生の JavaScript、CSS、カスタム JSON に加えて、実験の共通 JS と CSS を取得します。 | “Pull the code for variation 1 of experiment 149640.” |
experiment_results_get | 統計結果を取得します: バリエーションごとのコンバージョン率、有意性、信頼区間、勝者。 | “Summarize results for experiment 149640.” |
experiment_create | ドラフト実験を作成します (タイプ、ベース URL、ゴール、任意の共通コード)。 | “Create a CLASSIC experiment Homepage hero on site d1alzzxd7k.” |
experiment_duplicate | 実験を新しいドラフトに複製し、バリエーション、コード、配分、ターゲティングをコピーします。 | “Duplicate experiment 149640.” |
experiment_lifecycle_update | ライフサイクルを操作します: 開始、一時停止、再開、停止、削除 (停止と削除には確認が必要)。 | “Start experiment 149640.” |
フィーチャーフラグ
フィーチャーフラグの作成と運用、環境ごとの切り替え、履歴と結果の読み取りを行います。| ツール | 説明 | プロンプト例 |
|---|---|---|
feature_flag_list | フィーチャーフラグをキー、名前、または ID で検索します。 | “List all feature flags for site d1alzzxd7k.” |
feature_flag_get | 環境におけるフラグの完全な構成 (バリエーション、変数、主要ゴール、ルールチェーン) を取得します。 | “Show configuration for flag snake_game.” |
feature_flag_create | デフォルトの on と off のバリエーションを持つフラグを作成します。 | “Create a flag ui_refresh for site d1alzzxd7k.” |
feature_flag_duplicate | 既存のフラグを複製します (コピーはすべての環境で無効状態で始まります)。 | “Duplicate the new_search flag.” |
feature_flag_delete | フラグとそのすべての構成を完全に削除します。 | “Delete the flag ui_refresh.” |
feature_flag_enable | 環境ごとのマスタースイッチを ON にして、SDK がルールを評価できるようにします。 | “Enable new_search in production.” |
feature_flag_disable | 環境ごとのマスタースイッチを OFF にします (ルールは保持されます)。 | “Disable new_search in staging.” |
feature_flag_activity_logs_get | フラグ変更の監査証跡 (誰が何をいつ変更したか) を読み取ります。 | “Show the recent change history for our feature flags.” |
feature_flag_experiment_results_get | フラグの実験ルールの統計結果を取得します。 | “Get the experiment results for the rule on new_search.” |
フラグの配信、バリエーション、および変数
フラグの配信方法を形成し、提供されるバリエーションと型付き変数を定義します。| ツール | 説明 | プロンプト例 |
|---|---|---|
feature_flag_rule_targeted_create | ターゲット配信ルールを追加します: 1 つのバリエーションを一定の割合のトラフィックに配信し、任意でスケジュール設定が可能。 | “Roll new_search out to 20% in production.” |
feature_flag_rule_experimentation_create | 統計的トラッキングでバリエーション間にトラフィックを分割する A/B 実験ルールを追加します。 | “A/B test off vs on 50/50 on new_search.” |
feature_flag_variation_create | カスタムバリエーション (機能の名前付きの状態) をフラグに追加します。 | “Add a variant_a variation to new_search.” |
feature_flag_variable_create | デフォルト値付きの型付き変数 (BOOLEAN、NUMBER、STRING、JSON、JS、CSS、ENUM) を定義します。 | “Add a STRING variable label defaulting to Search.” |
feature_flag_variation_variable_set | 特定のバリエーションに対して変数の値をオーバーライドします。 | “Set label to Find on variant_a.” |
ゴール
実験とフラグで使用されるコンバージョンゴールを作成・保守します。| ツール | 説明 | プロンプト例 |
|---|---|---|
goal_list | サイト上のゴールを参照し、実験、フラグ、パーソナライゼーション全体での使用回数を表示します。 | “List goals for site d1alzzxd7k.” |
goal_get | ゴールのタイプ構成、タグ、使用回数を確認します。 | “Show goal 271552.” |
goal_search | 名前の部分文字列でゴールを検索します。 | “Search goals for checkout.” |
goal_create | 任意のタイプ (URL、CLICK、SCROLL、PAGE_VIEWS、TIME_SPENT、CUSTOM など) のゴールを作成します。 | “Create a URL goal that matches /thank-you.” |
goal_update | ゴールの名前、説明、タグ、トラッキングツール、または複数回コンバージョン設定を編集します。 | “Rename goal 271552 to Signup complete.” |
goal_update_type | ゴールのタイプを切り替え、そのタイプ固有の構成を置き換えます (タグは保持されます)。 | “Change goal 271552 to a CLICK goal.” |
goal_delete | ゴールを完全に削除します。 | “Delete goal 271552.” |
セグメント
ターゲットとするオーディエンスを定義し、確認します。| ツール | 説明 | プロンプト例 |
|---|---|---|
segment_list | サイト上のセグメントを参照し、使用回数を表示します。 | “List segments for site d1alzzxd7k.” |
segment_get | セグメントの条件ツリー (生の JSON と人間が読めるサマリー) を確認します。 | “Show segment 200604.” |
segment_create | 条件ツリー (地理位置、デバイス、ブラウザ、カスタムデータなど) からオーディエンスセグメントを作成します。 | “Create a segment for desktop visitors in France.” |
segment_delete | セグメントを削除します。セグメントが使用中の場合はデフォルトでブロックされます (force でオーバーライド可能)。 | “Delete segment 200604.” |
サイトとターゲティングルール
プロジェクトを検索し、セグメントを実験に紐付けます。| ツール | 説明 | プロンプト例 |
|---|---|---|
site_list | アクセス可能なサイト (プロジェクト) を、各サイトのコード、名前、トラッキングステータスとともに一覧表示します。 | “List my Kameleoon sites.” |
targeting_rule_list | サイト上のターゲティングルールを一覧表示します。 | “List targeting rules for site d1alzzxd7k.” |
targeting_rule_get | 単一のターゲティングルール (セグメント、構成、トリガー、所属する実験) を確認します。 | “Show targeting rule 118605.” |
targeting_rule_create | セグメントを実験に紐付けて、参加者を制御します。 | “Target experiment 149640 to segment 200604.” |
Claude Code 連携
ステップ 1: サーバーの登録
サーバーをユーザープロファイル用に登録 (すべてのプロジェクトで利用可能) するには、ターミナルを開いて次のコマンドを実行します。.mcp.json ファイルがリポジトリに追加されます) する場合は、次を実行します。
kameleoon: ... - ✗ Failed to connect (まだ認証を完了していないため、これは正常です)。
ステップ 2: OAuth 認証の完了
同じターミナルで、ログインフローをトリガーします。- コマンドは自動的にブラウザタブを開きます。開かない場合は、ターミナルに表示された URL をコピーして手動で開きます。
- Kameleoon アカウントにサインインします。
- Authorize をクリックします。
- ブラウザに成功メッセージが表示されたら、ターミナルで
Ctrl+Cを押します。
kameleoon: ... - ✓ Connected
ステップ 3: 新しい Claude Code セッションを開始する
Claude Code は、サーバー登録後に開始したセッションでのみ、新しく追加された MCP サーバーのツールを利用可能にします。現在の Claude Code チャットを閉じて、新しいチャットを開きます。ステップ 4: 接続の確認
新しい Claude Code 会話で、次のプロンプトを試します。- “List my Kameleoon feature flags.”
- “What experiments are active on site X?”
- “Show me the status of experiment Y.”
- “Show me the code for variation 1 of experiment Z.”
Claude のトラブルシューティング
| 症状 | 原因 | 対処方法 | |
|---|---|---|---|
| ブラウザが開かない。 | 自動起動に失敗した。 | ターミナルから URL をコピーして手動で開きます。 | |
| ポート 35535 で接続拒否。 | ポートが使用中。 | `netstat -ano | findstr :35535` を実行し、プロセスを終了して再試行します。 |
| OAuth 後に接続に失敗。 | トークンが保持されていない。 | ステップ 2 のコマンドを再実行してトークンを更新します。 | |
| Claude でツールが表示されない。 | サーバー追加前にセッションが開始された。 | 新しい Claude Code 会話を開始します。 | |
settings.json で mcpServers キーが拒否される。 | 間違ったファイル。Claude Code はそのキーを使用しません。 | 代わりに claude mcp add コマンドを使用します。 | |
| 長時間経過後の認証エラー。 | OAuth トークンが期限切れ。 | ステップ 2 のコマンドを再実行します。 |
Antigravity 連携
クイックセットアップ
次のセルフスタータープロンプトを Antigravity チャットに直接貼り付けると、自動的に接続できます。
“Connect to the Kameleoon MCP production server. The endpoint is https://mcp.kameleoon.com/mcp, using mcp-remote@0.1.37 on port 35535 with the openid scope. Authenticate by running the npx mcp-remote command to trigger my browser, then verify the connection.”
手動構成
~/.gemini/antigravity/mcp_config.json の構成ファイルを編集し、次の JSON ブロックを追加します。
Codex 連携
クイックセットアップ
次のセルフスタータープロンプトを Codex チャットに貼り付けます。
“Configure the Kameleoon MCP server at https://mcp.kameleoon.com/mcp. Use port 35535 for callback. Once configured, run the login command to trigger my browser and then list my feature flags.”
手動構成
次のブロックを~/.codex/config.toml に追加します。ファイルが存在しない場合は作成してください。
接続の認証
Kameleoon MCP サーバーは OAuth を使用します。ターミナルで次のコマンドを実行して、認可フローを開始します。- ブラウザが自動的にウィンドウを開きます。
- Kameleoon ログインページで Authorize をクリックします。
- Kameleoon がポート 35535 でローカルコールバックを完了します。
- ターミナルでプロキシが正常に接続されたことが確認されます。
ツール操作の確認
認証後、次のチェックを実行してツールが期待通りに動作することを確認します。- 利用可能なツールを一覧表示する:
tools/listが成功し、Kameleoon ツールを返すことを確認します。出力にツール表に記載されたツール (experiment_code_get、feature_flag_list、feature_flag_createなど) が含まれていることを確認します。 - フィーチャーフラグの取得:
feature_flag_list(siteCode = "d1alzzxd7k")を実行します。応答が成功すると、指定したサイトのフィーチャーフラグのリストが返されます。 - 実験結果の取得:
experiment_results_get(experimentId = 149640)を実行します。応答が成功すると、実験名、サイトコード、タイプ、ステータスが含まれます。
Cursor 連携
Cursor は、MCP ツールを IDE のチャットサイドバーに直接統合するため、コーディング中に利用できます。オプション 1: Cursor UI で構成 (推奨)
- Cursor の設定を開きます (macOS では
Cmd+Shift+J、Windows/Linux ではCtrl+Shift+J)。 - Features > MCP Servers > + Add New MCP Server に移動します。
- Name を
kameleoonに設定します。 - Type を
commandに設定します。 - 次の文字列を Command として入力します。
- 構成を保存します。
オプション 2: mcp.json で構成 (上級)
~/.cursor/mcp.json を開き (ファイルが存在しない場合は作成)、次のエントリを mcpServers オブジェクトに追加します。
ファイルを手動で編集した後は、Cursor を再起動してください。
開発者ワークフロー向けのサンプルプロンプト
Kameleoon MCP サーバーを接続したら、IDE で次のようなプロンプトを使用します。- “List the Kameleoon MCP tools available in this session.”
- “Show me all feature flags for site code
d1alzzxd7k.” - “Get the details for feature flag new_search on site
d1alzzxd7k.” - “Fetch experiment results for experiment
149640and summarize the current status.” - “Pull the variation code for experiment
<experimentId>and variation<variationId>.”
- “Inspect feature flag new_search for site
d1alzzxd7kand explain what environments and variations it currently has.” - “Summarize experiment
149640for an engineer. Include status, site code, winner state, and whether any variation data is available.” - “List the active feature flags for site
d1alzzxd7kand point out any flags that look like stale candidates.” - “Retrieve the code for variation
<variationId>in experiment<experimentId>and explain what frontend behavior it changes.” - “Create a new feature flag named
<name>with key<featureKey>for sited1alzzxd7k.” - “Turn on feature flag
<featureKey>in the staging environment for sited1alzzxd7k.” - “Turn off feature flag
<featureKey>in the production environment for sited1alzzxd7k.”
高度なワークフロー: エンドツーエンドの自動化
MCP サーバーの完全な機能を体験するために、包括的なシステムプロンプトを使用します。次の例は、勝ったバリエーションコードを React コンポーネントに変換する方法を示しており、主に React アプリケーション向けです。AI エージェントに、勝った結果の取得から、新しいフィーチャーフラグの背後にゲートされた本番対応のネイティブコードの生成、そしてロールアウトと検証まで、実装ライフサイクル全体を MCP ツールで処理するよう指示します。 次のプロンプトを AI アシスタントに貼り付けます。You are integrating a Kameleoon A/B experiment into a production codebase by converting a Kameleoon PBX variation into maintainable native React code. ContextRules
- Experiment ID: 373001
- Mode: strict_winner_only (default) or manual_variation_conversion (Fallback variation: 1266752)
Workflow steps
- Inspect the repo first and follow existing conventions (structure, styling, routing, tests, feature flags).
- Do not copy experiment code directly. Re-implement using idiomatic React (components, hooks, state).
- Do not keep experiment-specific logic (IDs, Kameleoon APIs) in production code.
- Prefer existing feature flag systems for rollout. Use the Kameleoon MCP feature-flag tools to create and gate the flag.
- Avoid DOM manipulation (no querySelector, MutationObserver, etc.).
- Do not add new dependencies unless necessary.
- Do not modify the source experiment’s lifecycle (do not stop or delete it) unless explicitly asked.
- Be explicit if something is unclear.
- Get experiment results (
experiment_results_get).- Decide integration:
- Mode A (default:
strict_winner_only): Proceed only ifwinner.status == "clear_winner".- Mode B (manual): Use the fallback variation provided in the context.
- Get the variation code and the prompt that was used (
experiment_code_get).- Convert the code to React (convert JS code to React components/hooks, and CSS code to the project styling system).
- Create a feature flag “pbx-winning-experiment-373001” (
feature_flag_create). If the implementation needs more than a simple on/off, add variations and typed variables (feature_flag_variation_create,feature_flag_variable_create,feature_flag_variation_variable_set), then gate the converted code behind the flag.- Roll out and validate: add a delivery rule (
feature_flag_rule_targeted_createfor a staged percentage rollout, orfeature_flag_rule_experimentation_createto keep measuring), enable the flag in the target environment (feature_flag_enable), and confirm the final configuration withfeature_flag_get.
ツールパラメータリファレンス
tools/list が返す正確なツール名とパラメータ名を使用してください。ライブ MCP スキーマは次のパラメータをサポートします。
実験
| ツール | 必須パラメータ | オプションパラメータ |
|---|---|---|
experiment_list | なし | siteCode、filterQuery、page、perPage、sortField、sortOrder |
experiment_get | experimentId | なし |
experiment_code_get | experimentId、variationId | なし |
experiment_results_get | experimentId | なし |
experiment_create | payload (siteCode、name、type、baseURL) | payload: mainGoalId、goals、tags、description、commonJavaScriptCode、commonCssCode、trafficAllocationMethod、collectingDataEnabled、multipleTestingCorrection、executeCodeForReference |
experiment_duplicate | experimentId | なし |
experiment_lifecycle_update | experimentId、status | confirm (stopped および deleted で必須)、reason |
フィーチャーフラグ
| ツール | 必須パラメータ | オプションパラメータ |
|---|---|---|
feature_flag_list | なし | siteCode、filterQuery、page、perPage、sortField、sortOrder |
feature_flag_get | featureKey、siteCode | environmentKey (すべての環境を対象とする場合は *) |
feature_flag_create | siteCode、featureKey、name | description |
feature_flag_duplicate | featureKey、siteCode | なし |
feature_flag_delete | featureKey、siteCode | なし |
feature_flag_enable | featureKey、siteCode、environmentKey | なし |
feature_flag_disable | featureKey、siteCode、environmentKey | なし |
feature_flag_activity_logs_get | なし | type、sortKey (timestamp)、sortOrder、page、perPage |
feature_flag_experiment_results_get | featureKey、siteCode、environmentKey、experimentId | なし |
フラグの配信、バリエーション、および変数
| ツール | 必須パラメータ | オプションパラメータ |
|---|---|---|
feature_flag_rule_targeted_create | siteCode、featureKey、environmentKey、variationKey、exposition、releaseDateTime、timeZone | ruleName |
feature_flag_rule_experimentation_create | siteCode、featureKey、environmentKey、controlVariationKey、trafficAllocations、exposition、releaseDateTime、timeZone | ruleName |
feature_flag_variation_create | siteCode、featureKey、variationKey、variationName | なし |
feature_flag_variable_create | siteCode、featureKey、variableKey、variableType、defaultValue | なし |
feature_flag_variation_variable_set | siteCode、featureKey、variationKey、variableKey、value | なし |
ゴール
| ツール | 必須パラメータ | オプションパラメータ |
|---|---|---|
goal_list | なし | siteCode、page、perPage |
goal_get | goalId | なし |
goal_search | query | siteCode、page、perPage |
goal_create | payload (name、siteCode、type、hasMultipleConversions) | payload: タイプ固有のパラメータ (matchString、matchType、scrollType、scrollValue、timeSeconds、pageViews、url、jsCode)、tags、description、status、trackingTools |
goal_update | goalId | name、description、tags、trackingTools、hasMultipleConversions |
goal_update_type | goalId、type | タイプ固有のパラメータ |
goal_delete | goalId | なし |
セグメント
| ツール | 必須パラメータ | オプションパラメータ |
|---|---|---|
segment_list | なし | siteCode、query、page、perPage |
segment_get | segmentId | なし |
segment_create | name、siteCode | conditionDataTree、description |
segment_delete | segmentId | force |
サイトとターゲティングルール
| ツール | 必須パラメータ | オプションパラメータ |
|---|---|---|
site_list | なし | なし |
targeting_rule_list | なし | siteCode、page、perPage |
targeting_rule_get | targetingRuleId | なし |
targeting_rule_create | segmentConfiguration、siteCode、experimentId | segmentId、triggerConfiguration、triggerId、targetingConfigurationParam |
experiment_lifecycle_update.status は started、resumed、paused、stopped、または deleted です。実験の type は AI、CLASSIC、DEVELOPER、MVT、PROMPT、または SDK_HYBRID です。ゴールの type は CLICK、CUSTOM、SCROLL、PAGE_VIEWS、URL、TIME_SPENT、RETENTION_RATE、WAREHOUSE、または RATIO_METRICS です。variableType は BOOLEAN、NUMBER、STRING、JSON、JS、CSS、または ENUM です。trafficAllocations は、合計が 100 になる variationKey:percentage のカンマ区切り文字列です (例: off:50,on:50)。releaseDateTime はオフセットなしの ISO-8601 ローカル日時 (例: 2026-07-01T09:00:00) で、timeZone は IANA ゾーン (例: Europe/Paris または UTC) です。
プロンプトのヒント
- フィーチャーフラグを操作する際は、サイトコードを含めてください。
- 実験や実験結果を照会する際は、実験 ID を含めてください。
- バリエーションコードをリクエストする際は、
experimentIdとvariationIdの両方を含めてください。 - エージェントにフィーチャーフラグの有効化または無効化を依頼する際は、対象環境を明示的に指定してください。
- AI エージェントが生データを取得するだけでなく、MCP の応答を解釈することを希望する場合は、平易な英語のサマリーを要求してください。
一般的なトラブルシューティング
ポート 35535 がすでに使用中
認証がEADDRINUSE エラーで失敗する場合、別のプロセスがすでに OAuth コールバックポートをリスニングしています。
- 原因: 以前の認証試行から残った古い
mcp-remoteプロセスがまだアクティブです。 - 対処方法: ポート 35535 を使用している古いプロセスを停止して、OAuth コマンドを再実行します。
MCP サーバーが Codex チャットに表示されない
Codex は、新しく追加された MCP サーバーを既に実行中のスレッドへホットリロードしないことがあります。- 対処方法:
config.tomlを更新した後、Codex を更新するか、新しいセッションを開始します。
ブラウザフローが完了しない
OAuth ブラウザウィンドウは開くが認証が完了しない場合:- Kameleoon ログインページで Authorize ボタンをクリックしたことを確認します。
- ブラウザまたはシステム設定が
localhostコールバックをブロックしていないか確認します。 - ブラウザが自動的に起動しない場合は、コールバック URL を手動で開きます。
ヘッドレスまたはリモートエージェントが認証に失敗する
リモートまたはヘッドレスエージェント (クラウドホスト型 Codex など) は、ブラウザベースの認可ステップを完了できません。- 対処方法: 代わりにツールのデスクトップ版を使用してください。
npx コマンドが見つからない
コマンドが「not found」エラーで失敗する場合、npx がシステムパス上で利用可能であることを確認してください。Node.js バージョン 5.2 以降には、デフォルトで npx が含まれています。