> ## 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.

# Servidor MCP de Kameleoon

> Conecte asistentes de codificación con IA directamente a su proyecto de Kameleoon para automatizar los flujos de trabajo de experimentos y feature flags.

El servidor Model Context Protocol (MCP) de Kameleoon conecta los asistentes de codificación con IA directamente a su proyecto de Kameleoon, habilitando flujos de trabajo agénticos para experimentos y feature flags. Más allá de leer configuraciones y extraer código de variaciones, su asistente de IA puede crear y gestionar experimentos, feature flags, objetivos, segmentos y reglas de targeting, así como ejecutar el ciclo de vida completo del rollout, todo desde su entorno de desarrollo. Registre y autentique el servidor para automatizar su ciclo de vida de implementación, desde una variación ganadora hasta un rollout a producción protegido por flags.

## Funcionalidades

Tras conectar el servidor, su agente de IA puede interactuar con Kameleoon para:

* Descubrir e inspeccionar experimentos, feature flags, objetivos, segmentos y reglas de targeting.
* Crear experimentos de extremo a extremo: crear, duplicar y ejecutar el ciclo de vida completo (iniciar, pausar, reanudar, detener, eliminar).
* Gestionar feature flags: crear, duplicar, eliminar, alternar por entorno y revisar el historial de cambios.
* Configurar la entrega de los flags: añadir reglas de targeting y de experimentación, variaciones personalizadas y variables tipadas.
* Crear y mantener objetivos y segmentos de audiencia, y vincular segmentos a experimentos.
* Analizar los resultados de experimentos y de experimentos asociados a feature flags, y extraer código en bruto de variaciones (JavaScript y CSS).
* Automatizar el ciclo de vida completo de la implementación, desde una variación ganadora hasta un rollout a producción protegido por flags.

### Flujo de trabajo principal: del experimento ganador a producción

El servidor MCP de Kameleoon automatiza la «última milla» de la implementación. Sin salir del IDE, puede indicar a su asistente de IA que ejecute el siguiente flujo de trabajo:

1. Recuperar los resultados del experimento e identificar la variación ganadora.
2. Extraer el código en bruto de la variación desde Kameleoon.
3. Convertir el código en código nativo listo para producción (como componentes React) alineado con la base de código existente.
4. Crear un feature flag en Kameleoon.
5. Encapsular la nueva implementación tras el feature flag.
6. Habilitar y validar la funcionalidad en producción.

## Uso de tokens y consideraciones sobre el plan

Conectar el servidor MCP de Kameleoon a un asistente de IA añade una sobrecarga pequeña y constante: los esquemas de herramientas que describen las acciones disponibles. Esta sobrecarga se mantiene estable sin importar el plan con el que funcione el asistente.

El costo en tokens de un flujo de trabajo proviene del trabajo en sí, no de la conexión. Los siguientes factores determinan el uso:

* La cantidad de datos que recupera un flujo de trabajo, como configuraciones completas de experimentos, código de variaciones o historiales de actividad.
* La cantidad de código que el asistente genera o convierte, por ejemplo al transponer una variación ganadora a código nativo de la aplicación.
* El número de sitios o marcas que abarca un único flujo de trabajo. Duplicar y auditar experimentos en tres sitios consume proporcionalmente más tokens que ejecutar la misma operación en un solo sitio.
* La amplitud con la que delimite un único prompt. Una comprobación acotada a un solo sitio consume mucho menos que una solicitud abierta para revisar todos los experimentos de todos los sitios.

Antes de comprometer a su equipo con un plan de asistente de IA específico, delimite sus flujos de trabajo previstos: cuántos sitios o marcas abarcan, con qué frecuencia los ejecuta, y si incluyen pasos de recuperación masiva de datos o generación de código. Los flujos de trabajo recurrentes y multisitio necesitan un plan con una asignación de uso o una ventana de contexto mayor que un plan pensado para prompts ocasionales de un solo sitio. Consulte la documentación del plan de su proveedor de asistente de IA para conocer sus límites de uso específicos y el tamaño de la ventana de contexto.

