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.
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/mcpdo { action: "optimizely_feature_experimentation.projects.list_projects", intent: "check which Optimizely Feature Experimentation account is connected"}# List Projects · read · 1 upstream call- 170actionsin one signed file
- 83readlook, never change
- 67writecreate and update
- 20wait for a yesdestructive, confirmed first
Set up
Connect Optimizely Feature Experimentation in three steps.
- 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 - 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_tokenOptimizely 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 - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "optimizely_feature_experimentation.projects.list_projects" }# list projects · read · 1 upstream callcheck { 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 2026docs.developers.optimizely.comapi.optimizely.comdocs.developers.optimizely.com
- 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.
- 83readlook, never change
- 67writecreate and update
- 20destructivewait for a confirmation
Groups
124 read · 6 write · 2 destructive
Create an Exclusion Group · Create an Exclusion Group · List Exclusion Groups · List Exclusion Groups
Holdouts
115 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
Change approvals
84 read · 4 write · 0 destructive
Create an Approval for a flag in an environment · List Approvals · List Environment Approval Settings · Archive Approval
Experiments
85 read · 2 write · 1 destructive
Create an Experiment · List Experiments · Read an Experiment · Update an Experiment
Flags
83 read · 4 write · 1 destructive
List Flags · Create a New Flag · Fetch a Single Flag · Delete a Flag
Variations
83 read · 4 write · 1 destructive
Brainstorm variations definitions using AI · Create a New Variation · List Variations · Archive Variations
Environments
74 read · 2 write · 1 destructive
Get Environments by Project · Create an Environment · Read an Environment · Update an Environment
Reports
73 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_projectsList Projects | List Projects. | read | work.project.list109 connectors |
optimizely_feature_experimentation.projects.create_projectCreate a Project | Create a Project. | write | work.project.create102 connectors |
optimizely_feature_experimentation.environments.list_environments_v2Get Environments by Project | Get Environments by Project. | read | devops.environment.list24 connectors |
optimizely_feature_experimentation.environments.create_environmentCreate an Environment | Create an Environment. | write | devops.environment.create18 connectors |
optimizely_feature_experimentation.flags.list_flagsList Flags | List Flags. | read | devops.feature_flag.list12 connectors |
optimizely_feature_experimentation.flags.create_flagCreate a New Flag | Create a New Flag. | write | devops.feature_flag.create8 connectors |
optimizely_feature_experimentation.collaborators.list_collaboratorsList Collaborators | List Collaborators. | read | identity.user.list474 connectors |
optimizely_feature_experimentation.flags.delete_flagDelete a Flag | Delete a Flag. | destructive | devops.feature_flag.delete9 connectors |
optimizely_feature_experimentation.webhooks.create_webhookCreate a Webhook | Create a Webhook. | write | automation.webhook.create209 connectors |
optimizely_feature_experimentation.webhooks.list_webhooksGet Webhooks by Project | Get Webhooks by Project. | read | automation.webhook.list202 connectors |
optimizely_feature_experimentation.user.get_meGet current User information | Get current User information. | read | identity.current_user.get307 connectors |
optimizely_feature_experimentation.experiments.create_experimentCreate an Experiment | Create an Experiment. | write | analytics.experiment.create12 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.
- Readread
Give me a one-line status for every active Optimizely Feature Experimentation project.
calls
optimizely_feature_experimentation.projects.list_projects - Writewrite
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.
Delete a Flag?
intent: the user asked me to delete a Flag
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: "[email protected]" }, { match: "optimizely_feature_experimentation.webhooks.delete_webhook", approver: "[email protected]" }, { match: "optimizely_feature_experimentation.events.delete_custom_event", approver: "[email protected]" } ]}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.
- 1upstream call per actionall 170 Optimizely Feature Experimentation actions
- 170actions pageeach page of a long list is one call
- 79reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Optimizely Feature Experimentation action.
170 actions by area: the id your agent calls, what it does, and its effect.
Groups12
optimizely_feature_experimentation.groups.archive_groupsArchive Exclusion Groupswriteoptimizely_feature_experimentation.groups.create_groupCreate an Exclusion Groupwriteoptimizely_feature_experimentation.groups.create_group_v2Create an Exclusion Groupwriteoptimizely_feature_experimentation.groups.delete_groupDelete an Exclusion Groupdestructiveoptimizely_feature_experimentation.groups.delete_group_v2Archive an Exclusion Groupdestructiveoptimizely_feature_experimentation.groups.fetch_groupFetch a Single Exclusion Groupreadoptimizely_feature_experimentation.groups.get_groupGet an Exclusion Groupreadoptimizely_feature_experimentation.groups.list_groupsList Exclusion Groupsreadoptimizely_feature_experimentation.groups.list_groups_v2List Exclusion Groupsreadoptimizely_feature_experimentation.groups.unarchive_groupsUnarchive Exclusion Groupswriteoptimizely_feature_experimentation.groups.update_groupUpdate an Exclusion Groupwriteoptimizely_feature_experimentation.groups.update_groupsUpdate Exclusion Groupswrite
Holdouts11
optimizely_feature_experimentation.holdouts.create_holdoutCreate a new Holdoutwriteoptimizely_feature_experimentation.holdouts.create_holdout_cross_projectCreate a cross-project Holdoutwriteoptimizely_feature_experimentation.holdouts.delete_holdoutDelete a Holdoutdestructiveoptimizely_feature_experimentation.holdouts.delete_holdout_cross_projectDelete a cross-project Holdoutdestructiveoptimizely_feature_experimentation.holdouts.fetch_holdoutFetch a single Holdoutreadoptimizely_feature_experimentation.holdouts.fetch_holdout_cross_projectFetch a cross-project Holdoutreadoptimizely_feature_experimentation.holdouts.fetch_holdout_experimentsFetch experiments associated with a holdoutreadoptimizely_feature_experimentation.holdouts.list_holdoutsList Holdouts for a projectreadoptimizely_feature_experimentation.holdouts.list_holdouts_cross_projectList holdouts across projectsreadoptimizely_feature_experimentation.holdouts.update_holdout_cross_projectUpdate a cross-project Holdoutwriteoptimizely_feature_experimentation.holdouts.update_holdoutsUpdate a Holdout using JSON Patchwrite
Change approvals8
optimizely_feature_experimentation.change_approvals.archive_approvalArchive Approvalwriteoptimizely_feature_experimentation.change_approvals.create_approvalCreate an Approval for a flag in an environmentwriteoptimizely_feature_experimentation.change_approvals.get_approvalGet Approvalreadoptimizely_feature_experimentation.change_approvals.get_environment_approval_settingsGet Environment Approval Settingsreadoptimizely_feature_experimentation.change_approvals.list_approvalsList Approvalsreadoptimizely_feature_experimentation.change_approvals.list_environment_approval_settingsList Environment Approval Settingsreadoptimizely_feature_experimentation.change_approvals.update_approval_statusUpdate approval status for a flag in an environmentwriteoptimizely_feature_experimentation.change_approvals.update_environment_approval_settingsUpdate Environment Approval Settingswrite
Experiments8
optimizely_feature_experimentation.experiments.create_experimentCreate an Experimentwriteoptimizely_feature_experimentation.experiments.delete_experimentArchive an Experimentdestructiveoptimizely_feature_experimentation.experiments.get_experimentRead an Experimentreadoptimizely_feature_experimentation.experiments.get_experiment_resultsGet Experiment resultsreadoptimizely_feature_experimentation.experiments.get_experiment_results_share_linkGet a sharable link for the experiment's results pagereadoptimizely_feature_experimentation.experiments.get_experiment_timeseriesGet Experiment results time seriesreadoptimizely_feature_experimentation.experiments.list_experimentsList Experimentsreadoptimizely_feature_experimentation.experiments.update_experimentUpdate an Experimentwrite
Flags8
optimizely_feature_experimentation.flags.archive_flagsArchive Flagswriteoptimizely_feature_experimentation.flags.create_flagCreate a New Flagwriteoptimizely_feature_experimentation.flags.delete_flagDelete a Flagdestructiveoptimizely_feature_experimentation.flags.fetch_flagFetch a Single Flagreadoptimizely_feature_experimentation.flags.fetch_flag_statusGet Flag Statusreadoptimizely_feature_experimentation.flags.list_flagsList Flagsreadoptimizely_feature_experimentation.flags.unarchive_flagsUnarchive Flagswriteoptimizely_feature_experimentation.flags.update_flagsUpdate Flagswrite
Variations8
optimizely_feature_experimentation.variations.archive_variationsArchive Variationswriteoptimizely_feature_experimentation.variations.brainstorm_variationsBrainstorm variations definitions using AIreadoptimizely_feature_experimentation.variations.create_variationCreate a New Variationwriteoptimizely_feature_experimentation.variations.delete_variationDelete a Variationdestructiveoptimizely_feature_experimentation.variations.fetch_variationFetch a Single Variationreadoptimizely_feature_experimentation.variations.list_variationsList Variationsreadoptimizely_feature_experimentation.variations.unarchive_variationsUnarchive Variationswriteoptimizely_feature_experimentation.variations.update_variationsUpdate Variationswrite
Environments7
optimizely_feature_experimentation.environments.create_environmentCreate an Environmentwriteoptimizely_feature_experimentation.environments.delete_environmentArchive an Environmentdestructiveoptimizely_feature_experimentation.environments.get_datafileRead the datafile of an Environmentreadoptimizely_feature_experimentation.environments.get_environmentRead an Environmentreadoptimizely_feature_experimentation.environments.list_environmentsList Environmentsreadoptimizely_feature_experimentation.environments.list_environments_v2Get Environments by Projectreadoptimizely_feature_experimentation.environments.update_environmentUpdate an Environmentwrite
Reports7
optimizely_feature_experimentation.reports.archive_reportsArchive Reportswriteoptimizely_feature_experimentation.reports.delete_reportDelete a Reportdestructiveoptimizely_feature_experimentation.reports.fetch_reportFetch a Single Reportreadoptimizely_feature_experimentation.reports.get_experiment_reportGet Experiment Result's Reportreadoptimizely_feature_experimentation.reports.list_reportsList Reportsreadoptimizely_feature_experimentation.reports.reset_resultsReset the results for a Reportdestructiveoptimizely_feature_experimentation.reports.unarchive_reportsUnarchive Reportswrite
Approval policies6
optimizely_feature_experimentation.approval_policies.create_approval_policyCreate an approval policywriteoptimizely_feature_experimentation.approval_policies.delete_approval_policyDelete an approval policydestructiveoptimizely_feature_experimentation.approval_policies.get_approval_policyGet an approval policyreadoptimizely_feature_experimentation.approval_policies.list_approval_policiesList approval policies for an environmentreadoptimizely_feature_experimentation.approval_policies.list_project_policiesList all approval policies for a project across all environmentsreadoptimizely_feature_experimentation.approval_policies.update_approval_policyUpdate an approval policywrite
Change requests6
optimizely_feature_experimentation.change_requests.archive_change_requestArchive a change requestwriteoptimizely_feature_experimentation.change_requests.create_change_requestCreate a change request for a flag in an environmentwriteoptimizely_feature_experimentation.change_requests.get_change_request_detailsGet change request detailsreadoptimizely_feature_experimentation.change_requests.list_change_requestsList change requests for a flag in an environmentreadoptimizely_feature_experimentation.change_requests.list_project_change_requestsList project change requestsreadoptimizely_feature_experimentation.change_requests.update_change_request_statusUpdate the status of a change requestwrite
Variable definitions6
optimizely_feature_experimentation.variable_definitions.brainstorm_variable_definitionsBrainstorm variable definitions using AIreadoptimizely_feature_experimentation.variable_definitions.create_variable_definitionCreate Variable Definitionwriteoptimizely_feature_experimentation.variable_definitions.delete_variable_definitionDelete a Variable Definitiondestructiveoptimizely_feature_experimentation.variable_definitions.fetch_variable_definitionFetch a single variable definition by its keyreadoptimizely_feature_experimentation.variable_definitions.list_variable_definitionsFetch all variable definitions for flagreadoptimizely_feature_experimentation.variable_definitions.update_variable_definitionsUpdate Variable Definitionswrite
Attributes5
optimizely_feature_experimentation.attributes.create_attributeCreate an Attributewriteoptimizely_feature_experimentation.attributes.delete_attributeArchive an Attributedestructiveoptimizely_feature_experimentation.attributes.get_attributeRead an Attributereadoptimizely_feature_experimentation.attributes.list_attributesList Attributesreadoptimizely_feature_experimentation.attributes.update_attributeUpdate an Attributewrite
Custom fields5
optimizely_feature_experimentation.custom_fields.archive_custom_fieldArchive a Custom Fieldwriteoptimizely_feature_experimentation.custom_fields.create_custom_fieldCreate a new Custom Fieldwriteoptimizely_feature_experimentation.custom_fields.list_custom_fieldsList Custom Fields for a projectreadoptimizely_feature_experimentation.custom_fields.unarchive_custom_fieldUnarchive a Custom Fieldwriteoptimizely_feature_experimentation.custom_fields.update_custom_fieldUpdate an existing Custom Fieldwrite
Events5
optimizely_feature_experimentation.events.create_custom_eventCreate a Custom Eventwriteoptimizely_feature_experimentation.events.delete_custom_eventArchive a Custom Eventdestructiveoptimizely_feature_experimentation.events.get_eventGet Event by IDreadoptimizely_feature_experimentation.events.list_eventsList all Eventsreadoptimizely_feature_experimentation.events.update_custom_eventUpdate a Custom Eventwrite
Features5
optimizely_feature_experimentation.features.create_featureCreate a Featurewriteoptimizely_feature_experimentation.features.delete_featureArchive a Featuredestructiveoptimizely_feature_experimentation.features.get_featureRead a Featurereadoptimizely_feature_experimentation.features.list_featuresGet Features by Projectreadoptimizely_feature_experimentation.features.update_featureUpdate a Featurewrite
List attributes5
optimizely_feature_experimentation.list_attributes.archive_list_attributeArchive a List Attributedestructiveoptimizely_feature_experimentation.list_attributes.create_list_attributeCreate a List Attributewriteoptimizely_feature_experimentation.list_attributes.get_list_attributeRead a List Attributereadoptimizely_feature_experimentation.list_attributes.list_list_attributesGet list attributes by projectreadoptimizely_feature_experimentation.list_attributes.update_list_attributeUpdate a List Attributewrite
Rulesets5
optimizely_feature_experimentation.rulesets.disable_rulesetDisable the Ruleset for a Flag in an Environmentwriteoptimizely_feature_experimentation.rulesets.enable_rulesetEnable the Ruleset for a Flag in an Environmentwriteoptimizely_feature_experimentation.rulesets.fetch_rulesetFetch the Ruleset for a Flag in an Environmentreadoptimizely_feature_experimentation.rulesets.update_rulesetUpdate the Ruleset for a Flag in an Environmentwriteoptimizely_feature_experimentation.rulesets.validate_rulesetValidate a Ruleset update payloadwrite
Scheduled jobs5
optimizely_feature_experimentation.scheduled_jobs.create_scheduled_jobCreate a Scheduled Jobwriteoptimizely_feature_experimentation.scheduled_jobs.delete_scheduled_jobArchive a Scheduled Jobdestructiveoptimizely_feature_experimentation.scheduled_jobs.get_scheduled_jobGet a Scheduled Jobreadoptimizely_feature_experimentation.scheduled_jobs.list_scheduled_jobsGet a list of Scheduled Jobsreadoptimizely_feature_experimentation.scheduled_jobs.update_scheduled_jobUpdate a Scheduled Jobwrite
Team management5
optimizely_feature_experimentation.team_management.create_teamCreate Teamwriteoptimizely_feature_experimentation.team_management.delete_teamDelete Teamdestructiveoptimizely_feature_experimentation.team_management.get_teamGet Team Inforeadoptimizely_feature_experimentation.team_management.list_teamsGet Teamsreadoptimizely_feature_experimentation.team_management.update_teamUpdate Teamwrite
Webhooks5
optimizely_feature_experimentation.webhooks.create_webhookCreate a Webhookwriteoptimizely_feature_experimentation.webhooks.delete_webhookDelete a Webhookdestructiveoptimizely_feature_experimentation.webhooks.get_webhookRead a Webhookreadoptimizely_feature_experimentation.webhooks.list_webhooksGet Webhooks by Projectreadoptimizely_feature_experimentation.webhooks.update_webhookUpdate a Webhookwrite
Audiences4
optimizely_feature_experimentation.audiences.create_audienceCreate an Audiencewriteoptimizely_feature_experimentation.audiences.get_audienceRead an Audiencereadoptimizely_feature_experimentation.audiences.list_audiencesList Audiencesreadoptimizely_feature_experimentation.audiences.update_audienceUpdate an Audiencewrite
Entity4
optimizely_feature_experimentation.entity.get_entity_permissionsGet Entity Permissionsreadoptimizely_feature_experimentation.entity.get_team_permissionsGet Team Permissions For Project Entity Typereadoptimizely_feature_experimentation.entity.get_user_permissionsGet User Permissions For Project Entity Typereadoptimizely_feature_experimentation.entity.update_entity_permissionsChange Permissionswrite
Projects4
optimizely_feature_experimentation.projects.create_projectCreate a Projectwriteoptimizely_feature_experimentation.projects.get_projectRead a Projectreadoptimizely_feature_experimentation.projects.list_projectsList Projectsreadoptimizely_feature_experimentation.projects.update_projectUpdate a Projectwrite
Rules4
optimizely_feature_experimentation.rules.fetch_holdouts_by_rule_keyFetch holdouts for a specific rule_keyreadoptimizely_feature_experimentation.rules.fetch_ruleFetch the Rule for a Ruleset in an Environmentreadoptimizely_feature_experimentation.rules.fetch_rule_by_experiment_idFetch a Rule for a specific experiment_idreadoptimizely_feature_experimentation.rules.list_all_rules_in_projectList Rulesread
Collaborators3
optimizely_feature_experimentation.collaborators.create_collaboratorsInvite Collaboratorswriteoptimizely_feature_experimentation.collaborators.list_collaboratorsList Collaboratorsreadoptimizely_feature_experimentation.collaborators.list_invitationsList Collaborators who have not yet accepted the invitationsread
Subject access requests3
optimizely_feature_experimentation.subject_access_requests.create_sar_requestCreate a Subject Access Requestwriteoptimizely_feature_experimentation.subject_access_requests.get_sar_requestGet Subject Access Requestreadoptimizely_feature_experimentation.subject_access_requests.list_sar_requests_by_accountList Subject Access Requestsread
Export credentials2
optimizely_feature_experimentation.export_credentials.get_enriched_events_export_credentialsGet AWS credentials to access experimentation events export datareadoptimizely_feature_experimentation.export_credentials.get_gcp_e3_credentialsGet GCP credentials to access experimentation events export dataread
Impressions usage2
optimizely_feature_experimentation.impressions_usage.get_impressions_usage_requestGet Impressions Usagereadoptimizely_feature_experimentation.impressions_usage.get_impressions_usage_summary_requestGet Impressions Usage Summaryread
Scheduled change2
optimizely_feature_experimentation.scheduled_change.delete_scheduled_changeDelete a Scheduled Change for a flag in an environmentdestructiveoptimizely_feature_experimentation.scheduled_change.update_scheduled_changeUpdate the Scheduled Change for a flag in an environmentwrite
Scheduled changes2
optimizely_feature_experimentation.scheduled_changes.create_scheduled_changeCreate a Schedule Change for a flag in an environmentwriteoptimizely_feature_experimentation.scheduled_changes.list_scheduled_changesList Scheduled changes of a flagread
Attribution1
optimizely_feature_experimentation.attribution.get_bucketing_historyGet bucketing information for a visitorread
Change history1
optimizely_feature_experimentation.change_history.list_change_historyRetrieve changes for a projectread
Changes1
optimizely_feature_experimentation.changes.entitiesGet Change Historyread
Duplicate flags1
optimizely_feature_experimentation.duplicate_flags.duplicate_flagDuplicate a Flagwrite
Experiment summary1
optimizely_feature_experimentation.experiment_summary.get_experiment_summariesSummaries of Experiments and Campaignsread
Plan1
optimizely_feature_experimentation.plan.get_planGet Plan & Usage information for all productsread
Search1
optimizely_feature_experimentation.search.get_search_resultsSearchread
User1
optimizely_feature_experimentation.user.get_meGet current User informationread
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.
Give your agent Optimizely Feature Experimentation today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.