unofficial-vwo-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VWO_API_TOKEN | No | VWO API token. | |
| VWO_LOG_LEVEL | No | debug | info | warn | error. Goes to stderr. Default: info | |
| VWO_ACCOUNT_ID | No | Default account: a numeric id, or 'current'. Unset means tools require an explicit accountId. | |
| VWO_AUTH_HEADER | No | Header carrying the token, per VWO's docs. Default: token | |
| VWO_API_BASE_URL | No | Set to https://app.vwo.com/api/v2 for the older host. Must be https and end in /v2. Default: https://app.wingify.com/api/v2 | |
| VWO_API_TOKEN_FILE | No | Path to a file containing the token. Wins over VWO_API_TOKEN. | |
| VWO_REQUEST_TIMEOUT_MS | No | Per-request timeout. Default: 30000 | |
| VWO_ALLOWED_ACCOUNT_IDS | No | Comma-separated allow-list of account ids this server may touch. | |
| VWO_MIN_REQUEST_INTERVAL_MS | No | Request spacing. VWO allows 1 req/sec per token. Default: 1000 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| vwo_verify_connectionA | Check that the VWO MCP server is correctly configured and its API token works, by making one lightweight authenticated request. Returns the base URL, token source, and a token fingerprint — never the token itself. Call this first when other VWO tools return authorization errors. |
| vwo_list_workspacesA | List the VWO workspaces (accounts and sub-accounts) this API token can access, with their ids and names. Call this whenever the user refers to a workspace by name and you need its id, or to see what is available. Never guess a workspace id. |
| vwo_get_workspaceA | Get details of a single VWO workspace: name, timezone, company info, and whether it is enabled. |
| vwo_new_workspaceA | Create a new VWO workspace (sub-account) under the authenticated account. Creates real, potentially billable state — confirm the name with the user first. |
| vwo_update_workspaceA | Update a VWO workspace's name, timezone, company details, or enabled state. Only the fields you pass are changed. Disabling a workspace stops its campaigns. |
| vwo_get_workspace_historyA | Retrieve the activity timeline (feed) for a workspace — who changed what and when. Use startTime/endTime to narrow the window when investigating a specific change. |
| vwo_list_campaignsA | List campaigns (experiments) in a VWO workspace. Use this to discover campaign ids before calling any tool that operates on a specific campaign. Filter by type, platform, or label to narrow large accounts. |
| vwo_get_campaignA | Get the full configuration of one campaign: type, status, URLs, goals, variations, and targeting. |
| vwo_get_campaign_share_linkA | Get a shareable report link for a campaign, for sending results to someone without a VWO login. |
| vwo_new_campaignA | Create a new campaign (experiment) in a VWO workspace. Creates real state that can affect live traffic once started. Confirm type, URLs, and goals with the user before calling. |
| vwo_update_campaignA | Update the configuration of an existing campaign. Changes can affect a live experiment and its collected data. Pass only the fields you intend to change. |
| vwo_update_campaign_statusA | Start, pause, or stop campaigns. This directly changes what live visitors see and can end data collection — always confirm the campaign and target status with the user first. Note this is a bulk endpoint: VWO takes the campaign ids in the body. |
| vwo_list_draftsA | List unpublished draft campaigns in a VWO workspace. Drafts are not live and affect no visitors. |
| vwo_get_draftB | Get the full configuration of a single draft campaign. |
| vwo_update_draft_campaignsA | Update a draft campaign's configuration. Drafts are not live, so this does not affect visitors, but it does overwrite the saved draft. |
| vwo_delete_draft_campaignsA | Permanently delete a draft campaign. This cannot be undone — confirm the specific draft with the user, by name, before calling. |
| vwo_list_campaign_goalsA | List the goals configured on a VWO campaign. Use this to discover goal ids. |
| vwo_get_campaign_goalA | Get the full configuration of one goal on a VWO campaign. |
| vwo_new_campaign_goalA | Add a new goal to a VWO campaign. Goals define what the experiment measures, so changing them on a running campaign affects reported results and can invalidate conclusions drawn so far. |
| vwo_update_campaign_goalA | Change an existing goal on a VWO campaign. Goals define what the experiment measures, so changing them on a running campaign affects reported results and can invalidate conclusions drawn so far. |
| vwo_delete_campaign_goalA | Permanently delete a goal from a VWO campaign. This cannot be undone. Goals define what the experiment measures, so changing them on a running campaign affects reported results and can invalidate conclusions drawn so far. Confirm the specific goal with the user before calling. |
| vwo_list_campaign_variationsA | List the variations configured on a VWO campaign. Use this to discover variation ids. |
| vwo_get_campaign_variationA | Get the full configuration of one variation on a VWO campaign. |
| vwo_new_campaign_variationA | Add a new variation to a VWO campaign. Variations are what live visitors actually see, so changes take effect on real traffic and alter the data being collected. |
| vwo_update_campaign_variationA | Change an existing variation on a VWO campaign. Variations are what live visitors actually see, so changes take effect on real traffic and alter the data being collected. |
| vwo_delete_campaign_variationA | Permanently delete a variation from a VWO campaign. This cannot be undone. Variations are what live visitors actually see, so changes take effect on real traffic and alter the data being collected. Confirm the specific variation with the user before calling. |
| vwo_list_campaign_sectionsA | List the sections configured on a VWO campaign. Use this to discover section ids. |
| vwo_get_campaign_sectionA | Get the full configuration of one section on a VWO campaign. |
| vwo_new_campaign_sectionA | Add a new section to a VWO campaign. Sections determine which page areas the campaign varies, so changes affect what live visitors see and how combinations are reported. |
| vwo_update_campaign_sectionA | Change an existing section on a VWO campaign. Sections determine which page areas the campaign varies, so changes affect what live visitors see and how combinations are reported. |
| vwo_delete_campaign_sectionA | Permanently delete a section from a VWO campaign. This cannot be undone. Sections determine which page areas the campaign varies, so changes affect what live visitors see and how combinations are reported. Confirm the specific section with the user before calling. |
| vwo_list_metric_reportsA | List the VWO Insights metric reports configured in a workspace. Use this to find a report id before fetching its details. |
| vwo_get_metric_reportA | Get the details of one VWO Insights metric report by its id. |
| vwo_list_labelsA | List all labels defined in a VWO workspace, with their ids. Use this to find a label id before applying it to a campaign, or to filter vwo_list_campaigns by label. |
| vwo_list_campaign_labelsA | List the labels currently applied to one VWO campaign. |
| vwo_add_campaign_labelA | Apply one or more existing labels to a VWO campaign. Labels are organisational only and do not affect what visitors see. Call vwo_list_labels first to get valid label ids. |
| vwo_delete_campaign_labelA | Remove one label from a VWO campaign. This detaches the label from the campaign; it does not delete the label from the workspace. |
| vwo_get_smartcodeA | Get the VWO SmartCode tracking snippet for a workspace — the JavaScript that must be installed on the site for campaigns to run. Use this when helping someone verify or install tracking. |
| vwo_list_custom_widgetsA | List the custom widgets defined in a VWO workspace, with their ids. Use this to find a widget id before fetching or changing one. |
| vwo_get_custom_widgetA | Get the full definition of one custom widget in a VWO workspace. |
| vwo_new_custom_widgetC | Create a new custom widget in a VWO workspace. |
| vwo_update_custom_widgetA | Change an existing custom widget. Widgets can be linked to live campaigns, so edits may affect what visitors see. |
| vwo_delete_custom_widgetA | Permanently delete a custom widget. This cannot be undone, and will break any campaign still linked to it. Confirm the specific widget with the user first. |
| vwo_create_custom_widgetsA | Create several custom widgets in one request. Prefer this over repeated vwo_new_custom_widget calls, since VWO permits only 1 request per second. |
| vwo_update_custom_widgetsA | Change several custom widgets in one request. Widgets can be linked to live campaigns, so edits may affect what visitors see. CAUTION: the endpoint for this operation is inferred, not confirmed — VWO's docs page for it points at an unrelated attribute-list endpoint. Verify the result of the first call before relying on it, and report back if it fails. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| vwo_general_guidance | House rules for working with this VWO server: resolving workspaces safely, what requires approval, rate limits, which workflow prompt to use for editing a live campaign, and to check VWO's own docs for platform-behavior questions rather than guessing. Read this once at the start of a VWO-related task. |
| vwo_ab_test_workflow | The precise workflow for creating a new A/B test or editing an existing one: inspect the current variation code, plan the specific change, apply it, then visually verify it rendered correctly via VWO's live preview before considering it done. When campaignId is given, this prompt pre-fetches the campaign and its variations (including their code) so the workflow starts from real data. Use this instead of editing a live test ad hoc. For a Split URL test or a Web Rollout, use vwo_split_test_workflow or vwo_web_rollout_workflow instead — they follow the same shape but account for how those differ from a same-page content test. |
| vwo_split_test_workflow | The workflow for creating a new Split URL test or editing an existing one. Simpler than vwo_ab_test_workflow: a split test has no per-variation code, just a distinct destination URL per variation. When campaignId is given, this prompt pre-fetches the campaign and its variations so the workflow starts from real data. |
| vwo_web_rollout_workflow | The workflow for creating a new Web Rollout or editing an existing one. Mechanically the same as vwo_ab_test_workflow (same-page code changes, same live-preview verification) but with no control variation and no analytical goal — a rollout ships a change, it does not run an experiment. When campaignId is given, this prompt pre-fetches the campaign and its variations so the workflow starts from real data. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nextafter-michael/unofficial-vwo-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server