---
title: "Optimizely Feature Experimentation MCP server - actionlake"
description: "Give Claude 170 Optimizely Feature Experimentation actions through one MCP server: groups. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/optimizely-feature-experimentation
updated: 2026-10-23
---

Connectors · Developer & infrastructure

# Optimizely Feature Experimentation MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Optimizely Feature Experimentation and the rest of your systems. It gives your agent 170 Optimizely Feature Experimentation actions (83 reads, 67 writes and 20 that wait for a confirmation) and holds the Optimizely Feature Experimentation credential itself, so the agent never does. It paces Optimizely Feature Experimentation's limits and records every call.

[Connect Optimizely Feature Experimentation free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

`claude mcp add --transport http actionlake https://connect.actionlake.com/mcp`

the first call

```
do {
  action: "optimizely_feature_experimentation.projects.list_projects",
  intent: "check which Optimizely Feature Experimentation account is connected"
}
# List Projects · read · 1 upstream call
```

- 170 actions in one signed file
- 83 read look, never change
- 67 write create and update
- 20 wait for a yes destructive, confirmed first

Set up

## Connect Optimizely Feature Experimentation in three steps.

1. 01
   ### Add actionlake to Claude.
   Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
   `https://connect.actionlake.com/mcp`
2. 02
   ### Connect Optimizely Feature Experimentation.
   Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
   - `access_token` Optimizely personal access token (Profile > API Access > Generate New Token in app.optimizely.com), or an OAuth 2.0…
   ```
   account { op: "connections.requirements", service: "optimizely_feature_experimentation" }
   # free: exactly what to paste, and what is found for you
   ```
3. 03
   ### Make the first call. Check before a write.
   Ask in plain words; Claude picks the action. Before anything changes, `check` validates the call and prices it, for free.
   ```
   do    { action: "optimizely_feature_experimentation.projects.list_projects" }
   # list projects · read · 1 upstream call
   check { action: "optimizely_feature_experimentation.projects.create_project", input: { … } }
   # free: inputs, permissions, cost and confirmations, nothing sent
   ```

Optimizely Feature Experimentation at a glance

**Sign-in**

Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.

**You provide**

`access_token`

**Limits we pace to**

2 calls a second and 120 a minute, per connection

**API covered**

Optimizely Feature Experimentation (Flags) API v1, REST API v2, Flags Scheduling API and Permission Service (OpenAPI 3)`api.optimizely.com`

**Built from**

Optimizely Feature Experimentation's documentation, read 23 October 2026[docs.developers.optimizely.com](https://docs.developers.optimizely.com/feature-experimentation/reference/list_flags) [api.optimizely.com](https://api.optimizely.com/v2/swagger.json) [docs.developers.optimizely.com](https://docs.developers.optimizely.com/feature-experimentation/reference)

**Service file**

Version 1.0.0, signed (Ed25519)

**Cached reads**

79 of 83 reads, for up to 5 minutes; a write clears what it affects

**Shared entities**

2, so ask can line Optimizely Feature Experimentation up with your other systems

**Data**

Processed and stored in Sydney, Australia. No US region yet

Capabilities

## What an AI agent can do in Optimizely Feature Experimentation.

170 actions in 38 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

- **83** read look, never change
- **67** write create and update
- **20** destructive wait for a confirmation

1. ### Groups
   12
   4 read · 6 write · 2 destructive
   Create an Exclusion Group · Create an Exclusion Group · List Exclusion Groups · List Exclusion Groups
2. ### Holdouts
   11
   5 read · 4 write · 2 destructive
   Create a new Holdout · Create a cross-project Holdout · Fetch experiments associated with a holdout · List Holdouts for a project
3. ### Change approvals
   8
   4 read · 4 write · 0 destructive
   Create an Approval for a flag in an environment · List Approvals · List Environment Approval Settings · Archive Approval
4. ### Experiments
   8
   5 read · 2 write · 1 destructive
   Create an Experiment · List Experiments · Read an Experiment · Update an Experiment
5. ### Flags
   8
   3 read · 4 write · 1 destructive
   List Flags · Create a New Flag · Fetch a Single Flag · Delete a Flag
6. ### Variations
   8
   3 read · 4 write · 1 destructive
   Brainstorm variations definitions using AI · Create a New Variation · List Variations · Archive Variations
7. ### Environments
   7
   4 read · 2 write · 1 destructive
   Get Environments by Project · Create an Environment · Read an Environment · Update an Environment
8. ### Reports
   7
   3 read · 2 write · 2 destructive
   List Reports · Archive Reports · Fetch a Single Report · Get Experiment Result's Report

**30 more areas · 101 actions**

- Approval policies **6**
- Change requests **6**
- Variable definitions **6**
- Attributes **5**
- Custom fields **5**
- Events **5**
- Features **5**
- List attributes **5**
- Rulesets **5**
- Scheduled jobs **5**
- Team management **5**
- Webhooks **5**
- Audiences **4**
- Entity **4**
- Projects **4**
- Rules **4**
- Collaborators **3**
- Subject access requests **3**
- Export credentials **2**
- Impressions usage **2**
- Scheduled change **2**
- Scheduled changes **2**
- Attribution **1**
- Change history **1**
- Changes **1**
- Duplicate flags **1**
- Experiment summary **1**
- Plan **1**
- Search **1**
- User **1**

Top actions

## The Optimizely Feature Experimentation API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 23 of Optimizely Feature Experimentation's 23 action names are shared with at least one other connector, so an agent learns them once.

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `optimizely_feature_experimentation.projects.list_projects` List Projects | List Projects. | read | `work.project.list` 109 connectors |
| `optimizely_feature_experimentation.projects.create_project` Create a Project | Create a Project. | write | `work.project.create` 102 connectors |
| `optimizely_feature_experimentation.environments.list_environments_v2` Get Environments by Project | Get Environments by Project. | read | `devops.environment.list` 24 connectors |
| `optimizely_feature_experimentation.environments.create_environment` Create an Environment | Create an Environment. | write | `devops.environment.create` 18 connectors |
| `optimizely_feature_experimentation.flags.list_flags` List Flags | List Flags. | read | `devops.feature_flag.list` 12 connectors |
| `optimizely_feature_experimentation.flags.create_flag` Create a New Flag | Create a New Flag. | write | `devops.feature_flag.create` 8 connectors |
| `optimizely_feature_experimentation.collaborators.list_collaborators` List Collaborators | List Collaborators. | read | `identity.user.list` 474 connectors |
| `optimizely_feature_experimentation.flags.delete_flag` Delete a Flag | Delete a Flag. | destructive | `devops.feature_flag.delete` 9 connectors |
| `optimizely_feature_experimentation.webhooks.create_webhook` Create a Webhook | Create a Webhook. | write | `automation.webhook.create` 209 connectors |
| `optimizely_feature_experimentation.webhooks.list_webhooks` Get Webhooks by Project | Get Webhooks by Project. | read | `automation.webhook.list` 202 connectors |
| `optimizely_feature_experimentation.user.get_me` Get current User information | Get current User information. | read | `identity.current_user.get` 307 connectors |
| `optimizely_feature_experimentation.experiments.create_experiment` Create an Experiment | Create an Experiment. | write | `analytics.experiment.create` 12 connectors |

Try it

## Prompts to paste into Claude.

Each one names the Optimizely Feature Experimentation actions it will call, so you know what it reads and what it changes before you send it.

1. Read read
   Give me a one-line status for every active Optimizely Feature Experimentation project.
   calls `optimizely_feature_experimentation.projects.list_projects`
2. Write write
   Create a Project in Optimizely Feature Experimentation. Show me exactly what you will send before you save it.
   calls `optimizely_feature_experimentation.projects.create_project`

Governance for Optimizely Feature Experimentation

## Destructive actions wait for a yes.

20 Optimizely Feature Experimentation actions are destructive. These are all of them:

- Delete a Flag `optimizely_feature_experimentation.flags.delete_flag`
- Delete a Webhook `optimizely_feature_experimentation.webhooks.delete_webhook`
- Archive a Custom Event `optimizely_feature_experimentation.events.delete_custom_event`
- Archive an Attribute `optimizely_feature_experimentation.attributes.delete_attribute`
- Delete a Variation `optimizely_feature_experimentation.variations.delete_variation`
- Archive an Experiment `optimizely_feature_experimentation.experiments.delete_experiment`
- Archive an Environment `optimizely_feature_experimentation.environments.delete_environment`
- Delete an Exclusion Group `optimizely_feature_experimentation.groups.delete_group`
- Delete a Report `optimizely_feature_experimentation.reports.delete_report`
- Reset the results for a Report `optimizely_feature_experimentation.reports.reset_results`
- Archive an Exclusion Group `optimizely_feature_experimentation.groups.delete_group_v2`
- Archive a Feature `optimizely_feature_experimentation.features.delete_feature`
- Delete a Holdout `optimizely_feature_experimentation.holdouts.delete_holdout`
- Delete Team `optimizely_feature_experimentation.team_management.delete_team`
- Archive a Scheduled Job `optimizely_feature_experimentation.scheduled_jobs.delete_scheduled_job`
- Delete a cross-project Holdout `optimizely_feature_experimentation.holdouts.delete_holdout_cross_project`
- Archive a List Attribute `optimizely_feature_experimentation.list_attributes.archive_list_attribute`
- Delete an approval policy `optimizely_feature_experimentation.approval_policies.delete_approval_policy`
- Delete a Scheduled Change for a flag in an environment `optimizely_feature_experimentation.scheduled_change.delete_scheduled_change`
- Delete a Variable Definition `optimizely_feature_experimentation.variable_definitions.delete_variable_definition`

A destructive action runs only with `confirm: true`. Under the `human` policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

do optimizely_feature_experimentation.flags.delete_flag confirm_policy: **human**

Delete a Flag?

**intent:** the user asked me to delete a Flag

run suspended · waiting for a named person · key _optimizely-feature-experimentation-agent_ cannot confirm itself

In the console, or from an emailed signed link.

a key for this connector

```
account {
  op: "keys.create", name: "optimizely-feature-experimentation-agent",
  allowed_actions: ["optimizely_feature_experimentation.*"], cap_calls: 2000,
  confirm_policy: "human_for_writes",
  approval_rules: [
    { match: "optimizely_feature_experimentation.flags.delete_flag", approver: "lead@example.com" },
    { match: "optimizely_feature_experimentation.webhooks.delete_webhook", approver: "lead@example.com" },
    { match: "optimizely_feature_experimentation.events.delete_custom_event", approver: "lead@example.com" }
  ]
}
```

Illustrative. Scoped to Optimizely Feature Experimentation only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

## What Optimizely Feature Experimentation costs on actionlake.

Every Optimizely Feature Experimentation action is one upstream call, the only thing actionlake bills. Searching, `check`, `cost`, `account` and any call Optimizely Feature Experimentation refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

- 1 upstream call per action all 170 Optimizely Feature Experimentation actions
- 170 actions page each page of a long list is one call
- 79 reads can be cached a cache hit costs nothing
- 100,000 calls a month, free paid plans from US$49 a month for 250,000

[See pricing](https://actionlake.com/pricing)

Action index

## Every Optimizely Feature Experimentation action.

170 actions by area: the id your agent calls, what it does, and its effect.

**Groups 12**

- `optimizely_feature_experimentation.groups.archive_groups` Archive Exclusion Groups write
- `optimizely_feature_experimentation.groups.create_group` Create an Exclusion Group write
- `optimizely_feature_experimentation.groups.create_group_v2` Create an Exclusion Group write
- `optimizely_feature_experimentation.groups.delete_group` Delete an Exclusion Group destructive
- `optimizely_feature_experimentation.groups.delete_group_v2` Archive an Exclusion Group destructive
- `optimizely_feature_experimentation.groups.fetch_group` Fetch a Single Exclusion Group read
- `optimizely_feature_experimentation.groups.get_group` Get an Exclusion Group read
- `optimizely_feature_experimentation.groups.list_groups` List Exclusion Groups read
- `optimizely_feature_experimentation.groups.list_groups_v2` List Exclusion Groups read
- `optimizely_feature_experimentation.groups.unarchive_groups` Unarchive Exclusion Groups write
- `optimizely_feature_experimentation.groups.update_group` Update an Exclusion Group write
- `optimizely_feature_experimentation.groups.update_groups` Update Exclusion Groups write

**Holdouts 11**

- `optimizely_feature_experimentation.holdouts.create_holdout` Create a new Holdout write
- `optimizely_feature_experimentation.holdouts.create_holdout_cross_project` Create a cross-project Holdout write
- `optimizely_feature_experimentation.holdouts.delete_holdout` Delete a Holdout destructive
- `optimizely_feature_experimentation.holdouts.delete_holdout_cross_project` Delete a cross-project Holdout destructive
- `optimizely_feature_experimentation.holdouts.fetch_holdout` Fetch a single Holdout read
- `optimizely_feature_experimentation.holdouts.fetch_holdout_cross_project` Fetch a cross-project Holdout read
- `optimizely_feature_experimentation.holdouts.fetch_holdout_experiments` Fetch experiments associated with a holdout read
- `optimizely_feature_experimentation.holdouts.list_holdouts` List Holdouts for a project read
- `optimizely_feature_experimentation.holdouts.list_holdouts_cross_project` List holdouts across projects read
- `optimizely_feature_experimentation.holdouts.update_holdout_cross_project` Update a cross-project Holdout write
- `optimizely_feature_experimentation.holdouts.update_holdouts` Update a Holdout using JSON Patch write

**Change approvals 8**

- `optimizely_feature_experimentation.change_approvals.archive_approval` Archive Approval write
- `optimizely_feature_experimentation.change_approvals.create_approval` Create an Approval for a flag in an environment write
- `optimizely_feature_experimentation.change_approvals.get_approval` Get Approval read
- `optimizely_feature_experimentation.change_approvals.get_environment_approval_settings` Get Environment Approval Settings read
- `optimizely_feature_experimentation.change_approvals.list_approvals` List Approvals read
- `optimizely_feature_experimentation.change_approvals.list_environment_approval_settings` List Environment Approval Settings read
- `optimizely_feature_experimentation.change_approvals.update_approval_status` Update approval status for a flag in an environment write
- `optimizely_feature_experimentation.change_approvals.update_environment_approval_settings` Update Environment Approval Settings write

**Experiments 8**

- `optimizely_feature_experimentation.experiments.create_experiment` Create an Experiment write
- `optimizely_feature_experimentation.experiments.delete_experiment` Archive an Experiment destructive
- `optimizely_feature_experimentation.experiments.get_experiment` Read an Experiment read
- `optimizely_feature_experimentation.experiments.get_experiment_results` Get Experiment results read
- `optimizely_feature_experimentation.experiments.get_experiment_results_share_link` Get a sharable link for the experiment's results page read
- `optimizely_feature_experimentation.experiments.get_experiment_timeseries` Get Experiment results time series read
- `optimizely_feature_experimentation.experiments.list_experiments` List Experiments read
- `optimizely_feature_experimentation.experiments.update_experiment` Update an Experiment write

**Flags 8**

- `optimizely_feature_experimentation.flags.archive_flags` Archive Flags write
- `optimizely_feature_experimentation.flags.create_flag` Create a New Flag write
- `optimizely_feature_experimentation.flags.delete_flag` Delete a Flag destructive
- `optimizely_feature_experimentation.flags.fetch_flag` Fetch a Single Flag read
- `optimizely_feature_experimentation.flags.fetch_flag_status` Get Flag Status read
- `optimizely_feature_experimentation.flags.list_flags` List Flags read
- `optimizely_feature_experimentation.flags.unarchive_flags` Unarchive Flags write
- `optimizely_feature_experimentation.flags.update_flags` Update Flags write

**Variations 8**

- `optimizely_feature_experimentation.variations.archive_variations` Archive Variations write
- `optimizely_feature_experimentation.variations.brainstorm_variations` Brainstorm variations definitions using AI read
- `optimizely_feature_experimentation.variations.create_variation` Create a New Variation write
- `optimizely_feature_experimentation.variations.delete_variation` Delete a Variation destructive
- `optimizely_feature_experimentation.variations.fetch_variation` Fetch a Single Variation read
- `optimizely_feature_experimentation.variations.list_variations` List Variations read
- `optimizely_feature_experimentation.variations.unarchive_variations` Unarchive Variations write
- `optimizely_feature_experimentation.variations.update_variations` Update Variations write

**Environments 7**

- `optimizely_feature_experimentation.environments.create_environment` Create an Environment write
- `optimizely_feature_experimentation.environments.delete_environment` Archive an Environment destructive
- `optimizely_feature_experimentation.environments.get_datafile` Read the datafile of an Environment read
- `optimizely_feature_experimentation.environments.get_environment` Read an Environment read
- `optimizely_feature_experimentation.environments.list_environments` List Environments read
- `optimizely_feature_experimentation.environments.list_environments_v2` Get Environments by Project read
- `optimizely_feature_experimentation.environments.update_environment` Update an Environment write

**Reports 7**

- `optimizely_feature_experimentation.reports.archive_reports` Archive Reports write
- `optimizely_feature_experimentation.reports.delete_report` Delete a Report destructive
- `optimizely_feature_experimentation.reports.fetch_report` Fetch a Single Report read
- `optimizely_feature_experimentation.reports.get_experiment_report` Get Experiment Result's Report read
- `optimizely_feature_experimentation.reports.list_reports` List Reports read
- `optimizely_feature_experimentation.reports.reset_results` Reset the results for a Report destructive
- `optimizely_feature_experimentation.reports.unarchive_reports` Unarchive Reports write

**Approval policies 6**

- `optimizely_feature_experimentation.approval_policies.create_approval_policy` Create an approval policy write
- `optimizely_feature_experimentation.approval_policies.delete_approval_policy` Delete an approval policy destructive
- `optimizely_feature_experimentation.approval_policies.get_approval_policy` Get an approval policy read
- `optimizely_feature_experimentation.approval_policies.list_approval_policies` List approval policies for an environment read
- `optimizely_feature_experimentation.approval_policies.list_project_policies` List all approval policies for a project across all environments read
- `optimizely_feature_experimentation.approval_policies.update_approval_policy` Update an approval policy write

**Change requests 6**

- `optimizely_feature_experimentation.change_requests.archive_change_request` Archive a change request write
- `optimizely_feature_experimentation.change_requests.create_change_request` Create a change request for a flag in an environment write
- `optimizely_feature_experimentation.change_requests.get_change_request_details` Get change request details read
- `optimizely_feature_experimentation.change_requests.list_change_requests` List change requests for a flag in an environment read
- `optimizely_feature_experimentation.change_requests.list_project_change_requests` List project change requests read
- `optimizely_feature_experimentation.change_requests.update_change_request_status` Update the status of a change request write

**Variable definitions 6**

- `optimizely_feature_experimentation.variable_definitions.brainstorm_variable_definitions` Brainstorm variable definitions using AI read
- `optimizely_feature_experimentation.variable_definitions.create_variable_definition` Create Variable Definition write
- `optimizely_feature_experimentation.variable_definitions.delete_variable_definition` Delete a Variable Definition destructive
- `optimizely_feature_experimentation.variable_definitions.fetch_variable_definition` Fetch a single variable definition by its key read
- `optimizely_feature_experimentation.variable_definitions.list_variable_definitions` Fetch all variable definitions for flag read
- `optimizely_feature_experimentation.variable_definitions.update_variable_definitions` Update Variable Definitions write

**Attributes 5**

- `optimizely_feature_experimentation.attributes.create_attribute` Create an Attribute write
- `optimizely_feature_experimentation.attributes.delete_attribute` Archive an Attribute destructive
- `optimizely_feature_experimentation.attributes.get_attribute` Read an Attribute read
- `optimizely_feature_experimentation.attributes.list_attributes` List Attributes read
- `optimizely_feature_experimentation.attributes.update_attribute` Update an Attribute write

**Custom fields 5**

- `optimizely_feature_experimentation.custom_fields.archive_custom_field` Archive a Custom Field write
- `optimizely_feature_experimentation.custom_fields.create_custom_field` Create a new Custom Field write
- `optimizely_feature_experimentation.custom_fields.list_custom_fields` List Custom Fields for a project read
- `optimizely_feature_experimentation.custom_fields.unarchive_custom_field` Unarchive a Custom Field write
- `optimizely_feature_experimentation.custom_fields.update_custom_field` Update an existing Custom Field write

**Events 5**

- `optimizely_feature_experimentation.events.create_custom_event` Create a Custom Event write
- `optimizely_feature_experimentation.events.delete_custom_event` Archive a Custom Event destructive
- `optimizely_feature_experimentation.events.get_event` Get Event by ID read
- `optimizely_feature_experimentation.events.list_events` List all Events read
- `optimizely_feature_experimentation.events.update_custom_event` Update a Custom Event write

**Features 5**

- `optimizely_feature_experimentation.features.create_feature` Create a Feature write
- `optimizely_feature_experimentation.features.delete_feature` Archive a Feature destructive
- `optimizely_feature_experimentation.features.get_feature` Read a Feature read
- `optimizely_feature_experimentation.features.list_features` Get Features by Project read
- `optimizely_feature_experimentation.features.update_feature` Update a Feature write

**List attributes 5**

- `optimizely_feature_experimentation.list_attributes.archive_list_attribute` Archive a List Attribute destructive
- `optimizely_feature_experimentation.list_attributes.create_list_attribute` Create a List Attribute write
- `optimizely_feature_experimentation.list_attributes.get_list_attribute` Read a List Attribute read
- `optimizely_feature_experimentation.list_attributes.list_list_attributes` Get list attributes by project read
- `optimizely_feature_experimentation.list_attributes.update_list_attribute` Update a List Attribute write

**Rulesets 5**

- `optimizely_feature_experimentation.rulesets.disable_ruleset` Disable the Ruleset for a Flag in an Environment write
- `optimizely_feature_experimentation.rulesets.enable_ruleset` Enable the Ruleset for a Flag in an Environment write
- `optimizely_feature_experimentation.rulesets.fetch_ruleset` Fetch the Ruleset for a Flag in an Environment read
- `optimizely_feature_experimentation.rulesets.update_ruleset` Update the Ruleset for a Flag in an Environment write
- `optimizely_feature_experimentation.rulesets.validate_ruleset` Validate a Ruleset update payload write

**Scheduled jobs 5**

- `optimizely_feature_experimentation.scheduled_jobs.create_scheduled_job` Create a Scheduled Job write
- `optimizely_feature_experimentation.scheduled_jobs.delete_scheduled_job` Archive a Scheduled Job destructive
- `optimizely_feature_experimentation.scheduled_jobs.get_scheduled_job` Get a Scheduled Job read
- `optimizely_feature_experimentation.scheduled_jobs.list_scheduled_jobs` Get a list of Scheduled Jobs read
- `optimizely_feature_experimentation.scheduled_jobs.update_scheduled_job` Update a Scheduled Job write

**Team management 5**

- `optimizely_feature_experimentation.team_management.create_team` Create Team write
- `optimizely_feature_experimentation.team_management.delete_team` Delete Team destructive
- `optimizely_feature_experimentation.team_management.get_team` Get Team Info read
- `optimizely_feature_experimentation.team_management.list_teams` Get Teams read
- `optimizely_feature_experimentation.team_management.update_team` Update Team write

**Webhooks 5**

- `optimizely_feature_experimentation.webhooks.create_webhook` Create a Webhook write
- `optimizely_feature_experimentation.webhooks.delete_webhook` Delete a Webhook destructive
- `optimizely_feature_experimentation.webhooks.get_webhook` Read a Webhook read
- `optimizely_feature_experimentation.webhooks.list_webhooks` Get Webhooks by Project read
- `optimizely_feature_experimentation.webhooks.update_webhook` Update a Webhook write

**Audiences 4**

- `optimizely_feature_experimentation.audiences.create_audience` Create an Audience write
- `optimizely_feature_experimentation.audiences.get_audience` Read an Audience read
- `optimizely_feature_experimentation.audiences.list_audiences` List Audiences read
- `optimizely_feature_experimentation.audiences.update_audience` Update an Audience write

**Entity 4**

- `optimizely_feature_experimentation.entity.get_entity_permissions` Get Entity Permissions read
- `optimizely_feature_experimentation.entity.get_team_permissions` Get Team Permissions For Project Entity Type read
- `optimizely_feature_experimentation.entity.get_user_permissions` Get User Permissions For Project Entity Type read
- `optimizely_feature_experimentation.entity.update_entity_permissions` Change Permissions write

**Projects 4**

- `optimizely_feature_experimentation.projects.create_project` Create a Project write
- `optimizely_feature_experimentation.projects.get_project` Read a Project read
- `optimizely_feature_experimentation.projects.list_projects` List Projects read
- `optimizely_feature_experimentation.projects.update_project` Update a Project write

**Rules 4**

- `optimizely_feature_experimentation.rules.fetch_holdouts_by_rule_key` Fetch holdouts for a specific rule_key read
- `optimizely_feature_experimentation.rules.fetch_rule` Fetch the Rule for a Ruleset in an Environment read
- `optimizely_feature_experimentation.rules.fetch_rule_by_experiment_id` Fetch a Rule for a specific experiment_id read
- `optimizely_feature_experimentation.rules.list_all_rules_in_project` List Rules read

**Collaborators 3**

- `optimizely_feature_experimentation.collaborators.create_collaborators` Invite Collaborators write
- `optimizely_feature_experimentation.collaborators.list_collaborators` List Collaborators read
- `optimizely_feature_experimentation.collaborators.list_invitations` List Collaborators who have not yet accepted the invitations read

**Subject access requests 3**

- `optimizely_feature_experimentation.subject_access_requests.create_sar_request` Create a Subject Access Request write
- `optimizely_feature_experimentation.subject_access_requests.get_sar_request` Get Subject Access Request read
- `optimizely_feature_experimentation.subject_access_requests.list_sar_requests_by_account` List Subject Access Requests read

**Export credentials 2**

- `optimizely_feature_experimentation.export_credentials.get_enriched_events_export_credentials` Get AWS credentials to access experimentation events export data read
- `optimizely_feature_experimentation.export_credentials.get_gcp_e3_credentials` Get GCP credentials to access experimentation events export data read

**Impressions usage 2**

- `optimizely_feature_experimentation.impressions_usage.get_impressions_usage_request` Get Impressions Usage read
- `optimizely_feature_experimentation.impressions_usage.get_impressions_usage_summary_request` Get Impressions Usage Summary read

**Scheduled change 2**

- `optimizely_feature_experimentation.scheduled_change.delete_scheduled_change` Delete a Scheduled Change for a flag in an environment destructive
- `optimizely_feature_experimentation.scheduled_change.update_scheduled_change` Update the Scheduled Change for a flag in an environment write

**Scheduled changes 2**

- `optimizely_feature_experimentation.scheduled_changes.create_scheduled_change` Create a Schedule Change for a flag in an environment write
- `optimizely_feature_experimentation.scheduled_changes.list_scheduled_changes` List Scheduled changes of a flag read

**Attribution 1**

- `optimizely_feature_experimentation.attribution.get_bucketing_history` Get bucketing information for a visitor read

**Change history 1**

- `optimizely_feature_experimentation.change_history.list_change_history` Retrieve changes for a project read

**Changes 1**

- `optimizely_feature_experimentation.changes.entities` Get Change History read

**Duplicate flags 1**

- `optimizely_feature_experimentation.duplicate_flags.duplicate_flag` Duplicate a Flag write

**Experiment summary 1**

- `optimizely_feature_experimentation.experiment_summary.get_experiment_summaries` Summaries of Experiments and Campaigns read

**Plan 1**

- `optimizely_feature_experimentation.plan.get_plan` Get Plan & Usage information for all products read

**Search 1**

- `optimizely_feature_experimentation.search.get_search_results` Search read

**User 1**

- `optimizely_feature_experimentation.user.get_me` Get current User information read

Questions

## The Optimizely Feature Experimentation MCP server, answered.

**Is there an Optimizely Feature Experimentation MCP server for Claude?**

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 170 Optimizely Feature Experimentation actions across groups, holdouts, change approvals and experiments, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Optimizely Feature Experimentation.

**What do I need to connect Optimizely Feature Experimentation?**

Optimizely personal access token (Profile > API Access > Generate New Token in app.optimizely.com), or an OAuth 2.0…. The free call account { op: "connections.requirements", service: "optimizely_feature_experimentation" } lists exactly what to paste.

**Can an AI agent delete or change things in Optimizely Feature Experimentation?**

Only if its key allows it, and only with an explicit confirmation. 20 Optimizely Feature Experimentation actions are destructive, including delete a Flag, delete a Webhook and archive a Custom Event. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

**Will an AI agent use up my Optimizely Feature Experimentation API limit?**

actionlake paces every call to the limits in the Optimizely Feature Experimentation service file: 2 calls a second and 120 a minute per connection. Repeated reads are answered from cache (79 Optimizely Feature Experimentation actions can be), which never reaches Optimizely Feature Experimentation.

**What does an Optimizely Feature Experimentation action cost?**

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (170 Optimizely Feature Experimentation actions page). Cache hits, searches, dry runs and calls Optimizely Feature Experimentation refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

**Which Optimizely Feature Experimentation API does it cover?**

The Optimizely Feature Experimentation (Flags) API v1, REST API v2, Flags Scheduling API and Permission Service (OpenAPI 3) at api.optimizely.com. It is built from Optimizely Feature Experimentation's documentation as read on 23 October 2026. 170 actions in 38 areas, each one in the signed service file (version 1.0.0).

**Does actionlake keep my Optimizely Feature Experimentation data, and where?**

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Optimizely Feature Experimentation credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

**Which AI clients can use it?**

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

## More connectors like Optimizely Feature Experimentation

Shares the most action names with

- [LaunchDarkly 22](https://actionlake.com/connectors/launchdarkly)
- [Harness Platform 13](https://actionlake.com/connectors/harness-platform)
- [Sourcegraph 10](https://actionlake.com/connectors/sourcegraph)
- [GrowthBook 8](https://actionlake.com/connectors/growthbook)
- [CircleCI 8](https://actionlake.com/connectors/circleci)
- [Supabase 5](https://actionlake.com/connectors/supabase)

Joins with, on shared entities

- [HaloPSA 2](https://actionlake.com/connectors/halopsa)
- [Infisical 2](https://actionlake.com/connectors/infisical)
- [Odoo 2](https://actionlake.com/connectors/odoo)
- [Lightdash 2](https://actionlake.com/connectors/lightdash)
- [Octopus Deploy 2](https://actionlake.com/connectors/octopus-deploy)
- [Jira 2](https://actionlake.com/connectors/jira)

Browse

- [All Developer & infrastructure connectors](https://actionlake.com/connectors/category/developer-and-infrastructure)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

actionlake is independent. It is not made or endorsed by Optimizely Feature Experimentation; the name is the vendor's own. Counts are from the Optimizely Feature Experimentation service file, version 1.0.0.

## Give your agent Optimizely Feature Experimentation today.

[Connect Optimizely Feature Experimentation free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.

---

Source: https://actionlake.com/connectors/optimizely-feature-experimentation
More: https://actionlake.com/llms.txt
