> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kameleoon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Kameleoon MCP サーバー

> AI コーディングアシスタントを Kameleoon プロジェクトに直接接続し、実験とフィーチャーフラグのワークフローを自動化します。

Kameleoon Model Context Protocol (MCP) サーバーは、AI コーディングアシスタントを Kameleoon プロジェクトに直接接続し、実験とフィーチャーフラグのためのエージェント型ワークフローを可能にします。AI アシスタントは、構成の読み取りやバリエーションコードの取得にとどまらず、実験、フィーチャーフラグ、ゴール、セグメント、ターゲティングルールの構築と管理、そしてロールアウトのライフサイクル全体の実行を、すべて開発環境から行うことができます。サーバーを登録・認証して、勝ったバリエーションからゲートされた本番ロールアウトまで、実装ライフサイクルを自動化しましょう。

## 機能

サーバーを接続すると、AI エージェントは Kameleoon と連携して次のタスクを実行できます。

* 実験、フィーチャーフラグ、ゴール、セグメント、ターゲティングルールを検索および確認する。
* 実験をエンドツーエンドで構築する: 作成、複製、ライフサイクル全体 (開始、一時停止、再開、停止、削除) の実行。
* フィーチャーフラグを管理する: 作成、複製、削除、環境ごとの切り替え、変更履歴の確認。
* フラグの配信を構成する: ターゲット配信ルールや実験ルール、カスタムバリエーション、型付き変数の追加。
* ゴールとオーディエンスセグメントを作成・保守し、セグメントを実験に紐付ける。
* 実験およびフィーチャーフラグ実験の結果を分析し、バリエーションの生コード (JavaScript および CSS) を取得する。
* 勝ったバリエーションからゲートされた本番ロールアウトまで、実装ライフサイクル全体を自動化する。

### 主要ワークフロー: 勝った実験から本番環境へ

Kameleoon MCP サーバーは、実装の「ラストマイル」を自動化します。IDE を離れることなく、AI アシスタントに次のワークフローを実行するよう指示できます。

1. 実験結果を取得し、勝ったバリエーションを特定する。
2. Kameleoon からそのバリエーションの生コードを抽出する。
3. コードを既存のコードベースに整合したネイティブで本番対応のコード (React コンポーネントなど) に変換する。
4. Kameleoon でフィーチャーフラグを作成する。
5. 新しい実装をフィーチャーフラグの背後にラップする。
6. 本番環境で機能を有効化して検証する。

## トークン使用量とプランの検討事項

Kameleoon MCP サーバーを AI アシスタントに接続すると、利用可能なアクションを記述するツールスキーマ分の、わずかで一定のオーバーヘッドが発生します。このオーバーヘッドは、アシスタントがどのプランで動作していても一定に保たれます。

ワークフローのトークンコストは、接続そのものではなく、実行する作業そのものから生じます。使用量を左右する要因は次のとおりです。

* ワークフローが取得するデータの量。完全な実験構成、バリエーションコード、変更履歴など。
* アシスタントが生成または変換するコードの量。勝ったバリエーションをネイティブのアプリケーションコードに変換する場合など。
* 単一のワークフローが対象とするサイトまたはブランドの数。3つのサイトにまたがる実験の複製と監査は、1つのサイトで同じ操作を実行する場合に比べて、トークンを比例して多く消費する。
* 単一のプロンプトの対象範囲の広さ。1つのサイトに限定した簡単な確認は、すべてのサイトのすべての実験を確認するような際限のない依頼に比べて、消費量がはるかに少ない。

チームで特定の AI アシスタントプランを決定する前に、想定するワークフローの範囲を見積もりましょう。対象となるサイトやブランドの数、実行頻度、大量のデータ取得やコード生成を伴うかどうかを確認します。繰り返し実行する複数サイト向けのワークフローには、単発かつ単一サイトのプロンプトを想定したプランよりも、大きな利用枠またはコンテキストウィンドウを持つプランが必要です。具体的な利用上限とコンテキストウィンドウのサイズについては、AI アシスタント提供元のプランに関するドキュメントを確認してください。

## 利用可能なツール

サーバーは以下のツールを領域別にグループ化して公開しています。各ツールは単一かつ明確に範囲が定められたアクションに対応しているため、より大きなワークフローに組み合わせることができます (例: 結果を読み取り、コードを取得し、フラグを作成し、ルールを追加し、有効化する)。

### 実験

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: サーバーの登録

サーバーをユーザープロファイル用に登録 (すべてのプロジェクトで利用可能) するには、ターミナルを開いて次のコマンドを実行します。