## Herramientas disponibles

El servidor expone las herramientas que se indican a continuación, agrupadas por área. Cada herramienta se corresponde con una única acción bien delimitada, de modo que puede combinarlas en flujos de trabajo más amplios (por ejemplo: leer resultados, extraer código, crear un flag, añadir una regla y habilitarlo).

### Experimentos

Cree, inspeccione y ejecute tests A/B (experimentos web).

| Herramienta                   | Descripción                                                                                                                          | Ejemplo de prompt                                                   |
| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------- |
| `experiment_list`             | Busca experimentos por nombre o ID. Devuelve resúmenes paginados (id, nombre, estado, etiquetas).                                    | "List active experiments on site `d1alzzxd7k`."                     |
| `experiment_get`              | Recupera la configuración completa de un experimento: variaciones, reparto de tráfico, objetivos y targeting.                        | "Show the configuration for experiment `149640`."                   |
| `experiment_code_get`         | Extrae el JavaScript, CSS y JSON personalizado en bruto de una variación, junto con el JS y CSS comunes compartidos del experimento. | "Pull the code for variation 1 of experiment `149640`."             |
| `experiment_results_get`      | Obtiene los resultados estadísticos: tasas de conversión por variación, significancia, intervalos de confianza y la ganadora.        | "Summarize results for experiment `149640`."                        |
| `experiment_create`           | Crea un experimento en borrador (tipo, URL base, objetivos, código común opcional).                                                  | "Create a CLASSIC experiment `Homepage hero` on site `d1alzzxd7k`." |
| `experiment_duplicate`        | Clona un experimento en un nuevo borrador, copiando variaciones, código, desviaciones y targeting.                                   | "Duplicate experiment `149640`."                                    |
| `experiment_lifecycle_update` | Gestiona el ciclo de vida: iniciar, pausar, reanudar, detener o eliminar (detener y eliminar requieren confirmación).                | "Start experiment `149640`."                                        |

### Feature flags

Cree y opere feature flags, altérnelos por entorno, y consulte su historial y resultados.

| Herramienta                           | Descripción                                                                                                                 | Ejemplo de prompt                                          |
| ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- |
| `feature_flag_list`                   | Busca feature flags por clave, nombre o ID.                                                                                 | "List all feature flags for site `d1alzzxd7k`."            |
| `feature_flag_get`                    | Recupera la configuración completa de un flag en un entorno: variaciones, variables, objetivo principal y cadena de reglas. | "Show configuration for flag `snake_game`."                |
| `feature_flag_create`                 | Crea un flag con variaciones `on` y `off` por defecto.                                                                      | "Create a flag `ui_refresh` for site `d1alzzxd7k`."        |
| `feature_flag_duplicate`              | Clona un flag existente (la copia comienza deshabilitada en todos los entornos).                                            | "Duplicate the `new_search` flag."                         |
| `feature_flag_delete`                 | Elimina permanentemente un flag y toda su configuración.                                                                    | "Delete the flag `ui_refresh`."                            |
| `feature_flag_enable`                 | Activa el interruptor maestro por entorno para que el SDK evalúe las reglas.                                                | "Enable `new_search` in production."                       |
| `feature_flag_disable`                | Desactiva el interruptor maestro por entorno (las reglas se conservan).                                                     | "Disable `new_search` in staging."                         |
| `feature_flag_activity_logs_get`      | Lee el registro de auditoría de los cambios del flag (quién cambió qué y cuándo).                                           | "Show the recent change history for our feature flags."    |
| `feature_flag_experiment_results_get` | Obtiene los resultados estadísticos de la regla de experimentación de un flag.                                              | "Get the experiment results for the rule on `new_search`." |

### Entrega de flags, variaciones y variables

Defina cómo se entrega un flag y especifique las variaciones y variables tipadas que sirve.

