{
  "data": {
    "a": {
      "slug": "optimizely",
      "name": "Optimizely Experimentation",
      "vendor": "Optimizely",
      "vendorUrl": "https://www.optimizely.com",
      "kind": "http-api",
      "category": "product-analytics",
      "summary": "Optimizely Experimentation is a hosted platform for A/B tests, feature flags and personalisation, covering Web Experimentation and Feature Experimentation. Agents reach it through a hosted MCP server with eight tools and through REST APIs.",
      "url": "https://www.anchorterminal.com/tools/optimizely",
      "markdownUrl": "https://www.anchorterminal.com/tools/optimizely.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/optimizely.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/optimizely.json",
      "dns": "optimizely.grade.anchorterminal.com",
      "repo": "https://github.com/optimizely/javascript-sdk",
      "license": "Proprietary hosted service under Optimizely's Online Software Subscription Agreement and its API, SDK and MCP terms. The Feature Experimentation SDKs on GitHub are Apache 2.0",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://exp.mcp.opal.optimizely.com/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "@optimizely/optimizely-sdk"
        },
        {
          "registry": "pypi",
          "name": "optimizely-sdk"
        }
      ],
      "auth": "mixed",
      "authNotes": "Sales-led. Access needs a subscription. The MCP server uses OAuth 2.0 through Opti ID with PKCE and dynamic client registration, and needs an account with Opal enabled and linked to a Feature Experimentation or Web Experimentation instance. The REST APIs take a personal access token, created under Profile then API Access, in the `Authorization: Bearer` header, or OAuth 2.0 for a registered application. Tokens and MCP sessions act with the user's role.",
      "pricing": "paid",
      "pricingNotes": "No price is published. The plans page asks for details to build a custom quote, with no free plan, trial or sandbox found, so an agent cannot start without a contract. MCP use does not consume Opal credits (https://www.optimizely.com/plans, checked 2026-11-02).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs index, the v2 Swagger spec or the plans page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 8,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 460480,
        "pypiWeekly": 85924,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.optimizely.com/experimentation-strategy/docs/optimizely-experimentation-mcp-server-overview",
      "llmsTxt": "https://docs.optimizely.com/llms.txt",
      "openapi": "https://api.optimizely.com/v2/swagger.json",
      "capabilities": [
        "analytics.experiments",
        "analytics.flags",
        "analytics.query"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "oauth",
        "openapi",
        "llms-txt",
        "closed-source",
        "sales-led",
        "enterprise",
        "webhooks",
        "status-page",
        "sla",
        "soc2",
        "iso27001",
        "bug-bounty"
      ],
      "lastRelease": "2026-10-15",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 64.9,
        "grade": "B",
        "agentReady": false,
        "rank": 443,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 7,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 68,
          "maintenance": 78,
          "payments": 0,
          "reliability": 83,
          "schema": 76,
          "security": 66,
          "transparency": 75
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-02"
        },
        "negative": 0,
        "verdict": "Optimizely Experimentation suits agents working for an existing customer that manage flags and experiments and read results. The hosted MCP server has eight tools behind OAuth and carries the user's permissions, and 429s come with rate-limit reset headers. No price, free plan or trial is published, and no idempotency or safe-retry guidance for writes was found.",
        "bestFor": "An agent working for an existing Optimizely customer that lists and creates flags, experiments and audiences, reads experiment results and writes SDK integration code.",
        "strengths": [
          "Hosted MCP server with eight tools for querying, managing and implementing flags and experiments, released on 29 April 2026 and extended on 13 October",
          "MCP sign-in is OAuth 2.0 with PKCE and dynamic client registration, and the server sees only what the user's account can see",
          "Each API reference page carries the operation's structured definition, plus llms.txt and a Markdown copy of every docs page",
          "Rate limits are published with numbers, 120 requests a minute on the Feature Experimentation API and 100 a minute on the Optimizely API",
          "Change history is readable through the REST API, and change approvals route flag changes to reviewers since 6 August 2026"
        ],
        "weaknesses": [
          "No price is published. The plans page asks for details to build a custom quote",
          "No free plan or trial was found, and the MCP server needs an account with Opal enabled",
          "No idempotency key or safe-retry guidance for writes was found, though 429s carry reset headers",
          "The REST OAuth flow has one scope, `all`, described as full access to the account",
          "The Swagger file sits on api.optimizely.com, which disallows crawlers, the `/flags/v1` spec needs a token, and the MCP server is not in the official MCP registry"
        ],
        "agentNotes": [
          "Connect to https://exp.mcp.opal.optimizely.com/mcp and complete OAuth in a browser. The session is time-limited, so expect to sign in again",
          "Call `exp_get_schemas` before `exp_execute_query`, and `exp_get_entity_templates` before `exp_manage_entity_lifecycle`, to learn the fields each entity needs",
          "Confirm the project and environment with the user before any create or update. Changes go to live Optimizely data",
          "Use the Visual Editor for Web Experimentation variation code. The MCP server does not write custom HTML, CSS or JavaScript",
          "Over REST, stay under 2 requests a second on `/flags/v1`, 100 a minute on `/v2` and 20 a minute on the results endpoints, and on a 429 wait until `X-RATELIMIT-RESET`"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 2,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 64.9
          }
        ],
        "editorialScores": {
          "ergonomics": 68,
          "maintenance": 78,
          "payments": 0,
          "reliability": 83,
          "schema": 76,
          "security": 66,
          "transparency": 63
        },
        "provenanceScore": 87,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-02",
            "maintenance": "2026-11-02",
            "payments": "2026-11-02",
            "reliability": "2026-11-02",
            "schema": "2026-11-02",
            "security": "2026-11-02",
            "transparency": "2026-11-02"
          },
          "last": "2026-11-02",
          "lastMoved": "2026-11-02",
          "oldest": "2026-11-02",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \"https://api.optimizely.com/v2/projects\"",
        "claudeCode": "claude mcp add --transport http optimizely-exp https://exp.mcp.opal.optimizely.com/mcp",
        "config": {
          "mcpServers": {
            "optimizely-exp": {
              "type": "http",
              "url": "https://exp.mcp.opal.optimizely.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/analytics.experiments",
        "tool": "https://letme.dev/optimizely"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "Optimizely North America Inc.",
        "domain": "optimizely.com",
        "domainRegistered": "2010-01-11",
        "endpointOnVendorDomain": true,
        "terms": "https://www.optimizely.com/legal/terms/",
        "privacy": "https://www.optimizely.com/legal/privacy-notice/",
        "statusPage": "https://status.optimizely.com",
        "changelog": "https://docs.optimizely.com/feature-experimentation/release-notes",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The Online Software Subscription Agreement 2025-11, published 10 November 2025, names Optimizely North America Inc as the contracting entity for customers in the USA, Canada, Mexico, Australia, New Zealand, APJ and the rest of the world, Optimizely AB for the Nordics, UK, Ireland, EU, UAE and Saudi Arabia, and Optimizely GmbH for DACH.",
          "The API, SDK and MCP terms, version 2026-08 published 26 August 2026, are a PDF linked from https://www.optimizely.com/legal/api-sdk-mcp-terms/ and form part of the subscription agreement.",
          "The privacy notice, V 2026-07 published 1 July 2026, says it does not apply to customer data, which Optimizely processes under the subscription agreement and the Data Processing Agreement (V 2026-01).",
          "The MCP server answers at exp.mcp.opal.optimizely.com and the REST APIs at api.optimizely.com.",
          "www.optimizely.com/.well-known/security.txt and www.optimizely.com/security.txt both return 404.",
          "RDAP for optimizely.com gives a registration date of 2010-01-11."
        ],
        "score": 87
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/optimizely.json",
      "live": {
        "slug": "optimizely",
        "probe": {
          "target": "https://exp.mcp.opal.optimizely.com/mcp",
          "method": "get",
          "lastAt": "2026-11-07T18:20:44.811870144Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 231,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 99.47,
          "p50ms24h": 159,
          "p95ms24h": 267,
          "samples24h": 239,
          "samples30d": 7420,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 50,
              "ok": 50
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 249
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 251
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 250
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 245
            },
            {
              "date": "2026-10-28",
              "probes": 250,
              "ok": 246
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 247
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 243
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 248
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 245
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 243
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 180
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 236
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.optimizely.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T18:21:50.987920895Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "optimizely/javascript-sdk",
            "version": "v6.7.0",
            "released": "2026-11-03",
            "seenAt": "2026-11-06T23:53:37.267648234Z"
          },
          {
            "registry": "npm",
            "name": "@optimizely/optimizely-sdk",
            "version": "6.7.0",
            "seenAt": "2026-11-06T23:53:35.91997008Z"
          },
          {
            "registry": "pypi",
            "name": "optimizely-sdk",
            "version": "5.8.0",
            "released": "2026-11-02",
            "seenAt": "2026-11-06T23:53:37.079973391Z"
          }
        ],
        "githubStars": 81,
        "npmWeekly": 472122,
        "pypiWeekly": 103304,
        "securityTxt": {
          "url": "https://optimizely.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:45.131005405Z"
        },
        "llmsTxt": {
          "url": "https://docs.optimizely.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:34.028062644Z"
        },
        "domain": {
          "domain": "optimizely.com",
          "registered": "2010-01-11",
          "source": "https://rdap.verisign.com/com/v1/domain/optimizely.com",
          "checkedAt": "2026-11-01T14:22:15.393951346Z"
        },
        "pages": [
          {
            "url": "https://docs.optimizely.com/feature-experimentation/release-notes",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-11-07T14:07:22.970203338Z",
            "changedAt": "2026-11-03T07:48:14.847067801Z",
            "fingerprint": "38df67d7ab67"
          },
          {
            "url": "https://www.optimizely.com/legal/privacy-notice/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:32:30.088370307Z",
            "changedAt": "2026-10-16T22:39:40.582475053Z",
            "fingerprint": "5bc7e15596b9"
          },
          {
            "url": "https://www.optimizely.com/legal/terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:32:32.405261433Z",
            "changedAt": "2026-10-16T22:39:42.973507661Z",
            "fingerprint": "ac5c2a563553"
          }
        ],
        "mcpTools": {
          "url": "https://exp.mcp.opal.optimizely.com/mcp",
          "checkedAt": "2026-11-07T01:46:36.362963266Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:46:36.362963266Z"
        },
        "github": {
          "repo": "optimizely/javascript-sdk",
          "checkedAt": "2026-11-02T09:13:59.44721614Z",
          "stars": 81,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-30T18:30:22Z",
          "openIssues": 3,
          "openPRs": 3,
          "issuesOpened90d": 2,
          "issuesClosed90d": 0,
          "prsMerged90d": 9,
          "ci": {
            "branch": "master",
            "runs": 50,
            "success": 34,
            "failure": 16,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-10-29T17:47:42Z"
          },
          "replies": {
            "sampled": 25,
            "unanswered": 3,
            "medianDays": 29
          }
        },
        "updatedAt": "2026-11-07T18:21:50.987920895Z"
      }
    },
    "answer": "Optimizely Experimentation and Userpilot score within a point of each other on agent readiness, 64.9 (B) and 64.4 (B). Userpilot leads on payments \u0026 pricing.",
    "b": {
      "slug": "userpilot",
      "name": "Userpilot",
      "vendor": "Userpilot, Inc.",
      "vendorUrl": "https://userpilot.com",
      "kind": "http-api",
      "category": "product-analytics",
      "summary": "Userpilot is a product adoption platform with in-app guides, surveys and product analytics for SaaS and mobile apps. Agents query funnels, trends, retention, users and companies through its hosted MCP server, and send or export data through HTTP APIs.",
      "url": "https://www.anchorterminal.com/tools/userpilot",
      "markdownUrl": "https://www.anchorterminal.com/tools/userpilot.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/userpilot.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/userpilot.json",
      "dns": "userpilot.grade.anchorterminal.com",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.userpilot.io/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "userpilot"
        }
      ],
      "auth": "mixed",
      "authNotes": "The hosted MCP server uses OAuth 2.0 with PKCE, dynamic client registration and a permission screen. Scopes are data:read (always required), people:read, sessions:read, segments:write, reports:write, feedback:write and offline_access; the connection runs under the user's own role and can't delete or reach administration. The HTTP APIs take one environment API key as `Authorization: Token \u003ckey\u003e`, shown on the Environment page; the docs say to contact support to regenerate it.",
      "pricing": "paid",
      "pricingNotes": "Starter $299 a month for up to 2,000 MAU with basic trends and funnels; Growth from $849 a month with advanced analytics and the HTTP API; Enterprise by quote with SSO, activity logs and a custom SLA. Bulk export, import and data warehouse sync are add-ons. 14-day free trial with no card required.",
      "priceSummary": "$299 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, llms.txt, the MCP docs or the pricing page (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 235722,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.userpilot.com/api-references/overview",
      "llmsTxt": "https://docs.userpilot.com/llms.txt",
      "registryName": "io.userpilot/mcp",
      "capabilities": [
        "analytics.query",
        "analytics.funnels",
        "analytics.events"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "remote-mcp",
        "mcp-registry",
        "oauth",
        "llms-txt",
        "no-card",
        "status-page",
        "soc2",
        "closed-source",
        "webhooks",
        "eu-region"
      ],
      "lastRelease": "2026-10-11",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 64.4,
        "grade": "B",
        "agentReady": false,
        "rank": 471,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 8,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 60,
          "maintenance": 79,
          "payments": 30,
          "reliability": 82,
          "schema": 71,
          "security": 62,
          "transparency": 59
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "Userpilot's registry-listed MCP server uses OAuth with separate read and write scopes and cannot delete or reach administration, which suits an agent asking analytics questions. Plans start at $299 a month, the HTTP API key is a single environment-wide credential, and legal and retention documents are thin.",
        "bestFor": "SaaS teams already using Userpilot for onboarding who want an agent to answer analytics questions and draft segments and surveys.",
        "strengths": [
          "Hosted MCP server in the official registry as io.userpilot/mcp, with OAuth and PKCE",
          "Scopes split reads of analytics, profiles and session replay from writes of segments, reports and survey drafts",
          "No delete, publish or administration actions are reachable through MCP",
          "Status page with three ingestion regions and no incidents from August to November 2026",
          "llms.txt and Markdown docs, with OpenAPI 3.0 on each API reference page"
        ],
        "weaknesses": [
          "Plans start at $299 a month, and the HTTP API needs Growth from $849",
          "The HTTP API uses one environment-wide key that support has to regenerate",
          "The MCP tool list and its rate limits aren't published",
          "No security.txt, disclosure policy or bug bounty found",
          "The privacy policy and security page name different sub-processors"
        ],
        "agentNotes": [
          "Ask for only the scopes the task needs; profile and session replay reads are separate grants",
          "Expect survey writes to stay drafts that a person reviews and publishes in Userpilot",
          "Refresh the connector's tool list after Userpilot adds tools, since clients cache it",
          "Back off exponentially on 429 from Identify and Track, which allow 600 requests a minute",
          "Use the bulk export job API for raw events rather than looping over analytics tools"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 64.4
          }
        ],
        "editorialScores": {
          "ergonomics": 60,
          "maintenance": 79,
          "payments": 30,
          "reliability": 82,
          "schema": 71,
          "security": 62,
          "transparency": 42
        },
        "provenanceScore": 76,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "claudeCode": "claude mcp add --transport http userpilot https://mcp.userpilot.io/mcp",
        "config": {
          "mcpServers": {
            "userpilot": {
              "url": "https://mcp.userpilot.io/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/analytics.query",
        "tool": "https://letme.dev/userpilot"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Starter plan",
          "unit": "month",
          "usd": 299,
          "note": "Up to 2,000 MAU"
        },
        {
          "item": "Growth plan",
          "unit": "month",
          "usd": 849,
          "note": "Starting price; includes advanced product analytics and the HTTP API"
        }
      ],
      "provenance": {
        "legalEntity": "Userpilot, Inc.",
        "domain": "userpilot.com",
        "domainRegistered": "2011-01-08",
        "endpointOnVendorDomain": false,
        "terms": "https://userpilot.com/terms-of-use/",
        "privacy": "https://userpilot.com/privacy-policy/",
        "statusPage": "https://status.userpilot.io",
        "changelog": "https://docs.userpilot.com/developer/installation/mobile/ios/mobile-ios-release-notes",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The MCP server and APIs are on userpilot.io; the website and legal pages are on userpilot.com.",
          "The terms were last updated on 23 April 2024 and the privacy policy on 11 March 2025, which names a DPO and Userpilot, Inc. in Austin, Texas.",
          "docs.userpilot.com/robots.txt carries Content-Signal ai-train=yes, search=yes, ai-input=yes. userpilot.com/robots.txt disallows only search paths.",
          "userpilot.com/.well-known/security.txt returned 404, and the security page names no disclosure policy or bug bounty.",
          "RDAP gives userpilot.com a registration date of 8 January 2011."
        ],
        "score": 76
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/userpilot.json",
      "live": {
        "slug": "userpilot",
        "probe": {
          "target": "https://mcp.userpilot.io/mcp",
          "method": "get",
          "lastAt": "2026-11-07T18:21:02.792914465Z",
          "lastOk": true,
          "lastStatus": 405,
          "lastMs": 563,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 495,
          "p95ms24h": 585,
          "samples24h": 200,
          "samples30d": 200,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.userpilot.io",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:48:54.858690533Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.userpilot/mcp",
            "version": "1.0.0",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          },
          {
            "registry": "npm",
            "name": "userpilot",
            "version": "1.4.3",
            "seenAt": "2026-11-07T00:14:26.929507083Z"
          }
        ],
        "npmWeekly": 235722,
        "securityTxt": {
          "url": "https://userpilot.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:01:10.604728076Z"
        },
        "llmsTxt": {
          "url": "https://docs.userpilot.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:34:15.247254272Z"
        },
        "pages": [
          {
            "url": "https://docs.userpilot.com/developer/installation/mobile/ios/mobile-ios-release-notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:08:32.05689434Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b489ebf9a491"
          },
          {
            "url": "https://userpilot.com/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:23:01.88432514Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "299f9d9cd275"
          },
          {
            "url": "https://userpilot.com/terms-of-use/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:23:04.076461926Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "dea374efccdb"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.userpilot.io/mcp",
          "checkedAt": "2026-11-07T01:48:55.558250288Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:48:55.558250288Z"
        },
        "updatedAt": "2026-11-07T18:21:02.792914465Z"
      }
    },
    "edges": [
      {
        "by": 30,
        "category": "payments",
        "leads": "userpilot",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). No price is published. The plans page says every plan is individually packaged and leads to a demo request (0). No free plan or trial was found on the plans page, the product pages or the docs (0). Access needs a subscription and a browser sign-in through Opti ID (0).",
          "b": "No x402, MPP or L402 (0). Plan prices are public ($299 and from $849 a month), with no per-unit prices (10). 14-day free trial with no card required (20). Signup and OAuth approval happen in a browser (0). 0+10+20+0 = 30."
        },
        "scores": {
          "a": 0,
          "b": 30
        }
      },
      {
        "by": 16,
        "category": "transparency",
        "leads": "optimizely",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed hosted service under a published Online Software Subscription Agreement and API, SDK and MCP terms. The SDKs are open source under Apache 2.0 (17 of 30). The privacy notice of 1 July 2026 says it does not cover customer data and points to the subscription agreement and the Data Processing Agreement (V 2026-01), which agree. Event data is kept 18 months, and customer data may be deleted 30 days after a subscription ends. How the MCP server and Opal handle prompts for Experimentation is not stated on the MCP pages (22 of 30). The API, SDK and MCP terms let Optimizely revise, suspend or cancel any API or MCP at any time under its documentation and policies. An SDK compatibility matrix exists. No deprecation policy with a notice period was found for the APIs (6 of 20). The sub-processor list, updated 14 September 2026, names providers by product with hosting locations. Web and Feature Experimentation list Amazon Web Services in the United States and Google Cloud in the United States and Europe (18 of 20).",
          "b": "A closed service with terms dated 23 April 2024 (15 of 30). The privacy policy of 11 March 2025 names a DPO and two sub-processors (AWS and Cloudflare), while the security page names AWS, Google Cloud and Stripe. The DPA is on request and no customer-data retention period is stated (14 of 30). No deprecation policy or dated API notices found (3 of 20). Sub-processors are named with addresses but not data locations, though an EU ingestion endpoint exists (10 of 20). 15+14+3+10 = 42."
        },
        "scores": {
          "a": 75,
          "b": 59
        }
      },
      {
        "by": 8,
        "category": "ergonomics",
        "leads": "optimizely",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "The MCP server lists eight tools since `exp_program_reporting_execute_query` was added on 13 October 2026, which is 25 on the checklist. We took 2 off because the tool definitions were unread and their size is unknown (23 of 25). `per_page` up to 100 and `page` on the v2 lists, `page_token`, `sort` and `query` on the flags list, and time windows on results (17 of 20). The Optimizely API returns `code`, `message` and a `uuid`, and the Feature Experimentation API returns a problem detail object. MCP error results were unread (13 of 20). No idempotency keys were found and the tool annotations were unread. The docs say the agent confirms project, environment and details before a change, which is client behaviour, and entities are archived through the lifecycle tool (5 of 20). The MCP server needs only a URL. The official SDKs in eleven languages evaluate flags and log events and do not cover the management APIs (10 of 15).",
          "b": "The tool count isn't published; the docs say the assistant can search hundreds of extra read-only operations on demand, which reads as dynamic loading. Without the list we give the middle band (15 of 25). Export jobs filter by date range, users, events and segments, and job lists paginate (14 of 20). A documented error reference (13 of 20). No deletes or admin through MCP by design; annotations weren't readable and no idempotency keys were found (10 of 20). The HTTP APIs have no official server-side SDK; client SDKs for web and six mobile frameworks (8 of 15). 15+14+13+10+8 = 60."
        },
        "scores": {
          "a": 68,
          "b": 60
        }
      },
      {
        "by": 5,
        "category": "schema",
        "leads": "optimizely",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "The Swagger 2.0 file for the Optimizely API sits at api.optimizely.com, whose robots.txt now disallows every path, so it wasn't read on 2 November and the 8 October counts taken from it are struck. Each reference page on docs.optimizely.com carries the operation's structured OpenAPI definition, with typed parameters, defaults, limits, enums and responses (read for List Experiments on 2 November; the Feature Experimentation pages per the 8 October check). We could not read the MCP tool schemas, which need a sign-in (20 of 25). llms.txt and a Markdown copy of every docs page (10). Reference pages describe each operation's purpose. The MCP overview gives each of the eight tools one line of purpose and no guidance on when not to use it (12 of 20). Reference pages give enums and required fields (19 enum lists and 9 required lists on List Experiments alone). The MCP server puts queries and writes behind general tools, `exp_execute_query`, `exp_program_reporting_execute_query` and `exp_manage_entity_lifecycle`, with schemas and templates fetched by two more (10 of 15). Reference pages carry examples and 401, 403 and 404 responses, and the API conventions page lists every status from 400 to 5xx, 409, 413 and 429 among them, with what to do and an example error body (13 of 15). Versions are in the path (`/v2`, `/flags/v1`) and each product has dated release notes with an RSS feed. No changelog for the APIs alone was found (11 of 15). 20 + 10 + 12 + 10 + 13 + 11 = 76.",
          "b": "Every API reference page embeds an OpenAPI 3.0 definition, though no standalone spec file was found (20 of 25). llms.txt and Markdown versions of every page (10). Endpoint pages state their purpose and the MCP docs say what each permission allows; the MCP tool definitions weren't read because that needs a session (12 of 20). Request bodies are typed, mostly as strings and string arrays with few enums (9 of 15). An error reference covers 400, 401, 422 and 429 with causes, and pages carry examples (12 of 15). /v1 paths and dated SDK release notes; no API changelog was found (8 of 15). 20+10+12+9+12+8 = 71."
        },
        "scores": {
          "a": 76,
          "b": 71
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Optimizely",
        "b": "Userpilot, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://exp.mcp.opal.optimizely.com/mcp",
        "b": "https://mcp.userpilot.io/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary hosted service under Optimizely's Online Software Subscription Agreement and its API, SDK and MCP terms. The Feature Experimentation SDKs on GitHub are Apache 2.0",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "8",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.userpilot/mcp",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-15",
        "b": "2026-10-11",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2024-04-23",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2025-03-11",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "460k npm/wk, 86k PyPI/wk",
        "b": "236k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "2/5 (4)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Optimizely Experimentation and Userpilot score within a point of each other on agent readiness, 64.9 (B) and 64.4 (B). Userpilot leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, Optimizely Experimentation or Userpilot?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Optimizely Experimentation and Userpilot need an API key?"
      },
      {
        "answer": "Yes. Optimizely Experimentation has a hosted endpoint at https://exp.mcp.opal.optimizely.com/mcp and Userpilot at https://mcp.userpilot.io/mcp.",
        "question": "Can an agent call Optimizely Experimentation and Userpilot without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 76 against 71",
          "Agent ergonomics, 68 against 60",
          "Transparency \u0026 trust, 75 against 59"
        ],
        "also": null,
        "goodFor": "An agent working for an existing Optimizely customer that lists and creates flags, experiments and audiences, reads experiment results and writes SDK integration code.",
        "slug": "optimizely",
        "watchFor": "No price is published. The plans page asks for details to build a custom quote"
      },
      {
        "aheadOn": [
          "Payments \u0026 pricing, 30 against 0"
        ],
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "SaaS teams already using Userpilot for onboarding who want an agent to answer analytics questions and draft segments and surveys.",
        "slug": "userpilot",
        "watchFor": "Plans start at $299 a month, and the HTTP API needs Growth from $849"
      }
    ],
    "history": {
      "optimizely": [
        {
          "causes": [
            "evidence"
          ],
          "date": "2026-11-02",
          "delta": 2.3,
          "from": 62.6,
          "fromGrade": "B",
          "to": 64.9,
          "toGrade": "B"
        }
      ],
      "userpilot": null
    },
    "job": {
      "capability": "analytics.query",
      "name": "Analytics queries"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amplitude-vs-optimizely.json",
        "title": "Amplitude vs Optimizely Experimentation",
        "url": "https://www.anchorterminal.com/compare/amplitude-vs-optimizely"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amplitude-vs-userpilot.json",
        "title": "Amplitude vs Userpilot",
        "url": "https://www.anchorterminal.com/compare/amplitude-vs-userpilot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/basedash-mcp-vs-userpilot.json",
        "title": "Basedash MCP vs Userpilot",
        "url": "https://www.anchorterminal.com/compare/basedash-mcp-vs-userpilot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/countly-vs-optimizely.json",
        "title": "Countly vs Optimizely Experimentation",
        "url": "https://www.anchorterminal.com/compare/countly-vs-optimizely"
      },
      {
        "json": "https://www.anchorterminal.com/compare/countly-vs-userpilot.json",
        "title": "Countly vs Userpilot",
        "url": "https://www.anchorterminal.com/compare/countly-vs-userpilot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fullstory-vs-optimizely.json",
        "title": "Fullstory vs Optimizely Experimentation",
        "url": "https://www.anchorterminal.com/compare/fullstory-vs-optimizely"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fullstory-vs-userpilot.json",
        "title": "Fullstory vs Userpilot",
        "url": "https://www.anchorterminal.com/compare/fullstory-vs-userpilot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/growthbook-vs-userpilot.json",
        "title": "GrowthBook vs Userpilot",
        "url": "https://www.anchorterminal.com/compare/growthbook-vs-userpilot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/matomo-vs-optimizely.json",
        "title": "Matomo vs Optimizely Experimentation",
        "url": "https://www.anchorterminal.com/compare/matomo-vs-optimizely"
      },
      {
        "json": "https://www.anchorterminal.com/compare/matomo-vs-userpilot.json",
        "title": "Matomo vs Userpilot",
        "url": "https://www.anchorterminal.com/compare/matomo-vs-userpilot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mixpanel-vs-optimizely.json",
        "title": "Mixpanel vs Optimizely Experimentation",
        "url": "https://www.anchorterminal.com/compare/mixpanel-vs-optimizely"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mixpanel-vs-userpilot.json",
        "title": "Mixpanel vs Userpilot",
        "url": "https://www.anchorterminal.com/compare/mixpanel-vs-userpilot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mostly-good-metrics-vs-optimizely.json",
        "title": "Mostly Good Metrics vs Optimizely Experimentation",
        "url": "https://www.anchorterminal.com/compare/mostly-good-metrics-vs-optimizely"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mostly-good-metrics-vs-userpilot.json",
        "title": "Mostly Good Metrics vs Userpilot",
        "url": "https://www.anchorterminal.com/compare/mostly-good-metrics-vs-userpilot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openpanel-vs-optimizely.json",
        "title": "OpenPanel vs Optimizely Experimentation",
        "url": "https://www.anchorterminal.com/compare/openpanel-vs-optimizely"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openpanel-vs-userpilot.json",
        "title": "OpenPanel vs Userpilot",
        "url": "https://www.anchorterminal.com/compare/openpanel-vs-userpilot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/optimizely-vs-pendo.json",
        "title": "Optimizely Experimentation vs Pendo",
        "url": "https://www.anchorterminal.com/compare/optimizely-vs-pendo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/optimizely-vs-woopra.json",
        "title": "Optimizely Experimentation vs Woopra",
        "url": "https://www.anchorterminal.com/compare/optimizely-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pendo-vs-userpilot.json",
        "title": "Pendo vs Userpilot",
        "url": "https://www.anchorterminal.com/compare/pendo-vs-userpilot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/posthog-vs-userpilot.json",
        "title": "PostHog vs Userpilot",
        "url": "https://www.anchorterminal.com/compare/posthog-vs-userpilot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/statsig-vs-userpilot.json",
        "title": "Statsig vs Userpilot",
        "url": "https://www.anchorterminal.com/compare/statsig-vs-userpilot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/userpilot-vs-woopra.json",
        "title": "Userpilot vs Woopra",
        "url": "https://www.anchorterminal.com/compare/userpilot-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/flagsmith-vs-optimizely.json",
        "title": "Flagsmith vs Optimizely Experimentation",
        "url": "https://www.anchorterminal.com/compare/flagsmith-vs-optimizely"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness-fme-vs-optimizely.json",
        "title": "Harness Feature Management \u0026 Experimentation vs Optimizely Experimentation",
        "url": "https://www.anchorterminal.com/compare/harness-fme-vs-optimizely"
      },
      {
        "json": "https://www.anchorterminal.com/compare/launchdarkly-vs-optimizely.json",
        "title": "LaunchDarkly vs Optimizely Experimentation",
        "url": "https://www.anchorterminal.com/compare/launchdarkly-vs-optimizely"
      },
      {
        "json": "https://www.anchorterminal.com/compare/heap-vs-userpilot.json",
        "title": "Heap vs Userpilot",
        "url": "https://www.anchorterminal.com/compare/heap-vs-userpilot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/growthbook-vs-optimizely.json",
        "title": "GrowthBook vs Optimizely Experimentation",
        "url": "https://www.anchorterminal.com/compare/growthbook-vs-optimizely"
      },
      {
        "json": "https://www.anchorterminal.com/compare/optimizely-vs-posthog.json",
        "title": "Optimizely Experimentation vs PostHog",
        "url": "https://www.anchorterminal.com/compare/optimizely-vs-posthog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/optimizely-vs-statsig.json",
        "title": "Optimizely Experimentation vs Statsig",
        "url": "https://www.anchorterminal.com/compare/optimizely-vs-statsig"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 1,
        "edge": "optimizely",
        "key": "reliability",
        "name": "Reliability",
        "optimizely": 83,
        "userpilot": 82,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 5,
        "edge": "optimizely",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "optimizely": 76,
        "userpilot": 71,
        "weight": 13
      },
      {
        "by": 8,
        "edge": "optimizely",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "optimizely": 68,
        "userpilot": 60,
        "weight": 13
      },
      {
        "by": 4,
        "edge": "optimizely",
        "key": "security",
        "name": "Security \u0026 auth",
        "optimizely": 66,
        "userpilot": 62,
        "weight": 14
      },
      {
        "by": 30,
        "edge": "userpilot",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "optimizely": 0,
        "userpilot": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 1,
        "edge": "userpilot",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "optimizely": 78,
        "userpilot": 79,
        "weight": 7
      },
      {
        "by": 16,
        "edge": "optimizely",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "optimizely": 75,
        "userpilot": 59,
        "weight": 7
      }
    ],
    "summary": "Optimizely Experimentation and Userpilot score within a point of each other on agent readiness, 64.9 (B) and 64.4 (B). Userpilot leads on payments \u0026 pricing. Both do analytics queries.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "optimizely": "Optimizely Experimentation suits agents working for an existing customer that manage flags and experiments and read results. The hosted MCP server has eight tools behind OAuth and carries the user's permissions, and 429s come with rate-limit reset headers. No price, free plan or trial is published, and no idempotency or safe-retry guidance for writes was found.",
      "userpilot": "Userpilot's registry-listed MCP server uses OAuth with separate read and write scopes and cannot delete or reach administration, which suits an agent asking analytics questions. Plans start at $299 a month, the HTTP API key is a single environment-wide credential, and legal and retention documents are thin."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/optimizely-vs-userpilot",
    "json": "https://www.anchorterminal.com/compare/optimizely-vs-userpilot.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/optimizely-vs-userpilot.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/optimizely-vs-userpilot.min.md"
  },
  "markdown": "Optimizely Experimentation and Userpilot score within a point of each other on agent readiness, 64.9 (B) and 64.4 (B). Userpilot leads on payments \u0026 pricing. Both do analytics queries.\n\n- Optimizely Experimentation: grade B, 64.9/100, rank #443 of 1486. Markdown https://www.anchorterminal.com/tools/optimizely.md · JSON https://www.anchorterminal.com/api/v1/tools/optimizely.json\n- Userpilot: grade B, 64.4/100, rank #471 of 1486. Markdown https://www.anchorterminal.com/tools/userpilot.md · JSON https://www.anchorterminal.com/api/v1/tools/userpilot.json\n- Best product analytics and experimentation tools for AI agents: https://www.anchorterminal.com/best/product-analytics/index.md\n- All 153 product analytics comparisons: https://www.anchorterminal.com/compare/product-analytics/index.md\n\n## Which one, for what\n\n### Optimizely Experimentation (B)\n\nGood for: An agent working for an existing Optimizely customer that lists and creates flags, experiments and audiences, reads experiment results and writes SDK integration code.\n\nAhead on:\n- Schema \u0026 documentation, 76 against 71\n- Agent ergonomics, 68 against 60\n- Transparency \u0026 trust, 75 against 59\n\nWatch for: No price is published. The plans page asks for details to build a custom quote\n\n### Userpilot (B)\n\nGood for: SaaS teams already using Userpilot for onboarding who want an agent to answer analytics questions and draft segments and surveys.\n\nAhead on:\n- Payments \u0026 pricing, 30 against 0\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: Plans start at $299 a month, and the HTTP API needs Growth from $849\n\n\n## Why the edge\n\n### Payments \u0026 pricing: Userpilot +30\n\n- Optimizely Experimentation (0): No x402, MPP or L402 (0). No price is published. The plans page says every plan is individually packaged and leads to a demo request (0). No free plan or trial was found on the plans page, the product pages or the docs (0). Access needs a subscription and a browser sign-in through Opti ID (0).\n- Userpilot (30): No x402, MPP or L402 (0). Plan prices are public ($299 and from $849 a month), with no per-unit prices (10). 14-day free trial with no card required (20). Signup and OAuth approval happen in a browser (0). 0+10+20+0 = 30.\n\n### Transparency \u0026 trust: Optimizely Experimentation +16\n\n- Optimizely Experimentation (75): Closed hosted service under a published Online Software Subscription Agreement and API, SDK and MCP terms. The SDKs are open source under Apache 2.0 (17 of 30). The privacy notice of 1 July 2026 says it does not cover customer data and points to the subscription agreement and the Data Processing Agreement (V 2026-01), which agree. Event data is kept 18 months, and customer data may be deleted 30 days after a subscription ends. How the MCP server and Opal handle prompts for Experimentation is not stated on the MCP pages (22 of 30). The API, SDK and MCP terms let Optimizely revise, suspend or cancel any API or MCP at any time under its documentation and policies. An SDK compatibility matrix exists. No deprecation policy with a notice period was found for the APIs (6 of 20). The sub-processor list, updated 14 September 2026, names providers by product with hosting locations. Web and Feature Experimentation list Amazon Web Services in the United States and Google Cloud in the United States and Europe (18 of 20).\n- Userpilot (59): A closed service with terms dated 23 April 2024 (15 of 30). The privacy policy of 11 March 2025 names a DPO and two sub-processors (AWS and Cloudflare), while the security page names AWS, Google Cloud and Stripe. The DPA is on request and no customer-data retention period is stated (14 of 30). No deprecation policy or dated API notices found (3 of 20). Sub-processors are named with addresses but not data locations, though an EU ingestion endpoint exists (10 of 20). 15+14+3+10 = 42.\n\n### Agent ergonomics: Optimizely Experimentation +8\n\n- Optimizely Experimentation (68): The MCP server lists eight tools since `exp_program_reporting_execute_query` was added on 13 October 2026, which is 25 on the checklist. We took 2 off because the tool definitions were unread and their size is unknown (23 of 25). `per_page` up to 100 and `page` on the v2 lists, `page_token`, `sort` and `query` on the flags list, and time windows on results (17 of 20). The Optimizely API returns `code`, `message` and a `uuid`, and the Feature Experimentation API returns a problem detail object. MCP error results were unread (13 of 20). No idempotency keys were found and the tool annotations were unread. The docs say the agent confirms project, environment and details before a change, which is client behaviour, and entities are archived through the lifecycle tool (5 of 20). The MCP server needs only a URL. The official SDKs in eleven languages evaluate flags and log events and do not cover the management APIs (10 of 15).\n- Userpilot (60): The tool count isn't published; the docs say the assistant can search hundreds of extra read-only operations on demand, which reads as dynamic loading. Without the list we give the middle band (15 of 25). Export jobs filter by date range, users, events and segments, and job lists paginate (14 of 20). A documented error reference (13 of 20). No deletes or admin through MCP by design; annotations weren't readable and no idempotency keys were found (10 of 20). The HTTP APIs have no official server-side SDK; client SDKs for web and six mobile frameworks (8 of 15). 15+14+13+10+8 = 60.\n\n### Schema \u0026 documentation: Optimizely Experimentation +5\n\n- Optimizely Experimentation (76): The Swagger 2.0 file for the Optimizely API sits at api.optimizely.com, whose robots.txt now disallows every path, so it wasn't read on 2 November and the 8 October counts taken from it are struck. Each reference page on docs.optimizely.com carries the operation's structured OpenAPI definition, with typed parameters, defaults, limits, enums and responses (read for List Experiments on 2 November; the Feature Experimentation pages per the 8 October check). We could not read the MCP tool schemas, which need a sign-in (20 of 25). llms.txt and a Markdown copy of every docs page (10). Reference pages describe each operation's purpose. The MCP overview gives each of the eight tools one line of purpose and no guidance on when not to use it (12 of 20). Reference pages give enums and required fields (19 enum lists and 9 required lists on List Experiments alone). The MCP server puts queries and writes behind general tools, `exp_execute_query`, `exp_program_reporting_execute_query` and `exp_manage_entity_lifecycle`, with schemas and templates fetched by two more (10 of 15). Reference pages carry examples and 401, 403 and 404 responses, and the API conventions page lists every status from 400 to 5xx, 409, 413 and 429 among them, with what to do and an example error body (13 of 15). Versions are in the path (`/v2`, `/flags/v1`) and each product has dated release notes with an RSS feed. No changelog for the APIs alone was found (11 of 15). 20 + 10 + 12 + 10 + 13 + 11 = 76.\n- Userpilot (71): Every API reference page embeds an OpenAPI 3.0 definition, though no standalone spec file was found (20 of 25). llms.txt and Markdown versions of every page (10). Endpoint pages state their purpose and the MCP docs say what each permission allows; the MCP tool definitions weren't read because that needs a session (12 of 20). Request bodies are typed, mostly as strings and string arrays with few enums (9 of 15). An error reference covers 400, 401, 422 and 429 with causes, and pages carry examples (12 of 15). /v1 paths and dated SDK release notes; no API changelog was found (8 of 15). 20+10+12+9+12+8 = 71.\n\n## Score by category\n\n| Category | Weight | Optimizely Experimentation | Userpilot | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 83 | 82 | Optimizely Experimentation +1 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 76 | 71 | Optimizely Experimentation +5 |\n| Agent ergonomics | 13% (16.2 this run) | 68 | 60 | Optimizely Experimentation +8 |\n| Security \u0026 auth | 14% (17.5 this run) | 66 | 62 | Optimizely Experimentation +4 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 0 | 30 | Userpilot +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 78 | 79 | Userpilot +1 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 75 | 59 | Optimizely Experimentation +16 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **64.9 · B** | **64.4 · B** | |\n\n## Facts side by side\n\n| Fact | Optimizely Experimentation | Userpilot |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Optimizely | Userpilot, Inc. |\n| Hosted endpoint | `https://exp.mcp.opal.optimizely.com/mcp` | `https://mcp.userpilot.io/mcp` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | Proprietary hosted service under Optimizely's Online Software Subscription Agreement and its API, SDK and MCP terms. The Feature Experimentation SDKs on GitHub are Apache 2.0 | none |\n| Tools exposed | 8 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.userpilot/mcp` |\n| Last release | 2026-10-15 | 2026-10-11 |\n| Terms last updated | no date given | 2024-04-23 |\n| Privacy policy last updated | no date given | 2025-03-11 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | 460k npm/wk, 86k PyPI/wk | 236k npm/wk |\n| Agent reviews | 2/5 (4) | none |\n\n## How the scores have moved\n\n### Optimizely Experimentation\n\n- +2.3 on 2 November 2026: new evidence\n\n### Userpilot\n\nNo score change since it was listed.\n\n## Verdicts\n\n**Optimizely Experimentation.** Optimizely Experimentation suits agents working for an existing customer that manage flags and experiments and read results. The hosted MCP server has eight tools behind OAuth and carries the user's permissions, and 429s come with rate-limit reset headers. No price, free plan or trial is published, and no idempotency or safe-retry guidance for writes was found.\n\n**Userpilot.** Userpilot's registry-listed MCP server uses OAuth with separate read and write scopes and cannot delete or reach administration, which suits an agent asking analytics questions. Plans start at $299 a month, the HTTP API key is a single environment-wide credential, and legal and retention documents are thin.\n\n## Before you call either\n\n### Optimizely Experimentation\n\n1. Connect to https://exp.mcp.opal.optimizely.com/mcp and complete OAuth in a browser. The session is time-limited, so expect to sign in again\n2. Call `exp_get_schemas` before `exp_execute_query`, and `exp_get_entity_templates` before `exp_manage_entity_lifecycle`, to learn the fields each entity needs\n3. Confirm the project and environment with the user before any create or update. Changes go to live Optimizely data\n4. Use the Visual Editor for Web Experimentation variation code. The MCP server does not write custom HTML, CSS or JavaScript\n5. Over REST, stay under 2 requests a second on `/flags/v1`, 100 a minute on `/v2` and 20 a minute on the results endpoints, and on a 429 wait until `X-RATELIMIT-RESET`\n\n### Userpilot\n\n1. Ask for only the scopes the task needs; profile and session replay reads are separate grants\n2. Expect survey writes to stay drafts that a person reviews and publishes in Userpilot\n3. Refresh the connector's tool list after Userpilot adds tools, since clients cache it\n4. Back off exponentially on 429 from Identify and Track, which allow 600 requests a minute\n5. Use the bulk export job API for raw events rather than looping over analytics tools\n\n## Questions\n\n### Which is better for AI agents, Optimizely Experimentation or Userpilot?\n\nOptimizely Experimentation and Userpilot score within a point of each other on agent readiness, 64.9 (B) and 64.4 (B). Userpilot leads on payments \u0026 pricing.\n\n### Do Optimizely Experimentation and Userpilot need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Optimizely Experimentation and Userpilot without installing anything?\n\nYes. Optimizely Experimentation has a hosted endpoint at https://exp.mcp.opal.optimizely.com/mcp and Userpilot at https://mcp.userpilot.io/mcp.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/optimizely-vs-userpilot.json, and with the fewest tokens: https://www.anchorterminal.com/compare/optimizely-vs-userpilot.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"optimizely\", \"b\": \"userpilot\"}`. From a terminal: `anchor compare optimizely userpilot`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/optimizely.json and https://www.anchorterminal.com/api/v1/tools/userpilot.json\n\n## Other comparisons with Optimizely Experimentation or Userpilot\n\n- [Amplitude vs Optimizely Experimentation](https://www.anchorterminal.com/compare/amplitude-vs-optimizely.md)\n- [Amplitude vs Userpilot](https://www.anchorterminal.com/compare/amplitude-vs-userpilot.md)\n- [Basedash MCP vs Userpilot](https://www.anchorterminal.com/compare/basedash-mcp-vs-userpilot.md)\n- [Countly vs Optimizely Experimentation](https://www.anchorterminal.com/compare/countly-vs-optimizely.md)\n- [Countly vs Userpilot](https://www.anchorterminal.com/compare/countly-vs-userpilot.md)\n- [Fullstory vs Optimizely Experimentation](https://www.anchorterminal.com/compare/fullstory-vs-optimizely.md)\n- [Fullstory vs Userpilot](https://www.anchorterminal.com/compare/fullstory-vs-userpilot.md)\n- [GrowthBook vs Userpilot](https://www.anchorterminal.com/compare/growthbook-vs-userpilot.md)\n- [Matomo vs Optimizely Experimentation](https://www.anchorterminal.com/compare/matomo-vs-optimizely.md)\n- [Matomo vs Userpilot](https://www.anchorterminal.com/compare/matomo-vs-userpilot.md)\n- [Mixpanel vs Optimizely Experimentation](https://www.anchorterminal.com/compare/mixpanel-vs-optimizely.md)\n- [Mixpanel vs Userpilot](https://www.anchorterminal.com/compare/mixpanel-vs-userpilot.md)\n- [Mostly Good Metrics vs Optimizely Experimentation](https://www.anchorterminal.com/compare/mostly-good-metrics-vs-optimizely.md)\n- [Mostly Good Metrics vs Userpilot](https://www.anchorterminal.com/compare/mostly-good-metrics-vs-userpilot.md)\n- [OpenPanel vs Optimizely Experimentation](https://www.anchorterminal.com/compare/openpanel-vs-optimizely.md)\n- [OpenPanel vs Userpilot](https://www.anchorterminal.com/compare/openpanel-vs-userpilot.md)\n- [Optimizely Experimentation vs Pendo](https://www.anchorterminal.com/compare/optimizely-vs-pendo.md)\n- [Optimizely Experimentation vs Woopra](https://www.anchorterminal.com/compare/optimizely-vs-woopra.md)\n- [Pendo vs Userpilot](https://www.anchorterminal.com/compare/pendo-vs-userpilot.md)\n- [PostHog vs Userpilot](https://www.anchorterminal.com/compare/posthog-vs-userpilot.md)\n- [Statsig vs Userpilot](https://www.anchorterminal.com/compare/statsig-vs-userpilot.md)\n- [Userpilot vs Woopra](https://www.anchorterminal.com/compare/userpilot-vs-woopra.md)\n- [Flagsmith vs Optimizely Experimentation](https://www.anchorterminal.com/compare/flagsmith-vs-optimizely.md)\n- [Harness Feature Management \u0026 Experimentation vs Optimizely Experimentation](https://www.anchorterminal.com/compare/harness-fme-vs-optimizely.md)\n- [LaunchDarkly vs Optimizely Experimentation](https://www.anchorterminal.com/compare/launchdarkly-vs-optimizely.md)\n- [Heap vs Userpilot](https://www.anchorterminal.com/compare/heap-vs-userpilot.md)\n- [GrowthBook vs Optimizely Experimentation](https://www.anchorterminal.com/compare/growthbook-vs-optimizely.md)\n- [Optimizely Experimentation vs PostHog](https://www.anchorterminal.com/compare/optimizely-vs-posthog.md)\n- [Optimizely Experimentation vs Statsig](https://www.anchorterminal.com/compare/optimizely-vs-statsig.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Optimizely Experimentation vs Userpilot",
        "url": ""
      }
    ],
    "description": "Optimizely Experimentation and Userpilot score within a point of each other for analytics queries, 64.9 and 64.4 out of 100. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Optimizely Experimentation B 64.9",
      "Userpilot B 64.4",
      "scores"
    ],
    "h1": "Optimizely Experimentation vs Userpilot",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/optimizely-vs-userpilot",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Optimizely Experimentation vs Userpilot for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/optimizely-vs-userpilot"
  },
  "tokens": {
    "markdown": 4250,
    "slim": 2180
  },
  "version": 1
}