```bash theme={null}
claude mcp add --scope user kameleoon -- npx -y mcp-remote@0.1.37 https://mcp.kameleoon.com/mcp 35535 --static-oauth-client-metadata '{ "scope": "openid" }'
```

サーバーを現在のプロジェクトに対してのみ登録 (チーム共有用に `.mcp.json` ファイルがリポジトリに追加されます) する場合は、次を実行します。

```bash theme={null}
claude mcp add kameleoon -- npx -y mcp-remote@0.1.37 https://mcp.kameleoon.com/mcp 35535 --static-oauth-client-metadata '{ "scope": "openid" }'
```

Claude がサーバーを追加したことを確認します。

```bash theme={null}
claude mcp list
```

**期待される出力:** `kameleoon: ... - ✗ Failed to connect` (まだ認証を完了していないため、ここでの接続失敗は正常です)。

### ステップ 2: OAuth 認証の完了

同じターミナルで、ログインフローをトリガーします。

```bash theme={null}
npx -y mcp-remote@0.1.37 https://mcp.kameleoon.com/mcp 35535 --static-oauth-client-metadata '{ "scope": "openid" }'
```

1. コマンドは自動的にブラウザタブを開きます。開かない場合は、ターミナルに表示された URL をコピーして手動で開きます。
2. Kameleoon アカウントにサインインします。
3. **Authorize** をクリックします。
4. ブラウザに成功メッセージが表示されたら、ターミナルで `Ctrl+C` を押します。

接続を確認します。

```bash theme={null}
claude mcp list
```

**期待される出力:** `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 チャットに直接貼り付けると、自動的に接続できます。

```text theme={null}
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 ブロックを追加します。

```json theme={null}
"kameleoon": {
  "command": "npx",
  "args": [
    "-y",
    "mcp-remote@0.1.37",
    "https://mcp.kameleoon.com/mcp",
    "35535",
    "--static-oauth-client-metadata",
    "{ \"scope\": \"openid\" }"
  ]
}
```

## Codex 連携

### クイックセットアップ

次のセルフスタータープロンプトを Codex チャットに貼り付けます。

```text theme={null}
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` に追加します。ファイルが存在しない場合は作成してください。

```toml theme={null}
[mcp_servers.kameleoon]
command = "npx"
args = ["-y", "mcp-remote@0.1.37", "https://mcp.kameleoon.com/mcp",
        "35535", "--static-oauth-client-metadata",
        "{ \"scope\": \"openid\" }"]
```

## 接続の認証

Kameleoon MCP サーバーは OAuth を使用します。ターミナルで次のコマンドを実行して、認可フローを開始します。

```bash theme={null}
npx -y mcp-remote@0.1.37 https://mcp.kameleoon.com/mcp 35535 \
  --static-oauth-client-metadata '{ "scope": "openid" }'
```

**期待される動作:**

1. ブラウザが自動的にウィンドウを開きます。
2. Kameleoon ログインページで **Authorize** をクリックします。
3. Kameleoon がポート 35535 でローカルコールバックを完了します。
4. ターミナルでプロキシが正常に接続されたことが確認されます。

接続が成功すると、次のようなテキストが出力されます。

```
Connected to remote server using StreamableHTTPClientTransport
Local STDIO server running
Proxy established successfully between local STDIO and remote StreamableHTTPClientTransport
```

## ツール操作の確認

認証後、次のチェックを実行してツールが期待通りに動作することを確認します。

1. **利用可能なツールを一覧表示する:** `tools/list` が成功し、Kameleoon ツールを返すことを確認します。出力にツール表に記載されたツール (`experiment_code_get`、`feature_flag_list`、`feature_flag_create` など) が含まれていることを確認します。
2. **フィーチャーフラグの取得:** `feature_flag_list(siteCode = "d1alzzxd7k")` を実行します。応答が成功すると、指定したサイトのフィーチャーフラグのリストが返されます。
3. **実験結果の取得:** `experiment_results_get(experimentId = 149640)` を実行します。応答が成功すると、実験名、サイトコード、タイプ、ステータスが含まれます。

## Cursor 連携

Cursor は、MCP ツールを IDE のチャットサイドバーに直接統合するため、コーディング中に利用できます。

### オプション 1: Cursor UI で構成 (推奨)

1. Cursor の設定を開きます (macOS では `Cmd+Shift+J`、Windows/Linux では `Ctrl+Shift+J`)。
2. **Features > MCP Servers > + Add New MCP Server** に移動します。
3. **Name** を `kameleoon` に設定します。
4. **Type** を `command` に設定します。
5. 次の文字列を **Command** として入力します。
   ```bash theme={null}
   npx -y mcp-remote@0.1.37 https://mcp.kameleoon.com/mcp 35535 --static-oauth-client-metadata '{ "scope": "openid" }'
   ```