| Herramienta                                | Descripción                                                                                                         | Ejemplo de prompt                                       |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| `feature_flag_rule_targeted_create`        | Añade una regla de entrega segmentada: sirve una variación a un porcentaje del tráfico, con planificación opcional. | "Roll `new_search` out to 20% in production."           |
| `feature_flag_rule_experimentation_create` | Añade una regla de experimentación A/B que divide el tráfico entre variaciones con seguimiento estadístico.         | "A/B test `off` vs `on` 50/50 on `new_search`."         |
| `feature_flag_variation_create`            | Añade una variación personalizada (un estado con nombre de la funcionalidad) a un flag.                             | "Add a `variant_a` variation to `new_search`."          |
| `feature_flag_variable_create`             | Define una variable tipada (BOOLEAN, NUMBER, STRING, JSON, JS, CSS, ENUM) con un valor por defecto.                 | "Add a STRING variable `label` defaulting to `Search`." |
| `feature_flag_variation_variable_set`      | Sobrescribe el valor de una variable para una variación específica.                                                 | "Set `label` to `Find` on `variant_a`."                 |

### Objetivos

Cree y mantenga los objetivos de conversión utilizados por experimentos y flags.

| Herramienta        | Descripción                                                                                                                | Ejemplo de prompt                              |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- |
| `goal_list`        | Explora los objetivos de un sitio, con recuentos de uso en experimentos, flags y personalizaciones.                        | "List goals for site `d1alzzxd7k`."            |
| `goal_get`         | Inspecciona la configuración del tipo, etiquetas y recuentos de uso de un objetivo.                                        | "Show goal `271552`."                          |
| `goal_search`      | Busca un objetivo por una subcadena de su nombre.                                                                          | "Search goals for `checkout`."                 |
| `goal_create`      | Crea un objetivo de cualquier tipo (URL, CLICK, SCROLL, PAGE\_VIEWS, TIME\_SPENT, CUSTOM, entre otros).                    | "Create a URL goal that matches `/thank-you`." |
| `goal_update`      | Edita el nombre, descripción, etiquetas, herramientas de seguimiento o el ajuste de múltiples conversiones de un objetivo. | "Rename goal `271552` to `Signup complete`."   |
| `goal_update_type` | Cambia el tipo de un objetivo y sustituye su configuración específica de tipo (las etiquetas se conservan).                | "Change goal `271552` to a CLICK goal."        |
| `goal_delete`      | Elimina permanentemente un objetivo.                                                                                       | "Delete goal `271552`."                        |

### Segmentos

Defina e inspeccione las audiencias que segmenta.

| Herramienta      | Descripción                                                                                                                              | Ejemplo de prompt                                  |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- |
| `segment_list`   | Explora los segmentos de un sitio, con recuentos de uso.                                                                                 | "List segments for site `d1alzzxd7k`."             |
| `segment_get`    | Inspecciona el árbol de condiciones de un segmento (JSON en bruto más un resumen legible para humanos).                                  | "Show segment `200604`."                           |
| `segment_create` | Crea un segmento de audiencia a partir de un árbol de condiciones (geolocalización, dispositivo, navegador, datos personalizados y más). | "Create a segment for desktop visitors in France." |
| `segment_delete` | Elimina un segmento. Bloquea la eliminación por defecto cuando el segmento está en uso (omita la restricción con force).                 | "Delete segment `200604`."                         |

### Sitios y reglas de targeting

Descubra sus proyectos y vincule segmentos a experimentos.

| Herramienta             | Descripción                                                                                                       | Ejemplo de prompt                                 |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
| `site_list`             | Lista los sitios (proyectos) a los que tiene acceso, con el código, nombre y estado de seguimiento de cada sitio. | "List my Kameleoon sites."                        |
| `targeting_rule_list`   | Lista las reglas de targeting de un sitio.                                                                        | "List targeting rules for site `d1alzzxd7k`."     |
| `targeting_rule_get`    | Inspecciona una única regla de targeting (segmento, configuración, trigger y el experimento al que pertenece).    | "Show targeting rule `118605`."                   |
| `targeting_rule_create` | Vincula un segmento a un experimento para controlar quién participa.                                              | "Target experiment `149640` to segment `200604`." |

