{
  "data": {
    "a": {
      "slug": "harness-fme",
      "name": "Harness Feature Management \u0026 Experimentation",
      "vendor": "Harness Inc.",
      "vendorUrl": "https://www.harness.io",
      "kind": "http-api",
      "category": "product-analytics",
      "summary": "Harness Feature Management \u0026 Experimentation (FME), formerly Split, manages feature flags, targeting, metrics and experiments. Agents reach it through the Admin API at api.split.io and the FME toolset of the Harness MCP server.",
      "url": "https://www.anchorterminal.com/tools/harness-fme",
      "markdownUrl": "https://www.anchorterminal.com/tools/harness-fme.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/harness-fme.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/harness-fme.json",
      "dns": "harness-fme.grade.anchorterminal.com",
      "repo": "https://github.com/harness/mcp-server",
      "transports": [
        "http",
        "stdio",
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.harness.io/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "harness-mcp-v2"
        }
      ],
      "auth": "mixed",
      "authNotes": "The Admin API takes an Admin API key as a Bearer token, or a Harness personal access token (PAT) or service account token (SAT) in `x-api-key`. Admin keys carry fixed roles that can be combined and cannot be edited after creation, and a key cannot create another with more roles. The local MCP server reads HARNESS_API_KEY. The hosted MCP endpoint uses Harness Platform OAuth and must be enabled per account by Harness Support.",
      "pricing": "freemium",
      "pricingNotes": "An FME Free Plan is enabled from inside a Harness account; its limits are not published. The Enterprise plan and FME pricing are by quotation through sales. No FME prices appear on harness.io/pricing.",
      "priceSummary": "Freemium",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the FME docs, the Split API reference or harness.io/pricing (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": 11,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 8800,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://developer.harness.io/feature-management-experimentation/feature-management-and-experimentation-documentation",
      "llmsTxt": "https://developer.harness.io/llms.txt",
      "capabilities": [
        "analytics.flags",
        "analytics.experiments",
        "analytics.events"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "remote-mcp",
        "oauth",
        "llms-txt",
        "free-tier",
        "sales-led",
        "status-page",
        "soc2",
        "iso27001",
        "typescript",
        "python",
        "cli",
        "closed-source"
      ],
      "lastRelease": "2026-11-04",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 69.2,
        "grade": "B",
        "agentReady": false,
        "rank": 258,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 4,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 83,
          "maintenance": 81,
          "payments": 15,
          "reliability": 80,
          "schema": 71,
          "security": 79,
          "transparency": 61
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "Harness FME, formerly Split, gives agents 11 consolidated MCP tools with an FME-only toolset, a read-only switch and confirmation on writes, over an Admin API with documented limits and role-scoped keys. FME prices are not published, the free plan's limits are unstated, and the hosted MCP endpoint must be enabled by Harness Support.",
        "bestFor": "Teams already on Harness, or Split customers, who want agents to inspect and change flags and segments with guard rails.",
        "strengths": [
          "11 generic MCP tools with `--toolsets=fme`, readOnlyHint on reads and elicitation before writes",
          "HARNESS_READ_ONLY blocks every create, update, delete and execute call",
          "Admin API keys with fixed, combinable roles, plus Harness PATs and SATs",
          "Documented rate limit with remaining and reset headers, and automatic backoff in the MCP server",
          "SOC 2 Type II, ISO 27001 and FedRAMP 20x, with FME audit logs and MCP audit sinks"
        ],
        "weaknesses": [
          "No FME prices are published; Enterprise is by quotation and free plan limits are unstated",
          "The hosted MCP endpoint must be enabled per account by Harness Support",
          "The FME MCP docs page still describes building a Go binary, unlike the current npm package",
          "About 20 Admin API requests per 10 seconds per organisation, which large lists can hit",
          "No public OpenAPI file for the Admin API was found"
        ],
        "agentNotes": [
          "Start the MCP server with `--toolsets=fme` so only FME resource types load",
          "Call `harness_describe(resource_type='fme_feature_flag')` before a create or update to see the fields",
          "Filter fme_feature_flag lists by name, tags or rollout status rather than listing every flag",
          "Set HARNESS_READ_ONLY for analysis tasks; leave confirmation on for kill, restore and delete",
          "On 429, wait at least the larger X-RateLimit-Reset-Seconds value before retrying"
        ],
        "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": 69.2
          }
        ],
        "editorialScores": {
          "ergonomics": 83,
          "maintenance": 81,
          "payments": 15,
          "reliability": 80,
          "schema": 71,
          "security": 79,
          "transparency": 60
        },
        "provenanceScore": 61,
        "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": {
        "install": "npx harness-mcp-v2@latest",
        "config": {
          "mcpServers": {
            "harness": {
              "args": [
                "harness-mcp-v2@latest",
                "--toolsets=fme"
              ],
              "command": "npx",
              "env": {
                "HARNESS_API_KEY": "pat.xxx"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/analytics.flags",
        "tool": "https://letme.dev/harness-fme"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "Harness Inc.",
        "domain": "harness.io",
        "domainRegistered": "",
        "endpointOnVendorDomain": false,
        "terms": "https://www.harness.io/legal/subscription-terms",
        "privacy": "https://www.harness.io/legal/privacy",
        "statusPage": "https://status.harness.io",
        "changelog": "https://github.com/harness/mcp-server/releases",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The Admin API is on api.split.io, the former Split domain, and the hosted MCP endpoint on mcp.harness.io.",
          "The privacy statement names Harness Inc. as controller and Harness France SAS as EU representative. Its header says last updated 23 October 2026 and its body says version of 14 October 2026.",
          "developer.harness.io/robots.txt allows all and carries Content-Signal ai-train=yes, search=yes, ai-input=yes. docs.split.io allows all but edit and login paths.",
          "www.harness.io/.well-known/security.txt answered with an invalid-request page. The security page gives security@harness.io and a private bug bounty on request.",
          "RDAP gave no registration date for harness.io."
        ],
        "score": 61
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/harness-fme.json",
      "live": {
        "slug": "harness-fme",
        "probe": {
          "target": "https://mcp.harness.io/mcp",
          "method": "get",
          "lastAt": "2026-11-07T19:22:10.85947707Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 308,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 195,
          "p95ms24h": 285,
          "samples24h": 210,
          "samples30d": 210,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.harness.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T19:22:14.403533029Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "harness/mcp-server",
            "version": "v3.2.40",
            "released": "2026-11-05",
            "seenAt": "2026-11-06T23:32:13.419387707Z"
          },
          {
            "registry": "npm",
            "name": "harness-mcp-v2",
            "version": "3.2.40",
            "seenAt": "2026-11-06T23:32:12.430886041Z"
          }
        ],
        "githubStars": 112,
        "npmWeekly": 8800,
        "securityTxt": {
          "url": "https://harness.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:01:19.957252225Z"
        },
        "llmsTxt": {
          "url": "https://developer.harness.io/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:41.749004752Z"
        },
        "pages": [
          {
            "url": "https://www.harness.io/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:29:30.551687912Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b15935b42065"
          },
          {
            "url": "https://www.harness.io/legal/subscription-terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:29:35.70684084Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "871b29e12dd4"
          }
        ],
        "updatedAt": "2026-11-07T19:22:10.85947707Z"
      }
    },
    "answer": "Harness Feature Management \u0026 Experimentation scores 69.2 (B) on agent readiness against Optimizely Experimentation's 64.9 (B), and leads in 4 of 7 scored categories. Optimizely Experimentation leads on schema \u0026 documentation and transparency \u0026 trust.",
    "b": {
      "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": 445,
        "ranked": true,
        "rankOf": 1510,
        "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-07T19:22:24.16618616Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 216,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 99.48,
          "p50ms24h": 159,
          "p95ms24h": 267,
          "samples24h": 238,
          "samples30d": 7430,
          "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": 197,
              "ok": 197
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.optimizely.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T19:23:03.810297493Z"
        },
        "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-07T19:23:03.810297493Z"
      }
    },
    "edges": [
      {
        "by": 15,
        "category": "ergonomics",
        "leads": "harness-fme",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "11 consolidated tools, and `--toolsets=fme` narrows the server to FME (25). Flag lists filter server-side by name, tag and rollout status, and the Admin API paginates with markerLimit (17 of 20). Documented status codes, 429 headers, and a harness_diagnose tool. Error bodies aren't documented per endpoint (14 of 20). harness_list and harness_get carry readOnlyHint, write tools ask for confirmation by elicitation, and harness_delete is marked destructive. No idempotency keys (15 of 20). Two required settings (API key, optional org and project, account ID read from the token); a Python Admin API wrapper and CLI, and SDKs in more than a dozen languages for evaluation (12 of 15). 25+17+14+15+12 = 83.",
          "b": "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)."
        },
        "scores": {
          "a": 83,
          "b": 68
        }
      },
      {
        "by": 15,
        "category": "payments",
        "leads": "harness-fme",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). No FME prices are published; harness.io/pricing lists FME only under Enterprise, priced by quotation (0). The docs describe a Start FME Free Plan step inside a Harness account; its limits and whether a card is needed aren't stated (15 of 20). A person signs up for Harness in a browser and creates a key or token (0). 0+0+15+0 = 15.",
          "b": "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)."
        },
        "scores": {
          "a": 15,
          "b": 0
        }
      },
      {
        "by": 14,
        "category": "transparency",
        "leads": "optimizely",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "A closed service under Harness's subscription terms; the MCP server is MIT (18 of 30). The privacy statement covers website and sales data and defers customer data to the customer agreement and a published DPA; retention periods for customer data weren't found (18 of 30). A versioning policy for SDKs with support windows, and Split-era API endpoints marked deprecated with migration guides (14 of 20). Sub-processors are on the trust centre, which we didn't read, and the security page doesn't name data locations (10 of 20). 18+18+14+10 = 60.",
          "b": "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)."
        },
        "scores": {
          "a": 61,
          "b": 75
        }
      },
      {
        "by": 13,
        "category": "security",
        "leads": "harness-fme",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Admin API keys with combinable roles that can't be widened after creation, Harness PATs and SATs for central management, and Harness Platform OAuth on the hosted MCP endpoint. Credentials travel in headers (28 of 30). HARNESS_READ_ONLY removes every write, writes go through elicitation with a risk threshold for auto-approval, and FME change requests add approval for flag changes (19 of 20). No prompt-injection guidance; the tools return flag names, descriptions and rule data written by people (3 of 15). FME admin, environment and object audit logs, plus structured MCP audit events to file, webhook or OpenTelemetry sinks (13 of 15). SOC 1 and SOC 2 Type II, ISO 27001, 27017 and 27018, FedRAMP 20x, a security@harness.io disclosure route with a 24-hour response, a private bug bounty on request and annual external penetration tests. No security.txt (16 of 20). 28+19+3+13+16 = 79.",
          "b": "The MCP server uses OAuth 2.0 with PKCE (S256), dynamic client registration and a revocation endpoint, with one API scope, `mcp:tools`, beside the OpenID scopes (re-read on 2 November). REST personal access tokens are revocable, named and sent in a header, and administrators can revoke any collaborator's token. The REST OAuth flow has the single scope `all`, described as full access to the account (22 of 30). Sessions and tokens carry the user's role, Feature Experimentation has granular roles for flags, environments and audiences, and change approvals have routed flag changes to reviewers since 6 August 2026. No read-only mode for the MCP server was found, and confirmation before a write is left to the client (13 of 20). No guidance on prompt injection was found, though tools return names, descriptions and hypotheses that people wrote (3 of 15). Change history for projects and flags is in the application, at `/v2/changes` and in webhooks (12 of 15). ISO 27001, ISO 27017, ISO 27018, SOC 2 Type 2 and PCI DSS are stated for Web and Feature Experimentation, with annual penetration tests and a bug bounty programme reachable at securityeng@optimizely.com. No security.txt and no public programme link (16 of 20)."
        },
        "scores": {
          "a": 79,
          "b": 66
        }
      },
      {
        "by": 5,
        "category": "schema",
        "leads": "optimizely",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "No public OpenAPI file for the Admin API was found; the reference is a ReadMe site with a Postman collection. The MCP server's 11 tools have typed inputs, and harness_describe returns each FME resource's fields (18 of 25). llms.txt on both developer.harness.io and docs.split.io, and every page as Markdown with `.md` (10). The README describes each tool and when writes ask for confirmation; resource details sit behind harness_describe rather than in the tool text (13 of 20). The generic tools take a resource_type string and a body, so per-resource constraints aren't in the schema (8 of 15). An error-code page lists 400, 401, 402, 403, 404, 409 and 429 with causes, and docs carry curl examples (10 of 15). Tagged MCP releases and dated SDK versioning policy; the Admin API has v1 and v2 paths and deprecation notices for Split-era endpoints (12 of 15). 18+10+13+8+10+12 = 71.",
          "b": "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."
        },
        "scores": {
          "a": 71,
          "b": 76
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Harness Inc.",
        "b": "Optimizely",
        "name": "Vendor"
      },
      {
        "a": "https://mcp.harness.io/mcp",
        "b": "https://exp.mcp.opal.optimizely.com/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, stdio, Streamable HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "none",
        "b": "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",
        "name": "Licence"
      },
      {
        "a": "11",
        "b": "8",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-11-04",
        "b": "2026-10-15",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "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": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "8.8k npm/wk",
        "b": "460k npm/wk, 86k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "2/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Harness Feature Management \u0026 Experimentation scores 69.2 (B) on agent readiness against Optimizely Experimentation's 64.9 (B), and leads in 4 of 7 scored categories. Optimizely Experimentation leads on schema \u0026 documentation and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Harness Feature Management \u0026 Experimentation or Optimizely Experimentation?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Harness Feature Management \u0026 Experimentation and Optimizely Experimentation need an API key?"
      },
      {
        "answer": "Yes. Harness Feature Management \u0026 Experimentation has a hosted endpoint at https://mcp.harness.io/mcp and Optimizely Experimentation at https://exp.mcp.opal.optimizely.com/mcp.",
        "question": "Can an agent call Harness Feature Management \u0026 Experimentation and Optimizely Experimentation without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 83 against 68",
          "Security \u0026 auth, 79 against 66",
          "Payments \u0026 pricing, 15 against 0"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "Teams already on Harness, or Split customers, who want agents to inspect and change flags and segments with guard rails.",
        "slug": "harness-fme",
        "watchFor": "No FME prices are published; Enterprise is by quotation and free plan limits are unstated"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 76 against 71",
          "Transparency \u0026 trust, 75 against 61"
        ],
        "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"
      }
    ],
    "history": {
      "harness-fme": null,
      "optimizely": [
        {
          "causes": [
            "evidence"
          ],
          "date": "2026-11-02",
          "delta": 2.3,
          "from": 62.6,
          "fromGrade": "B",
          "to": 64.9,
          "toGrade": "B"
        }
      ]
    },
    "job": {
      "capability": "analytics.flags",
      "name": "Feature flags"
    },
    "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/countly-vs-optimizely.json",
        "title": "Countly vs Optimizely Experimentation",
        "url": "https://www.anchorterminal.com/compare/countly-vs-optimizely"
      },
      {
        "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/matomo-vs-optimizely.json",
        "title": "Matomo vs Optimizely Experimentation",
        "url": "https://www.anchorterminal.com/compare/matomo-vs-optimizely"
      },
      {
        "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/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/openpanel-vs-optimizely.json",
        "title": "OpenPanel vs Optimizely Experimentation",
        "url": "https://www.anchorterminal.com/compare/openpanel-vs-optimizely"
      },
      {
        "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-rudderstack-mcp.json",
        "title": "Optimizely Experimentation vs RudderStack MCP",
        "url": "https://www.anchorterminal.com/compare/optimizely-vs-rudderstack-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/optimizely-vs-userpilot.json",
        "title": "Optimizely Experimentation vs Userpilot",
        "url": "https://www.anchorterminal.com/compare/optimizely-vs-userpilot"
      },
      {
        "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/fullstory-vs-harness-fme.json",
        "title": "Fullstory vs Harness Feature Management \u0026 Experimentation",
        "url": "https://www.anchorterminal.com/compare/fullstory-vs-harness-fme"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness-fme-vs-heap.json",
        "title": "Harness Feature Management \u0026 Experimentation vs Heap",
        "url": "https://www.anchorterminal.com/compare/harness-fme-vs-heap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness-fme-vs-openpanel.json",
        "title": "Harness Feature Management \u0026 Experimentation vs OpenPanel",
        "url": "https://www.anchorterminal.com/compare/harness-fme-vs-openpanel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness-fme-vs-rudderstack-mcp.json",
        "title": "Harness Feature Management \u0026 Experimentation vs RudderStack MCP",
        "url": "https://www.anchorterminal.com/compare/harness-fme-vs-rudderstack-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness-fme-vs-woopra.json",
        "title": "Harness Feature Management \u0026 Experimentation vs Woopra",
        "url": "https://www.anchorterminal.com/compare/harness-fme-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amplitude-vs-harness-fme.json",
        "title": "Amplitude vs Harness Feature Management \u0026 Experimentation",
        "url": "https://www.anchorterminal.com/compare/amplitude-vs-harness-fme"
      },
      {
        "json": "https://www.anchorterminal.com/compare/countly-vs-harness-fme.json",
        "title": "Countly vs Harness Feature Management \u0026 Experimentation",
        "url": "https://www.anchorterminal.com/compare/countly-vs-harness-fme"
      },
      {
        "json": "https://www.anchorterminal.com/compare/flagsmith-vs-harness-fme.json",
        "title": "Flagsmith vs Harness Feature Management \u0026 Experimentation",
        "url": "https://www.anchorterminal.com/compare/flagsmith-vs-harness-fme"
      },
      {
        "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-launchdarkly.json",
        "title": "Harness Feature Management \u0026 Experimentation vs LaunchDarkly",
        "url": "https://www.anchorterminal.com/compare/harness-fme-vs-launchdarkly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness-fme-vs-mixpanel.json",
        "title": "Harness Feature Management \u0026 Experimentation vs Mixpanel",
        "url": "https://www.anchorterminal.com/compare/harness-fme-vs-mixpanel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness-fme-vs-posthog.json",
        "title": "Harness Feature Management \u0026 Experimentation vs PostHog",
        "url": "https://www.anchorterminal.com/compare/harness-fme-vs-posthog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness-fme-vs-statsig.json",
        "title": "Harness Feature Management \u0026 Experimentation vs Statsig",
        "url": "https://www.anchorterminal.com/compare/harness-fme-vs-statsig"
      },
      {
        "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/growthbook-vs-harness-fme.json",
        "title": "GrowthBook vs Harness Feature Management \u0026 Experimentation",
        "url": "https://www.anchorterminal.com/compare/growthbook-vs-harness-fme"
      },
      {
        "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/harness-fme-vs-matomo.json",
        "title": "Harness Feature Management \u0026 Experimentation vs Matomo",
        "url": "https://www.anchorterminal.com/compare/harness-fme-vs-matomo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness-fme-vs-mostly-good-metrics.json",
        "title": "Harness Feature Management \u0026 Experimentation vs Mostly Good Metrics",
        "url": "https://www.anchorterminal.com/compare/harness-fme-vs-mostly-good-metrics"
      },
      {
        "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": 3,
        "edge": "optimizely",
        "harness-fme": 80,
        "key": "reliability",
        "name": "Reliability",
        "optimizely": 83,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 5,
        "edge": "optimizely",
        "harness-fme": 71,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "optimizely": 76,
        "weight": 13
      },
      {
        "by": 15,
        "edge": "harness-fme",
        "harness-fme": 83,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "optimizely": 68,
        "weight": 13
      },
      {
        "by": 13,
        "edge": "harness-fme",
        "harness-fme": 79,
        "key": "security",
        "name": "Security \u0026 auth",
        "optimizely": 66,
        "weight": 14
      },
      {
        "by": 15,
        "edge": "harness-fme",
        "harness-fme": 15,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "optimizely": 0,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 3,
        "edge": "harness-fme",
        "harness-fme": 81,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "optimizely": 78,
        "weight": 7
      },
      {
        "by": 14,
        "edge": "optimizely",
        "harness-fme": 61,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "optimizely": 75,
        "weight": 7
      }
    ],
    "summary": "Harness Feature Management \u0026 Experimentation scores 69.2 (B) on agent readiness against Optimizely Experimentation's 64.9 (B), and leads in 4 of 7 scored categories. Optimizely Experimentation leads on schema \u0026 documentation and transparency \u0026 trust. Both do feature flags.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "harness-fme": "Harness FME, formerly Split, gives agents 11 consolidated MCP tools with an FME-only toolset, a read-only switch and confirmation on writes, over an Admin API with documented limits and role-scoped keys. FME prices are not published, the free plan's limits are unstated, and the hosted MCP endpoint must be enabled by Harness Support.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/harness-fme-vs-optimizely",
    "json": "https://www.anchorterminal.com/compare/harness-fme-vs-optimizely.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/harness-fme-vs-optimizely.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/harness-fme-vs-optimizely.min.md"
  },
  "markdown": "Harness Feature Management \u0026 Experimentation scores 69.2 (B) on agent readiness against Optimizely Experimentation's 64.9 (B), and leads in 4 of 7 scored categories. Optimizely Experimentation leads on schema \u0026 documentation and transparency \u0026 trust. Both do feature flags.\n\n- Harness Feature Management \u0026 Experimentation: grade B, 69.2/100, rank #258 of 1510. Markdown https://www.anchorterminal.com/tools/harness-fme.md · JSON https://www.anchorterminal.com/api/v1/tools/harness-fme.json\n- Optimizely Experimentation: grade B, 64.9/100, rank #445 of 1510. Markdown https://www.anchorterminal.com/tools/optimizely.md · JSON https://www.anchorterminal.com/api/v1/tools/optimizely.json\n- Best product analytics and experimentation tools for AI agents: https://www.anchorterminal.com/best/product-analytics/index.md\n- All 170 product analytics comparisons: https://www.anchorterminal.com/compare/product-analytics/index.md\n\n## Which one, for what\n\n### Harness Feature Management \u0026 Experimentation (B)\n\nGood for: Teams already on Harness, or Split customers, who want agents to inspect and change flags and segments with guard rails.\n\nAhead on:\n- Agent ergonomics, 83 against 68\n- Security \u0026 auth, 79 against 66\n- Payments \u0026 pricing, 15 against 0\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: No FME prices are published; Enterprise is by quotation and free plan limits are unstated\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- Transparency \u0026 trust, 75 against 61\n\nWatch for: No price is published. The plans page asks for details to build a custom quote\n\n\n## Why the edge\n\n### Agent ergonomics: Harness Feature Management \u0026 Experimentation +15\n\n- Harness Feature Management \u0026 Experimentation (83): 11 consolidated tools, and `--toolsets=fme` narrows the server to FME (25). Flag lists filter server-side by name, tag and rollout status, and the Admin API paginates with markerLimit (17 of 20). Documented status codes, 429 headers, and a harness_diagnose tool. Error bodies aren't documented per endpoint (14 of 20). harness_list and harness_get carry readOnlyHint, write tools ask for confirmation by elicitation, and harness_delete is marked destructive. No idempotency keys (15 of 20). Two required settings (API key, optional org and project, account ID read from the token); a Python Admin API wrapper and CLI, and SDKs in more than a dozen languages for evaluation (12 of 15). 25+17+14+15+12 = 83.\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\n### Payments \u0026 pricing: Harness Feature Management \u0026 Experimentation +15\n\n- Harness Feature Management \u0026 Experimentation (15): No x402, MPP or L402 (0). No FME prices are published; harness.io/pricing lists FME only under Enterprise, priced by quotation (0). The docs describe a Start FME Free Plan step inside a Harness account; its limits and whether a card is needed aren't stated (15 of 20). A person signs up for Harness in a browser and creates a key or token (0). 0+0+15+0 = 15.\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\n### Transparency \u0026 trust: Optimizely Experimentation +14\n\n- Harness Feature Management \u0026 Experimentation (61): A closed service under Harness's subscription terms; the MCP server is MIT (18 of 30). The privacy statement covers website and sales data and defers customer data to the customer agreement and a published DPA; retention periods for customer data weren't found (18 of 30). A versioning policy for SDKs with support windows, and Split-era API endpoints marked deprecated with migration guides (14 of 20). Sub-processors are on the trust centre, which we didn't read, and the security page doesn't name data locations (10 of 20). 18+18+14+10 = 60.\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\n### Security \u0026 auth: Harness Feature Management \u0026 Experimentation +13\n\n- Harness Feature Management \u0026 Experimentation (79): Admin API keys with combinable roles that can't be widened after creation, Harness PATs and SATs for central management, and Harness Platform OAuth on the hosted MCP endpoint. Credentials travel in headers (28 of 30). HARNESS_READ_ONLY removes every write, writes go through elicitation with a risk threshold for auto-approval, and FME change requests add approval for flag changes (19 of 20). No prompt-injection guidance; the tools return flag names, descriptions and rule data written by people (3 of 15). FME admin, environment and object audit logs, plus structured MCP audit events to file, webhook or OpenTelemetry sinks (13 of 15). SOC 1 and SOC 2 Type II, ISO 27001, 27017 and 27018, FedRAMP 20x, a security@harness.io disclosure route with a 24-hour response, a private bug bounty on request and annual external penetration tests. No security.txt (16 of 20). 28+19+3+13+16 = 79.\n- Optimizely Experimentation (66): The MCP server uses OAuth 2.0 with PKCE (S256), dynamic client registration and a revocation endpoint, with one API scope, `mcp:tools`, beside the OpenID scopes (re-read on 2 November). REST personal access tokens are revocable, named and sent in a header, and administrators can revoke any collaborator's token. The REST OAuth flow has the single scope `all`, described as full access to the account (22 of 30). Sessions and tokens carry the user's role, Feature Experimentation has granular roles for flags, environments and audiences, and change approvals have routed flag changes to reviewers since 6 August 2026. No read-only mode for the MCP server was found, and confirmation before a write is left to the client (13 of 20). No guidance on prompt injection was found, though tools return names, descriptions and hypotheses that people wrote (3 of 15). Change history for projects and flags is in the application, at `/v2/changes` and in webhooks (12 of 15). ISO 27001, ISO 27017, ISO 27018, SOC 2 Type 2 and PCI DSS are stated for Web and Feature Experimentation, with annual penetration tests and a bug bounty programme reachable at securityeng@optimizely.com. No security.txt and no public programme link (16 of 20).\n\n### Schema \u0026 documentation: Optimizely Experimentation +5\n\n- Harness Feature Management \u0026 Experimentation (71): No public OpenAPI file for the Admin API was found; the reference is a ReadMe site with a Postman collection. The MCP server's 11 tools have typed inputs, and harness_describe returns each FME resource's fields (18 of 25). llms.txt on both developer.harness.io and docs.split.io, and every page as Markdown with `.md` (10). The README describes each tool and when writes ask for confirmation; resource details sit behind harness_describe rather than in the tool text (13 of 20). The generic tools take a resource_type string and a body, so per-resource constraints aren't in the schema (8 of 15). An error-code page lists 400, 401, 402, 403, 404, 409 and 429 with causes, and docs carry curl examples (10 of 15). Tagged MCP releases and dated SDK versioning policy; the Admin API has v1 and v2 paths and deprecation notices for Split-era endpoints (12 of 15). 18+10+13+8+10+12 = 71.\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\n## Score by category\n\n| Category | Weight | Harness Feature Management \u0026 Experimentation | Optimizely Experimentation | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 83 | Optimizely Experimentation +3 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 71 | 76 | Optimizely Experimentation +5 |\n| Agent ergonomics | 13% (16.2 this run) | 83 | 68 | Harness Feature Management \u0026 Experimentation +15 |\n| Security \u0026 auth | 14% (17.5 this run) | 79 | 66 | Harness Feature Management \u0026 Experimentation +13 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 15 | 0 | Harness Feature Management \u0026 Experimentation +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 81 | 78 | Harness Feature Management \u0026 Experimentation +3 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 61 | 75 | Optimizely Experimentation +14 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **69.2 · B** | **64.9 · B** | |\n\n## Facts side by side\n\n| Fact | Harness Feature Management \u0026 Experimentation | Optimizely Experimentation |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Harness Inc. | Optimizely |\n| Hosted endpoint | `https://mcp.harness.io/mcp` | `https://exp.mcp.opal.optimizely.com/mcp` |\n| Transports | HTTP, stdio, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | none | 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 |\n| Tools exposed | 11 | 8 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-11-04 | 2026-10-15 |\n| Terms last updated | no date given | no date given |\n| Privacy policy last updated | no date given | no date given |\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 | yes |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 8.8k npm/wk | 460k npm/wk, 86k PyPI/wk |\n| Agent reviews | none | 2/5 (4) |\n\n## How the scores have moved\n\n### Harness Feature Management \u0026 Experimentation\n\nNo score change since it was listed.\n\n### Optimizely Experimentation\n\n- +2.3 on 2 November 2026: new evidence\n\n## Verdicts\n\n**Harness Feature Management \u0026 Experimentation.** Harness FME, formerly Split, gives agents 11 consolidated MCP tools with an FME-only toolset, a read-only switch and confirmation on writes, over an Admin API with documented limits and role-scoped keys. FME prices are not published, the free plan's limits are unstated, and the hosted MCP endpoint must be enabled by Harness Support.\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## Before you call either\n\n### Harness Feature Management \u0026 Experimentation\n\n1. Start the MCP server with `--toolsets=fme` so only FME resource types load\n2. Call `harness_describe(resource_type='fme_feature_flag')` before a create or update to see the fields\n3. Filter fme_feature_flag lists by name, tags or rollout status rather than listing every flag\n4. Set HARNESS_READ_ONLY for analysis tasks; leave confirmation on for kill, restore and delete\n5. On 429, wait at least the larger X-RateLimit-Reset-Seconds value before retrying\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## Questions\n\n### Which is better for AI agents, Harness Feature Management \u0026 Experimentation or Optimizely Experimentation?\n\nHarness Feature Management \u0026 Experimentation scores 69.2 (B) on agent readiness against Optimizely Experimentation's 64.9 (B), and leads in 4 of 7 scored categories. Optimizely Experimentation leads on schema \u0026 documentation and transparency \u0026 trust.\n\n### Do Harness Feature Management \u0026 Experimentation and Optimizely Experimentation need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Harness Feature Management \u0026 Experimentation and Optimizely Experimentation without installing anything?\n\nYes. Harness Feature Management \u0026 Experimentation has a hosted endpoint at https://mcp.harness.io/mcp and Optimizely Experimentation at https://exp.mcp.opal.optimizely.com/mcp.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/harness-fme-vs-optimizely.json, and with the fewest tokens: https://www.anchorterminal.com/compare/harness-fme-vs-optimizely.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"harness-fme\", \"b\": \"optimizely\"}`. From a terminal: `anchor compare harness-fme optimizely`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/harness-fme.json and https://www.anchorterminal.com/api/v1/tools/optimizely.json\n\n## Other comparisons with Harness Feature Management \u0026 Experimentation or Optimizely Experimentation\n\n- [Amplitude vs Optimizely Experimentation](https://www.anchorterminal.com/compare/amplitude-vs-optimizely.md)\n- [Countly vs Optimizely Experimentation](https://www.anchorterminal.com/compare/countly-vs-optimizely.md)\n- [Fullstory vs Optimizely Experimentation](https://www.anchorterminal.com/compare/fullstory-vs-optimizely.md)\n- [Matomo vs Optimizely Experimentation](https://www.anchorterminal.com/compare/matomo-vs-optimizely.md)\n- [Mixpanel vs Optimizely Experimentation](https://www.anchorterminal.com/compare/mixpanel-vs-optimizely.md)\n- [Mostly Good Metrics vs Optimizely Experimentation](https://www.anchorterminal.com/compare/mostly-good-metrics-vs-optimizely.md)\n- [OpenPanel vs Optimizely Experimentation](https://www.anchorterminal.com/compare/openpanel-vs-optimizely.md)\n- [Optimizely Experimentation vs Pendo](https://www.anchorterminal.com/compare/optimizely-vs-pendo.md)\n- [Optimizely Experimentation vs RudderStack MCP](https://www.anchorterminal.com/compare/optimizely-vs-rudderstack-mcp.md)\n- [Optimizely Experimentation vs Userpilot](https://www.anchorterminal.com/compare/optimizely-vs-userpilot.md)\n- [Optimizely Experimentation vs Woopra](https://www.anchorterminal.com/compare/optimizely-vs-woopra.md)\n- [Fullstory vs Harness Feature Management \u0026 Experimentation](https://www.anchorterminal.com/compare/fullstory-vs-harness-fme.md)\n- [Harness Feature Management \u0026 Experimentation vs Heap](https://www.anchorterminal.com/compare/harness-fme-vs-heap.md)\n- [Harness Feature Management \u0026 Experimentation vs OpenPanel](https://www.anchorterminal.com/compare/harness-fme-vs-openpanel.md)\n- [Harness Feature Management \u0026 Experimentation vs RudderStack MCP](https://www.anchorterminal.com/compare/harness-fme-vs-rudderstack-mcp.md)\n- [Harness Feature Management \u0026 Experimentation vs Woopra](https://www.anchorterminal.com/compare/harness-fme-vs-woopra.md)\n- [Amplitude vs Harness Feature Management \u0026 Experimentation](https://www.anchorterminal.com/compare/amplitude-vs-harness-fme.md)\n- [Countly vs Harness Feature Management \u0026 Experimentation](https://www.anchorterminal.com/compare/countly-vs-harness-fme.md)\n- [Flagsmith vs Harness Feature Management \u0026 Experimentation](https://www.anchorterminal.com/compare/flagsmith-vs-harness-fme.md)\n- [Flagsmith vs Optimizely Experimentation](https://www.anchorterminal.com/compare/flagsmith-vs-optimizely.md)\n- [Harness Feature Management \u0026 Experimentation vs LaunchDarkly](https://www.anchorterminal.com/compare/harness-fme-vs-launchdarkly.md)\n- [Harness Feature Management \u0026 Experimentation vs Mixpanel](https://www.anchorterminal.com/compare/harness-fme-vs-mixpanel.md)\n- [Harness Feature Management \u0026 Experimentation vs PostHog](https://www.anchorterminal.com/compare/harness-fme-vs-posthog.md)\n- [Harness Feature Management \u0026 Experimentation vs Statsig](https://www.anchorterminal.com/compare/harness-fme-vs-statsig.md)\n- [LaunchDarkly vs Optimizely Experimentation](https://www.anchorterminal.com/compare/launchdarkly-vs-optimizely.md)\n- [GrowthBook vs Harness Feature Management \u0026 Experimentation](https://www.anchorterminal.com/compare/growthbook-vs-harness-fme.md)\n- [GrowthBook vs Optimizely Experimentation](https://www.anchorterminal.com/compare/growthbook-vs-optimizely.md)\n- [Harness Feature Management \u0026 Experimentation vs Matomo](https://www.anchorterminal.com/compare/harness-fme-vs-matomo.md)\n- [Harness Feature Management \u0026 Experimentation vs Mostly Good Metrics](https://www.anchorterminal.com/compare/harness-fme-vs-mostly-good-metrics.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": "Harness Feature Management \u0026 Experimentation vs Optimizely Experimentation",
        "url": ""
      }
    ],
    "description": "Harness Feature Management \u0026 Experimentation scores 69.2 (B) to Optimizely Experimentation's 64.9 (B) for feature flags. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Harness Feature Management \u0026 Experimentation B 69.2",
      "Optimizely Experimentation B 64.9",
      "scores"
    ],
    "h1": "Harness Feature Management \u0026 Experimentation vs Optimizely Experimentation",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/harness-fme-vs-optimizely",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Harness Feature Management \u0026 Experimentation vs Optimizely…",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/harness-fme-vs-optimizely"
  },
  "tokens": {
    "markdown": 5400,
    "slim": 2980
  },
  "version": 1
}