6. 構成を保存します。

### オプション 2: mcp.json で構成 (上級)

`~/.cursor/mcp.json` を開き (ファイルが存在しない場合は作成)、次のエントリを `mcpServers` オブジェクトに追加します。

```json theme={null}
{
  "mcpServers": {
    "kameleoon": {
      "command": "bash",
      "args": [
        "-lc",
        "npx -y mcp-remote@0.1.37 https://mcp.kameleoon.com/mcp 35535 --static-oauth-client-metadata '{ \"scope\": \"openid\" }'"
      ]
    }
  }
}
```

<Note>
  ファイルを手動で編集した後は、Cursor を再起動してください。
</Note>

## 開発者ワークフロー向けのサンプルプロンプト

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 `149640` and summarize the current status."
* "Pull the variation code for experiment `<experimentId>` and variation `<variationId>`."

より高度なワークフローには、次のプロンプトを試してください。

* "Inspect feature flag new\_search for site `d1alzzxd7k` and explain what environments and variations it currently has."
* "Summarize experiment `149640` for an engineer. Include status, site code, winner state, and whether any variation data is available."
* "List the active feature flags for site `d1alzzxd7k` and 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 site `d1alzzxd7k`."
* "Turn on feature flag `<featureKey>` in the staging environment for site `d1alzzxd7k`."
* "Turn off feature flag `<featureKey>` in the production environment for site `d1alzzxd7k`."

### 高度なワークフロー: エンドツーエンドの自動化

MCP サーバーの完全な機能を体験するために、包括的なシステムプロンプトを使用します。次の例は、勝ったバリエーションコードを React コンポーネントに変換する方法を示しており、主に React アプリケーション向けです。AI エージェントに、勝った結果の取得から、新しいフィーチャーフラグの背後にゲートされた本番対応のネイティブコードの生成、そしてロールアウトと検証まで、実装ライフサイクル全体を MCP ツールで処理するよう指示します。

次のプロンプトを AI アシスタントに貼り付けます。

```text theme={null}
You are integrating a Kameleoon A/B experiment into a production codebase by converting a Kameleoon PBX variation into maintainable native React code.

Context

- Experiment ID: 373001
- Mode: strict_winner_only (default) or manual_variation_conversion (Fallback variation: 1266752)

Rules

- 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 calls, MutationObserver instances, or similar direct DOM APIs).
- 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.

Workflow steps

1. Get experiment results (experiment_results_get).
2. Decide integration:
   - Mode A (default: strict_winner_only): Proceed only if winner.status == "clear_winner".
   - Mode B (manual): Use the fallback variation provided in the context.
3. Get the variation code and the prompt that was used (experiment_code_get).
4. Convert the code to React (convert JS code to React components/hooks, and CSS code to the project styling system).
5. 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.
6. Roll out and validate: add a delivery rule (feature_flag_rule_targeted_create for a staged percentage rollout, or feature_flag_rule_experimentation_create to keep measuring), enable the flag in the target environment (feature_flag_enable), and confirm the final configuration with feature_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`                                                                                                                                                    |

<Note>
  `experiment_create` は `type` の有効な値として `MVT` と `SDK_HYBRID` を受け付けますが、どちらもこのツールでは実際には作成できません。`MVT` は、API が作成時に `mvtVariations`（セクションとバリエーション）を必須としているにもかかわらず、それを指定できる MCP ツールがないため、常に失敗します。`SDK_HYBRID` は、送信するペイロードの内容に関わらず、常に「Incorrect Experiments type」エラーで失敗します。`AI`、`CLASSIC`、`DEVELOPER`、`PROMPT` はいずれも正常に作成できます。多変量テストの実験を作成するには、[多変量テストの実験を作成する](/ja/developer-docs/apis/automation-api-rest/tutorials/experiments/create-a-multivariate-experiment) の手順に従って、Automation API を直接呼び出してください。
</Note>

### フィーチャーフラグ

| ツール                                   | 必須パラメータ                                                 | オプションパラメータ                                                        |
| ------------------------------------- | ------------------------------------------------------- | ----------------------------------------------------------------- |
| `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`) です。

<Tip>
  環境固有のクエリでは、サポートされている場所で `environmentKey = "production"` または `environmentKey = "staging"` を渡します。
</Tip>

### プロンプトのヒント

* フィーチャーフラグを操作する際は、サイトコードを含めてください。
* 実験や実験結果を照会する際は、実験 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 バージョン 8.2 以降には、デフォルトで `npx` が含まれています。