## Integración con Claude Code

### Paso 1: Registrar el servidor

Para registrar el servidor en su perfil de usuario (haciéndolo disponible en todos los proyectos), abra una terminal y ejecute el siguiente comando:

```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" }'
```

Para registrar el servidor únicamente para el proyecto actual (lo que añade un archivo `.mcp.json` a su repositorio para compartirlo con el equipo), ejecute:

```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" }'
```

Verifique que Claude ha añadido el servidor:

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

**Salida esperada:** `kameleoon: ... - ✗ Failed to connect` (Un fallo de conexión en este punto es normal porque aún no ha completado la autenticación).

### Paso 2: Completar la autenticación OAuth

En la misma terminal, inicie el flujo de inicio de sesión:

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

1. El comando abre automáticamente una pestaña del navegador. Si no lo hace, copie la URL impresa en la terminal y ábrala manualmente.
2. Inicie sesión en su cuenta de Kameleoon.
3. Haga clic en **Authorize**.
4. Cuando el navegador muestre un mensaje de éxito, pulse `Ctrl+C` en su terminal.

Verifique la conexión:

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

**Salida esperada:** `kameleoon: ... - ✓ Connected`

### Paso 3: Iniciar una nueva sesión de Claude Code

Claude Code hace que las herramientas de los servidores MCP recién añadidos estén disponibles solo en las sesiones que inicie después de registrar el servidor. Cierre su chat actual de Claude Code y abra uno nuevo.

### Paso 4: Verificar la conexión

En una nueva conversación de Claude Code, pruebe los siguientes prompts:

* "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."

### Resolución de problemas en Claude

| Síntoma                                              | Causa                                                 | Solución                                                               |
| ---------------------------------------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------- |
| El navegador no se abre.                             | Falló el lanzamiento automático.                      | Copie la URL de la terminal y ábrala manualmente.                      |
| Conexión rechazada en el puerto 35535.               | El puerto está en uso.                                | Ejecute `netstat -ano \| findstr :35535`, mate el proceso y reintente. |
| Error al conectar tras OAuth.                        | El token no persistió.                                | Vuelva a ejecutar el comando del Paso 2 para refrescar su token.       |
| Las herramientas no aparecen en Claude.              | La sesión se inició antes de añadir el servidor.      | Inicie una nueva conversación de Claude Code.                          |
| La clave `mcpServers` se rechaza en `settings.json`. | Archivo incorrecto; Claude Code no utiliza esa clave. | Use el comando `claude mcp add` en su lugar.                           |
| Error de autenticación tras un largo periodo.        | El token OAuth ha caducado.                           | Vuelva a ejecutar el comando del Paso 2.                               |

## Integración con Antigravity

### Configuración rápida

Pegue el siguiente prompt de inicio automático directamente en su chat de Antigravity para conectarse automáticamente:

```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.
```

### Configuración manual

Edite el archivo de configuración en `~/.gemini/antigravity/mcp_config.json` y añada el siguiente bloque 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\" }"
  ]
}
```

## Integración con Codex

### Configuración rápida

Pegue el siguiente prompt de inicio automático en su chat de 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.
```

### Configuración manual

Añada el siguiente bloque a `~/.codex/config.toml`. Cree el archivo si no existe:

```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\" }"]
```

## Autenticar la conexión

El servidor MCP de Kameleoon utiliza OAuth. Ejecute el siguiente comando en su terminal para iniciar el flujo de autorización:

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

**Comportamiento esperado:**

1. El navegador abre automáticamente una ventana.
2. Haga clic en **Authorize** en la página de inicio de sesión de Kameleoon.
3. Kameleoon completa la callback local en el puerto 35535.
4. La terminal confirma que el proxy se ha conectado correctamente.

Una conexión exitosa muestra una salida similar a la siguiente:

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

## Verificar las operaciones de las herramientas

Tras autenticarse, ejecute las siguientes comprobaciones para confirmar que las herramientas funcionan como se espera:

1. **Listar las herramientas disponibles:** Confirme que `tools/list` se ejecuta correctamente y devuelve las herramientas de Kameleoon. Asegúrese de que la salida incluye las herramientas listadas en la tabla de herramientas, como `experiment_code_get`, `feature_flag_list` y `feature_flag_create`.
2. **Recuperar feature flags:** Ejecute `feature_flag_list(siteCode = "d1alzzxd7k")`. Una respuesta exitosa devuelve una lista de feature flags para el sitio especificado.
3. **Recuperar resultados de experimentos:** Ejecute `experiment_results_get(experimentId = 149640)`. Una respuesta exitosa incluye el nombre del experimento, el código del sitio, el tipo y el estado.

## Integración con Cursor

Cursor integra las herramientas MCP directamente en la barra lateral del chat del IDE, lo que las hace disponibles mientras programa.

### Opción 1: Configurar mediante la interfaz de Cursor (recomendado)

1. Abra la configuración de Cursor (`Cmd+Shift+J` en macOS, `Ctrl+Shift+J` en Windows/Linux).
2. Navegue a **Features > MCP Servers > + Add New MCP Server**.
3. Establezca **Name** en `kameleoon`.
4. Establezca **Type** en `command`.
5. Introduzca la siguiente cadena como **Command**:
   ```bash theme={null}
   npx -y mcp-remote@0.1.37 https://mcp.kameleoon.com/mcp 35535 --static-oauth-client-metadata '{ "scope": "openid" }'
   ```
6. Guarde la configuración.

### Opción 2: Configurar mediante mcp.json (avanzado)

Abra `~/.cursor/mcp.json` (cree el archivo si no existe) y añada la siguiente entrada al objeto `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>
  Reinicie Cursor después de editar el archivo manualmente.
</Note>

## Ejemplos de prompts para flujos de trabajo de desarrollador

Tras conectar el servidor MCP de Kameleoon, utilice prompts como los siguientes en su 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>`."

Para flujos de trabajo más avanzados, pruebe los siguientes prompts:

* "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`."

### Flujo de trabajo avanzado: automatización de extremo a extremo

Para experimentar todas las capacidades del servidor MCP, utilice un prompt de sistema completo. El siguiente ejemplo muestra cómo trasladar el código de la variación ganadora a componentes React, lo que está pensado principalmente para aplicaciones React. Indica al agente de IA que gestione todo el ciclo de vida de la implementación, desde la recuperación de los resultados ganadores hasta la generación de código nativo listo para producción protegido tras un nuevo feature flag, y posteriormente su despliegue y validación, todo ello mediante las herramientas MCP.

Pegue el siguiente prompt en su asistente de IA:

```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.
```

## Referencia de parámetros de las herramientas

Utilice los nombres exactos de las herramientas y de los parámetros devueltos por `tools/list`. El esquema MCP en producción admite los siguientes parámetros.

### Experimentos

| Herramienta                   | Parámetros obligatorios                           | Parámetros opcionales                                                                                                                                                                                        |
| ----------------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `experiment_list`             | Ninguno                                           | `siteCode`, `filterQuery`, `page`, `perPage`, `sortField`, `sortOrder`                                                                                                                                       |
| `experiment_get`              | `experimentId`                                    | Ninguno                                                                                                                                                                                                      |
| `experiment_code_get`         | `experimentId`, `variationId`                     | Ninguno                                                                                                                                                                                                      |
| `experiment_results_get`      | `experimentId`                                    | Ninguno                                                                                                                                                                                                      |
| `experiment_create`           | `payload` (`siteCode`, `name`, `type`, `baseURL`) | `payload`: `mainGoalId`, `goals`, `tags`, `description`, `commonJavaScriptCode`, `commonCssCode`, `trafficAllocationMethod`, `collectingDataEnabled`, `multipleTestingCorrection`, `executeCodeForReference` |
| `experiment_duplicate`        | `experimentId`                                    | Ninguno                                                                                                                                                                                                      |
| `experiment_lifecycle_update` | `experimentId`, `status`                          | `confirm` (obligatorio para `stopped` y `deleted`), `reason`                                                                                                                                                 |

<Note>
  `experiment_create` acepta `MVT` y `SDK_HYBRID` como valores válidos de `type`, pero ninguno de los dos se puede crear realmente con esta herramienta. `MVT` siempre falla porque la API exige `mvtVariations` (secciones y variaciones) en la creación, y ninguna herramienta MCP expone ese campo. `SDK_HYBRID` siempre falla con un error "Incorrect Experiments type", con independencia del payload enviado. `AI`, `CLASSIC`, `DEVELOPER` y `PROMPT` se crean todos correctamente. Para crear una prueba multivariante, llame directamente a la Automation API siguiendo los pasos de [Crear una prueba multivariante](/es/developer-docs/apis/automation-api-rest/tutorials/experiments/create-a-multivariate-experiment).
</Note>

### Feature flags

| Herramienta                           | Parámetros obligatorios                                    | Parámetros opcionales                                                  |
| ------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------------------- |
| `feature_flag_list`                   | Ninguno                                                    | `siteCode`, `filterQuery`, `page`, `perPage`, `sortField`, `sortOrder` |
| `feature_flag_get`                    | `featureKey`, `siteCode`                                   | `environmentKey` (`*` para todos los entornos)                         |
| `feature_flag_create`                 | `siteCode`, `featureKey`, `name`                           | `description`                                                          |
| `feature_flag_duplicate`              | `featureKey`, `siteCode`                                   | Ninguno                                                                |
| `feature_flag_delete`                 | `featureKey`, `siteCode`                                   | Ninguno                                                                |
| `feature_flag_enable`                 | `featureKey`, `siteCode`, `environmentKey`                 | Ninguno                                                                |
| `feature_flag_disable`                | `featureKey`, `siteCode`, `environmentKey`                 | Ninguno                                                                |
| `feature_flag_activity_logs_get`      | Ninguno                                                    | `type`, `sortKey` (`timestamp`), `sortOrder`, `page`, `perPage`        |
| `feature_flag_experiment_results_get` | `featureKey`, `siteCode`, `environmentKey`, `experimentId` | Ninguno                                                                |

### Entrega de flags, variaciones y variables

| Herramienta                                | Parámetros obligatorios                                                                                                              | Parámetros opcionales |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | --------------------- |
| `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`                                                                            | Ninguno               |
| `feature_flag_variable_create`             | `siteCode`, `featureKey`, `variableKey`, `variableType`, `defaultValue`                                                              | Ninguno               |
| `feature_flag_variation_variable_set`      | `siteCode`, `featureKey`, `variationKey`, `variableKey`, `value`                                                                     | Ninguno               |

### Objetivos

| Herramienta        | Parámetros obligatorios                                          | Parámetros opcionales                                                                                                                                                                               |
| ------------------ | ---------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `goal_list`        | Ninguno                                                          | `siteCode`, `page`, `perPage`                                                                                                                                                                       |
| `goal_get`         | `goalId`                                                         | Ninguno                                                                                                                                                                                             |
| `goal_search`      | `query`                                                          | `siteCode`, `page`, `perPage`                                                                                                                                                                       |
| `goal_create`      | `payload` (`name`, `siteCode`, `type`, `hasMultipleConversions`) | `payload`: parámetros específicos del tipo (`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`                                                 | parámetros específicos del tipo                                                                                                                                                                     |
| `goal_delete`      | `goalId`                                                         | Ninguno                                                                                                                                                                                             |

### Segmentos

| Herramienta      | Parámetros obligatorios | Parámetros opcionales                  |
| ---------------- | ----------------------- | -------------------------------------- |
| `segment_list`   | Ninguno                 | `siteCode`, `query`, `page`, `perPage` |
| `segment_get`    | `segmentId`             | Ninguno                                |
| `segment_create` | `name`, `siteCode`      | `conditionDataTree`, `description`     |
| `segment_delete` | `segmentId`             | `force`                                |

### Sitios y reglas de targeting

| Herramienta             | Parámetros obligatorios                            | Parámetros opcionales                                                           |
| ----------------------- | -------------------------------------------------- | ------------------------------------------------------------------------------- |
| `site_list`             | Ninguno                                            | Ninguno                                                                         |
| `targeting_rule_list`   | Ninguno                                            | `siteCode`, `page`, `perPage`                                                   |
| `targeting_rule_get`    | `targetingRuleId`                                  | Ninguno                                                                         |
| `targeting_rule_create` | `segmentConfiguration`, `siteCode`, `experimentId` | `segmentId`, `triggerConfiguration`, `triggerId`, `targetingConfigurationParam` |

**Valores de enum aceptados:** `experiment_lifecycle_update.status` es `started`, `resumed`, `paused`, `stopped` o `deleted`. El `type` de experimento es `AI`, `CLASSIC`, `DEVELOPER`, `MVT`, `PROMPT` o `SDK_HYBRID`. El `type` de objetivo es `CLICK`, `CUSTOM`, `SCROLL`, `PAGE_VIEWS`, `URL`, `TIME_SPENT`, `RETENTION_RATE`, `WAREHOUSE` o `RATIO_METRICS`. `variableType` es `BOOLEAN`, `NUMBER`, `STRING`, `JSON`, `JS`, `CSS` o `ENUM`. `trafficAllocations` es una cadena `variationKey:percentage` separada por comas cuya suma es 100 (por ejemplo, `off:50,on:50`). `releaseDateTime` es una fecha y hora local ISO-8601 sin offset (por ejemplo, `2026-07-01T09:00:00`) y `timeZone` es una zona IANA (por ejemplo, `Europe/Paris` o `UTC`).

<Tip>
  Para consultas específicas de un entorno, pase `environmentKey = "production"` o `environmentKey = "staging"` cuando esté soportado.
</Tip>

### Consejos de prompting

* Incluya el código del sitio cuando trabaje con feature flags.
* Incluya el ID del experimento cuando consulte experimentos o sus resultados.
* Incluya tanto `experimentId` como `variationId` cuando solicite código de una variación.
* Nombre explícitamente el entorno objetivo cuando solicite al agente que habilite o deshabilite un feature flag.
* Solicite un resumen en lenguaje natural si desea que su agente de IA interprete la respuesta MCP en lugar de limitarse a recuperar los datos en bruto.

## Resolución general de problemas

### El puerto 35535 ya está en uso

Si la autenticación falla con un error `EADDRINUSE`, otro proceso ya está escuchando en el puerto de callback de OAuth.

* **Causa:** Un proceso `mcp-remote` obsoleto sigue activo de un intento de autenticación anterior.
* **Solución:** Detenga el proceso obsoleto que está usando el puerto 35535 y vuelva a ejecutar el comando OAuth.

### El servidor MCP no aparece en el chat de Codex

Es posible que Codex no recargue en caliente los servidores MCP recién añadidos en un hilo ya en ejecución.

* **Solución:** Refresque Codex o inicie una nueva sesión tras actualizar `config.toml`.

### El flujo del navegador no se completa

Si la ventana del navegador de OAuth se abre pero la autorización no finaliza:

* Confirme que hizo clic en el botón **Authorize** en la página de inicio de sesión de Kameleoon.
* Compruebe que la configuración de su navegador o sistema no bloquea los callbacks a `localhost`.
* Abra la URL de callback manualmente si su navegador no consigue lanzarla automáticamente.

### Los agentes headless o remotos fallan al autenticarse

Los agentes remotos o headless (como Codex alojado en la nube) no pueden completar el paso de autorización basado en navegador.

* **Solución:** Utilice en su lugar una versión de escritorio de su herramienta.

### Comando npx no encontrado

Si el comando falla con un error «not found», asegúrese de que `npx` esté disponible en el path de su sistema. Las versiones 8.2 y posteriores de Node.js incluyen `npx` por defecto.
