{
  "data": {
    "a": {
      "slug": "mostly-good-metrics",
      "name": "Mostly Good Metrics",
      "vendor": "Mostly Good Metrics",
      "vendorUrl": "https://mostlygoodmetrics.com",
      "kind": "http-api",
      "category": "product-analytics",
      "summary": "Mostly Good Metrics is a product analytics service in public beta for indie developers and small teams. Apps send events through five SDKs or an HTTP API, and agents query funnels, retention and experiments through a hosted MCP server.",
      "url": "https://www.anchorterminal.com/tools/mostly-good-metrics",
      "markdownUrl": "https://www.anchorterminal.com/tools/mostly-good-metrics.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/mostly-good-metrics.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/mostly-good-metrics.json",
      "dns": "mostly-good-metrics.grade.anchorterminal.com",
      "repo": "https://github.com/Mostly-Good-Metrics",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://app.mostlygoodmetrics.com/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "@mostly-good-metrics/javascript"
        },
        {
          "registry": "npm",
          "name": "@mostly-good-metrics/react-native"
        }
      ],
      "auth": "mixed",
      "authNotes": "The MCP server and the `mgm` CLI use browser OAuth 2.0 with PKCE (S256) and dynamic client registration; the advertised scopes are mcp:tools plus support and newsletter scopes. Event ingestion uses a project API key as a Bearer token, which can be pinned to web origins, Apple bundle IDs or Android package names. Keys are created in the dashboard, the CLI or through MCP tools.",
      "pricing": "freemium",
      "pricingNotes": "Free plan at $0 with 50,000 to 100,000 events a month and no card. Starter $9 a month ($90 a year) for 500,000 events and Pro $29 a month ($290 a year) for 5,000,000, both quoted as lifetime beta prices against $12 and $49. Enterprise has unlimited ingestion.",
      "priceSummary": "$9 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or on the pricing section of the home page (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": 53,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 81,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.mostlygoodmetrics.com",
      "capabilities": [
        "analytics.query",
        "analytics.funnels",
        "analytics.events",
        "analytics.experiments"
      ],
      "tags": [
        "hosted",
        "mcp",
        "remote-mcp",
        "oauth",
        "free-tier",
        "no-card",
        "beta",
        "closed-source",
        "typescript",
        "cli"
      ],
      "lastRelease": "2026-10-16",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 41.7,
        "grade": "E",
        "agentReady": false,
        "rank": 1295,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 18,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 49,
          "maintenance": 74,
          "payments": 30,
          "reliability": 29,
          "schema": 49,
          "security": 33,
          "transparency": 45
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "Mostly Good Metrics lets an agent run ad-hoc funnels, retention and up to ten metric queries per call through a hosted MCP server with OAuth, at prices from $0. It is a public beta built by one developer, with no status page, no named legal entity and no security policy found.",
        "bestFor": "Indie and small-team apps that want simple funnels and retention an agent can query.",
        "strengths": [
          "Hosted MCP server with OAuth, PKCE and dynamic client registration; no API key to copy",
          "execute_funnel, execute_retention and execute_query accept inline definitions without saving anything",
          "query_metrics runs 1 to 10 aggregate queries in one call with per-item results",
          "Free plan with no card, and paid plans from $9 a month",
          "Ingestion keys can be pinned to web origins and app bundle IDs"
        ],
        "weaknesses": [
          "Public beta run by one developer, with no named legal entity in the terms",
          "No status page, SLA, security.txt or disclosure policy found",
          "53 MCP tools load at once and one scope grants all of them, including deletes and key revocation",
          "No OpenAPI file or llms.txt",
          "The CLI is installed from source because it isn't on npm yet"
        ],
        "agentNotes": [
          "Use query_metrics for several aggregate questions instead of repeated execute_query calls",
          "Pass inline definitions to execute_funnel and execute_retention rather than creating saved objects",
          "Confirm with the user before delete, revoke_api_key or stop_experiment calls, since the server doesn't ask",
          "Start a fresh agent session after connecting, since a running client may not reload the tool list",
          "On 429 from ingestion, wait for Retry-After before resending events"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 41.7
          }
        ],
        "editorialScores": {
          "ergonomics": 49,
          "maintenance": 74,
          "payments": 30,
          "reliability": 29,
          "schema": 49,
          "security": 33,
          "transparency": 51
        },
        "provenanceScore": 39,
        "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 mgm https://app.mostlygoodmetrics.com/mcp",
        "config": {
          "mcpServers": {
            "mgm": {
              "url": "https://app.mostlygoodmetrics.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/analytics.query",
        "tool": "https://letme.dev/mostly-good-metrics"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Starter plan",
          "unit": "month",
          "usd": 9,
          "note": "500,000 events a month, lifetime beta price"
        },
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 29,
          "note": "5,000,000 events a month, lifetime beta price"
        }
      ],
      "provenance": {
        "legalEntity": "",
        "domain": "mostlygoodmetrics.com",
        "domainRegistered": "2025-12-05",
        "endpointOnVendorDomain": true,
        "terms": "https://mostlygoodmetrics.com/terms",
        "privacy": "https://mostlygoodmetrics.com/privacy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The terms and privacy policy, both last updated December 2025, name only Mostly Good Metrics and give no legal entity, address or governing law.",
          "mostlygoodmetrics.com/robots.txt has every rule commented out; docs.mostlygoodmetrics.com has no robots.txt.",
          "/.well-known/security.txt returned 404 and no status page was found.",
          "RDAP gives mostlygoodmetrics.com a registration date of 5 December 2025."
        ],
        "score": 39
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/mostly-good-metrics.json",
      "live": {
        "slug": "mostly-good-metrics",
        "probe": {
          "target": "https://app.mostlygoodmetrics.com/mcp",
          "method": "get",
          "lastAt": "2026-11-07T19:22:20.651338144Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 138,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 167,
          "p95ms24h": 298,
          "samples24h": 210,
          "samples30d": 210,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ]
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@mostly-good-metrics/javascript",
            "version": "0.13.1",
            "seenAt": "2026-11-06T23:47:33.682933227Z"
          },
          {
            "registry": "npm",
            "name": "@mostly-good-metrics/react-native",
            "version": "0.9.1",
            "seenAt": "2026-11-06T23:47:34.884784704Z"
          }
        ],
        "npmWeekly": 81,
        "securityTxt": {
          "url": "https://mostlygoodmetrics.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:38.90553607Z"
        },
        "pages": [
          {
            "url": "https://mostlygoodmetrics.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:14:39.017388202Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f43e747ad9a3"
          },
          {
            "url": "https://mostlygoodmetrics.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:14:41.227658165Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "99ed64144abf"
          }
        ],
        "mcpTools": {
          "url": "https://app.mostlygoodmetrics.com/mcp",
          "checkedAt": "2026-11-07T01:46:16.716952564Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:46:16.716952564Z"
        },
        "updatedAt": "2026-11-07T19:22:20.651338144Z"
      }
    },
    "answer": "Optimizely Experimentation scores 64.9 (B) on agent readiness against Mostly Good Metrics's 41.7 (E), and leads in 6 of 7 scored categories. Mostly Good Metrics leads on payments \u0026 pricing.",
    "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": 54,
        "category": "reliability",
        "leads": "optimizely",
        "name": "Reliability",
        "reasons": {
          "a": "Graded on the hosted service with the hosted lines. No status page was found (0) and no incident history could be read (5). Ingestion limits are documented per plan (1,000 to 100,000 events a minute and 10,000 to 1,000,000 an hour), but no limit for MCP or query calls was found (12 of 15). 429 with Retry-After in the header and body, and the SDKs queue events and back off. No idempotency or safe-retry guidance for writes (12 of 15). No SLA (0). The press kit calls the product a public beta (0). 0+5+12+12+0+0 = 29.",
          "b": "Graded on the hosted service with the hosted lines. Statuspage at status.optimizely.com with 174 components, among them Optimizely REST API, Results API, Events API, Snippet Delivery and Snippet Building for Feature and Web Experimentation (20). From 4 August to 2 November 2026 its history shows three incidents that reach Experimentation, all minor. On 25 August a provider's network fault degraded service for a subset of customers in Southeast Asia (05:15 to 07:37 UTC). On 17 September Optimizely Identity sent users to the wrong SSO page for about 3 minutes, which touches the sign-in the MCP server uses. On 15 October snippet publishing for Web Experimentation was delayed for some customers while existing experiences kept serving. The 23 July Okta sign-in incident has left the window (20 of 30). The Feature Experimentation API is limited to 2 requests a second and 120 a minute, the Optimizely API to 100 a minute and the results endpoints to 20 a minute. No limit was found for the MCP server (13 of 15). The API conventions page documents `429 - Too Many Requests` with `X-RATELIMIT-LIMIT`, `X-RATELIMIT-REMAINING` and `X-RATELIMIT-RESET` on every response and says to wait for the reset, but no idempotency key or safe-retry guidance for writes was found (10 of 15). The Service Level Agreement V 2024-05 gives credits from 10 per cent once downtime passes 43 minutes in a month, capped at 50 per cent (10). The REST APIs are versioned and the MCP pages carry no beta label (10). 20 + 20 + 13 + 10 + 10 + 10 = 83."
        },
        "scores": {
          "a": 29,
          "b": 83
        }
      },
      {
        "by": 33,
        "category": "security",
        "leads": "optimizely",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "OAuth 2.0 with PKCE, dynamic client registration and a revocation endpoint for MCP and the CLI; project ingest keys in a Bearer header that can be pinned to origins or app IDs. The only tool scope advertised is mcp:tools, so a connection gets every tool the user can use (24 of 30). Restricted keys and a confirmation step for unrestricted keys in the CLI; no read-only MCP mode or approval for deletes was found (6 of 20). Event properties come from apps and end users and reach the agent, and no prompt-injection guidance was found (3 of 15). No audit log was found (0). No security.txt, disclosure policy or certification was found (0). 24+6+3+0+0 = 33.",
          "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": 33,
          "b": 66
        }
      },
      {
        "by": 30,
        "category": "payments",
        "leads": "mostly-good-metrics",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). Plan prices with event allowances are on the home page; no per-event price (10). Free plan with no card, stated on the home and about pages (20). Signup and OAuth approval happen in a browser (0). 0+10+20+0 = 30.",
          "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": 30,
          "b": 0
        }
      },
      {
        "by": 30,
        "category": "transparency",
        "leads": "optimizely",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "The service is closed; the SDKs and CLI are MIT. Terms of December 2025 with no legal entity named (18 of 30). The privacy policy and terms agree on raw-event retention for the subscription's life and deletion within 14 days of account deletion; the about page says data is not used to train models. No DPA was found (18 of 30). The legacy X-MGM-Key header is still supported, and no deprecation policy was found (3 of 20). The terms name eight sub-processors with their purpose, without data locations (12 of 20). 18+18+3+12 = 51.",
          "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": 45,
          "b": 75
        }
      },
      {
        "by": 27,
        "category": "schema",
        "leads": "optimizely",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "No OpenAPI file was found. The docs say every MCP tool describes its own parameters, and the query definition object is documented in full; we didn't open an MCP session to read the schemas (12 of 25). No llms.txt (404) and no Markdown pages served for agents (0). Each tool area is documented with examples, and the docs say when to use query_metrics instead of repeated execute_query calls (10 of 20). The query definition lists metrics, dimensions, date ranges and filter operators (9 of 15). The ingestion API documents its error body and status codes, and query_metrics reports per-item errors (11 of 15). /v1 and /api/v2 paths and dated SDK tags, but no product changelog (7 of 15). 12+0+10+9+11+7 = 49.",
          "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": 49,
          "b": 76
        }
      },
      {
        "by": 19,
        "category": "ergonomics",
        "leads": "optimizely",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "53 tools, more than 30 (5). We added 3 because Goals and Alerts tools load only where enabled and query_metrics batches up to 10 queries (8 of 25). Date ranges, grouping and filters on queries; no documented page or limit parameters for lists (12 of 20). JSON errors with a message, and per-item status in batch results (13 of 20). Annotations weren't readable without a session, the tool list includes deletes and key revocation, and no idempotency keys were found (4 of 20). Five client SDKs and a CLI with `--json` output (12 of 15). 8+12+13+4+12 = 49.",
          "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": 49,
          "b": 68
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Mostly Good Metrics",
        "b": "Optimizely",
        "name": "Vendor"
      },
      {
        "a": "https://app.mostlygoodmetrics.com/mcp",
        "b": "https://exp.mcp.opal.optimizely.com/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": "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": "53",
        "b": "8",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-16",
        "b": "2026-10-15",
        "name": "Last release"
      },
      {
        "a": "2025-12-01",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2025-12-01",
        "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": "not found in the text",
        "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": "81 npm/wk",
        "b": "460k npm/wk, 86k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "2/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Optimizely Experimentation scores 64.9 (B) on agent readiness against Mostly Good Metrics's 41.7 (E), and leads in 6 of 7 scored categories. Mostly Good Metrics leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, Mostly Good Metrics or Optimizely Experimentation?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Mostly Good Metrics and Optimizely Experimentation need an API key?"
      },
      {
        "answer": "Yes. Mostly Good Metrics has a hosted endpoint at https://app.mostlygoodmetrics.com/mcp and Optimizely Experimentation at https://exp.mcp.opal.optimizely.com/mcp.",
        "question": "Can an agent call Mostly Good Metrics and Optimizely Experimentation without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Payments \u0026 pricing, 30 against 0"
        ],
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "Indie and small-team apps that want simple funnels and retention an agent can query.",
        "slug": "mostly-good-metrics",
        "watchFor": "Public beta run by one developer, with no named legal entity in the terms"
      },
      {
        "aheadOn": [
          "Reliability, 83 against 29",
          "Schema \u0026 documentation, 76 against 49",
          "Agent ergonomics, 68 against 49",
          "Security \u0026 auth, 66 against 33",
          "Transparency \u0026 trust, 75 against 45"
        ],
        "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": {
      "mostly-good-metrics": null,
      "optimizely": [
        {
          "causes": [
            "evidence"
          ],
          "date": "2026-11-02",
          "delta": 2.3,
          "from": 62.6,
          "fromGrade": "B",
          "to": 64.9,
          "toGrade": "B"
        }
      ]
    },
    "job": {
      "capability": "analytics.query",
      "name": "Analytics queries"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amplitude-vs-mostly-good-metrics.json",
        "title": "Amplitude vs Mostly Good Metrics",
        "url": "https://www.anchorterminal.com/compare/amplitude-vs-mostly-good-metrics"
      },
      {
        "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/basedash-mcp-vs-mostly-good-metrics.json",
        "title": "Basedash MCP vs Mostly Good Metrics",
        "url": "https://www.anchorterminal.com/compare/basedash-mcp-vs-mostly-good-metrics"
      },
      {
        "json": "https://www.anchorterminal.com/compare/countly-vs-mostly-good-metrics.json",
        "title": "Countly vs Mostly Good Metrics",
        "url": "https://www.anchorterminal.com/compare/countly-vs-mostly-good-metrics"
      },
      {
        "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-mostly-good-metrics.json",
        "title": "Fullstory vs Mostly Good Metrics",
        "url": "https://www.anchorterminal.com/compare/fullstory-vs-mostly-good-metrics"
      },
      {
        "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-mostly-good-metrics.json",
        "title": "Matomo vs Mostly Good Metrics",
        "url": "https://www.anchorterminal.com/compare/matomo-vs-mostly-good-metrics"
      },
      {
        "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-mostly-good-metrics.json",
        "title": "Mixpanel vs Mostly Good Metrics",
        "url": "https://www.anchorterminal.com/compare/mixpanel-vs-mostly-good-metrics"
      },
      {
        "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-openpanel.json",
        "title": "Mostly Good Metrics vs OpenPanel",
        "url": "https://www.anchorterminal.com/compare/mostly-good-metrics-vs-openpanel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mostly-good-metrics-vs-pendo.json",
        "title": "Mostly Good Metrics vs Pendo",
        "url": "https://www.anchorterminal.com/compare/mostly-good-metrics-vs-pendo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mostly-good-metrics-vs-posthog.json",
        "title": "Mostly Good Metrics vs PostHog",
        "url": "https://www.anchorterminal.com/compare/mostly-good-metrics-vs-posthog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mostly-good-metrics-vs-rudderstack-mcp.json",
        "title": "Mostly Good Metrics vs RudderStack MCP",
        "url": "https://www.anchorterminal.com/compare/mostly-good-metrics-vs-rudderstack-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mostly-good-metrics-vs-statsig.json",
        "title": "Mostly Good Metrics vs Statsig",
        "url": "https://www.anchorterminal.com/compare/mostly-good-metrics-vs-statsig"
      },
      {
        "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/mostly-good-metrics-vs-woopra.json",
        "title": "Mostly Good Metrics vs Woopra",
        "url": "https://www.anchorterminal.com/compare/mostly-good-metrics-vs-woopra"
      },
      {
        "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/heap-vs-mostly-good-metrics.json",
        "title": "Heap vs Mostly Good Metrics",
        "url": "https://www.anchorterminal.com/compare/heap-vs-mostly-good-metrics"
      },
      {
        "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/flagsmith-vs-mostly-good-metrics.json",
        "title": "Flagsmith vs Mostly Good Metrics",
        "url": "https://www.anchorterminal.com/compare/flagsmith-vs-mostly-good-metrics"
      },
      {
        "json": "https://www.anchorterminal.com/compare/growthbook-vs-mostly-good-metrics.json",
        "title": "GrowthBook vs Mostly Good Metrics",
        "url": "https://www.anchorterminal.com/compare/growthbook-vs-mostly-good-metrics"
      },
      {
        "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-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/launchdarkly-vs-mostly-good-metrics.json",
        "title": "LaunchDarkly vs Mostly Good Metrics",
        "url": "https://www.anchorterminal.com/compare/launchdarkly-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": 54,
        "edge": "optimizely",
        "key": "reliability",
        "mostly-good-metrics": 29,
        "name": "Reliability",
        "optimizely": 83,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 27,
        "edge": "optimizely",
        "key": "schema",
        "mostly-good-metrics": 49,
        "name": "Schema \u0026 documentation",
        "optimizely": 76,
        "weight": 13
      },
      {
        "by": 19,
        "edge": "optimizely",
        "key": "ergonomics",
        "mostly-good-metrics": 49,
        "name": "Agent ergonomics",
        "optimizely": 68,
        "weight": 13
      },
      {
        "by": 33,
        "edge": "optimizely",
        "key": "security",
        "mostly-good-metrics": 33,
        "name": "Security \u0026 auth",
        "optimizely": 66,
        "weight": 14
      },
      {
        "by": 30,
        "edge": "mostly-good-metrics",
        "key": "payments",
        "mostly-good-metrics": 30,
        "name": "Payments \u0026 pricing",
        "optimizely": 0,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "edge": "optimizely",
        "key": "maintenance",
        "mostly-good-metrics": 74,
        "name": "Maintenance \u0026 community",
        "optimizely": 78,
        "weight": 7
      },
      {
        "by": 30,
        "edge": "optimizely",
        "key": "transparency",
        "mostly-good-metrics": 45,
        "name": "Transparency \u0026 trust",
        "optimizely": 75,
        "weight": 7
      }
    ],
    "summary": "Optimizely Experimentation scores 64.9 (B) on agent readiness against Mostly Good Metrics's 41.7 (E), and leads in 6 of 7 scored categories. Mostly Good Metrics leads on payments \u0026 pricing. Both do analytics queries.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "mostly-good-metrics": "Mostly Good Metrics lets an agent run ad-hoc funnels, retention and up to ten metric queries per call through a hosted MCP server with OAuth, at prices from $0. It is a public beta built by one developer, with no status page, no named legal entity and no security policy found.",
      "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/mostly-good-metrics-vs-optimizely",
    "json": "https://www.anchorterminal.com/compare/mostly-good-metrics-vs-optimizely.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/mostly-good-metrics-vs-optimizely.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/mostly-good-metrics-vs-optimizely.min.md"
  },
  "markdown": "Optimizely Experimentation scores 64.9 (B) on agent readiness against Mostly Good Metrics's 41.7 (E), and leads in 6 of 7 scored categories. Mostly Good Metrics leads on payments \u0026 pricing. Both do analytics queries.\n\n- Mostly Good Metrics: grade E, 41.7/100, rank #1295 of 1510. Markdown https://www.anchorterminal.com/tools/mostly-good-metrics.md · JSON https://www.anchorterminal.com/api/v1/tools/mostly-good-metrics.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### Mostly Good Metrics (E)\n\nGood for: Indie and small-team apps that want simple funnels and retention an agent can query.\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: Public beta run by one developer, with no named legal entity in the terms\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- Reliability, 83 against 29\n- Schema \u0026 documentation, 76 against 49\n- Agent ergonomics, 68 against 49\n- Security \u0026 auth, 66 against 33\n- Transparency \u0026 trust, 75 against 45\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### Reliability: Optimizely Experimentation +54\n\n- Mostly Good Metrics (29): Graded on the hosted service with the hosted lines. No status page was found (0) and no incident history could be read (5). Ingestion limits are documented per plan (1,000 to 100,000 events a minute and 10,000 to 1,000,000 an hour), but no limit for MCP or query calls was found (12 of 15). 429 with Retry-After in the header and body, and the SDKs queue events and back off. No idempotency or safe-retry guidance for writes (12 of 15). No SLA (0). The press kit calls the product a public beta (0). 0+5+12+12+0+0 = 29.\n- Optimizely Experimentation (83): Graded on the hosted service with the hosted lines. Statuspage at status.optimizely.com with 174 components, among them Optimizely REST API, Results API, Events API, Snippet Delivery and Snippet Building for Feature and Web Experimentation (20). From 4 August to 2 November 2026 its history shows three incidents that reach Experimentation, all minor. On 25 August a provider's network fault degraded service for a subset of customers in Southeast Asia (05:15 to 07:37 UTC). On 17 September Optimizely Identity sent users to the wrong SSO page for about 3 minutes, which touches the sign-in the MCP server uses. On 15 October snippet publishing for Web Experimentation was delayed for some customers while existing experiences kept serving. The 23 July Okta sign-in incident has left the window (20 of 30). The Feature Experimentation API is limited to 2 requests a second and 120 a minute, the Optimizely API to 100 a minute and the results endpoints to 20 a minute. No limit was found for the MCP server (13 of 15). The API conventions page documents `429 - Too Many Requests` with `X-RATELIMIT-LIMIT`, `X-RATELIMIT-REMAINING` and `X-RATELIMIT-RESET` on every response and says to wait for the reset, but no idempotency key or safe-retry guidance for writes was found (10 of 15). The Service Level Agreement V 2024-05 gives credits from 10 per cent once downtime passes 43 minutes in a month, capped at 50 per cent (10). The REST APIs are versioned and the MCP pages carry no beta label (10). 20 + 20 + 13 + 10 + 10 + 10 = 83.\n\n### Security \u0026 auth: Optimizely Experimentation +33\n\n- Mostly Good Metrics (33): OAuth 2.0 with PKCE, dynamic client registration and a revocation endpoint for MCP and the CLI; project ingest keys in a Bearer header that can be pinned to origins or app IDs. The only tool scope advertised is mcp:tools, so a connection gets every tool the user can use (24 of 30). Restricted keys and a confirmation step for unrestricted keys in the CLI; no read-only MCP mode or approval for deletes was found (6 of 20). Event properties come from apps and end users and reach the agent, and no prompt-injection guidance was found (3 of 15). No audit log was found (0). No security.txt, disclosure policy or certification was found (0). 24+6+3+0+0 = 33.\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### Payments \u0026 pricing: Mostly Good Metrics +30\n\n- Mostly Good Metrics (30): No x402, MPP or L402 (0). Plan prices with event allowances are on the home page; no per-event price (10). Free plan with no card, stated on the home and about pages (20). Signup and OAuth approval happen in a browser (0). 0+10+20+0 = 30.\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 +30\n\n- Mostly Good Metrics (45): The service is closed; the SDKs and CLI are MIT. Terms of December 2025 with no legal entity named (18 of 30). The privacy policy and terms agree on raw-event retention for the subscription's life and deletion within 14 days of account deletion; the about page says data is not used to train models. No DPA was found (18 of 30). The legacy X-MGM-Key header is still supported, and no deprecation policy was found (3 of 20). The terms name eight sub-processors with their purpose, without data locations (12 of 20). 18+18+3+12 = 51.\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### Schema \u0026 documentation: Optimizely Experimentation +27\n\n- Mostly Good Metrics (49): No OpenAPI file was found. The docs say every MCP tool describes its own parameters, and the query definition object is documented in full; we didn't open an MCP session to read the schemas (12 of 25). No llms.txt (404) and no Markdown pages served for agents (0). Each tool area is documented with examples, and the docs say when to use query_metrics instead of repeated execute_query calls (10 of 20). The query definition lists metrics, dimensions, date ranges and filter operators (9 of 15). The ingestion API documents its error body and status codes, and query_metrics reports per-item errors (11 of 15). /v1 and /api/v2 paths and dated SDK tags, but no product changelog (7 of 15). 12+0+10+9+11+7 = 49.\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### Agent ergonomics: Optimizely Experimentation +19\n\n- Mostly Good Metrics (49): 53 tools, more than 30 (5). We added 3 because Goals and Alerts tools load only where enabled and query_metrics batches up to 10 queries (8 of 25). Date ranges, grouping and filters on queries; no documented page or limit parameters for lists (12 of 20). JSON errors with a message, and per-item status in batch results (13 of 20). Annotations weren't readable without a session, the tool list includes deletes and key revocation, and no idempotency keys were found (4 of 20). Five client SDKs and a CLI with `--json` output (12 of 15). 8+12+13+4+12 = 49.\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## Score by category\n\n| Category | Weight | Mostly Good Metrics | Optimizely Experimentation | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 29 | 83 | Optimizely Experimentation +54 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 49 | 76 | Optimizely Experimentation +27 |\n| Agent ergonomics | 13% (16.2 this run) | 49 | 68 | Optimizely Experimentation +19 |\n| Security \u0026 auth | 14% (17.5 this run) | 33 | 66 | Optimizely Experimentation +33 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 0 | Mostly Good Metrics +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 74 | 78 | Optimizely Experimentation +4 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 45 | 75 | Optimizely Experimentation +30 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **41.7 · E** | **64.9 · B** | |\n\n## Facts side by side\n\n| Fact | Mostly Good Metrics | Optimizely Experimentation |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Mostly Good Metrics | Optimizely |\n| Hosted endpoint | `https://app.mostlygoodmetrics.com/mcp` | `https://exp.mcp.opal.optimizely.com/mcp` |\n| Transports | HTTP, 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 | 53 | 8 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-10-16 | 2026-10-15 |\n| Terms last updated | 2025-12-01 | no date given |\n| Privacy policy last updated | 2025-12-01 | 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 | not found in the text | 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 | 81 npm/wk | 460k npm/wk, 86k PyPI/wk |\n| Agent reviews | none | 2/5 (4) |\n\n## How the scores have moved\n\n### Mostly Good Metrics\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**Mostly Good Metrics.** Mostly Good Metrics lets an agent run ad-hoc funnels, retention and up to ten metric queries per call through a hosted MCP server with OAuth, at prices from $0. It is a public beta built by one developer, with no status page, no named legal entity and no security policy found.\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### Mostly Good Metrics\n\n1. Use query_metrics for several aggregate questions instead of repeated execute_query calls\n2. Pass inline definitions to execute_funnel and execute_retention rather than creating saved objects\n3. Confirm with the user before delete, revoke_api_key or stop_experiment calls, since the server doesn't ask\n4. Start a fresh agent session after connecting, since a running client may not reload the tool list\n5. On 429 from ingestion, wait for Retry-After before resending events\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, Mostly Good Metrics or Optimizely Experimentation?\n\nOptimizely Experimentation scores 64.9 (B) on agent readiness against Mostly Good Metrics's 41.7 (E), and leads in 6 of 7 scored categories. Mostly Good Metrics leads on payments \u0026 pricing.\n\n### Do Mostly Good Metrics and Optimizely Experimentation need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Mostly Good Metrics and Optimizely Experimentation without installing anything?\n\nYes. Mostly Good Metrics has a hosted endpoint at https://app.mostlygoodmetrics.com/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/mostly-good-metrics-vs-optimizely.json, and with the fewest tokens: https://www.anchorterminal.com/compare/mostly-good-metrics-vs-optimizely.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"mostly-good-metrics\", \"b\": \"optimizely\"}`. From a terminal: `anchor compare mostly-good-metrics optimizely`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/mostly-good-metrics.json and https://www.anchorterminal.com/api/v1/tools/optimizely.json\n\n## Other comparisons with Mostly Good Metrics or Optimizely Experimentation\n\n- [Amplitude vs Mostly Good Metrics](https://www.anchorterminal.com/compare/amplitude-vs-mostly-good-metrics.md)\n- [Amplitude vs Optimizely Experimentation](https://www.anchorterminal.com/compare/amplitude-vs-optimizely.md)\n- [Basedash MCP vs Mostly Good Metrics](https://www.anchorterminal.com/compare/basedash-mcp-vs-mostly-good-metrics.md)\n- [Countly vs Mostly Good Metrics](https://www.anchorterminal.com/compare/countly-vs-mostly-good-metrics.md)\n- [Countly vs Optimizely Experimentation](https://www.anchorterminal.com/compare/countly-vs-optimizely.md)\n- [Fullstory vs Mostly Good Metrics](https://www.anchorterminal.com/compare/fullstory-vs-mostly-good-metrics.md)\n- [Fullstory vs Optimizely Experimentation](https://www.anchorterminal.com/compare/fullstory-vs-optimizely.md)\n- [Matomo vs Mostly Good Metrics](https://www.anchorterminal.com/compare/matomo-vs-mostly-good-metrics.md)\n- [Matomo vs Optimizely Experimentation](https://www.anchorterminal.com/compare/matomo-vs-optimizely.md)\n- [Mixpanel vs Mostly Good Metrics](https://www.anchorterminal.com/compare/mixpanel-vs-mostly-good-metrics.md)\n- [Mixpanel vs Optimizely Experimentation](https://www.anchorterminal.com/compare/mixpanel-vs-optimizely.md)\n- [Mostly Good Metrics vs OpenPanel](https://www.anchorterminal.com/compare/mostly-good-metrics-vs-openpanel.md)\n- [Mostly Good Metrics vs Pendo](https://www.anchorterminal.com/compare/mostly-good-metrics-vs-pendo.md)\n- [Mostly Good Metrics vs PostHog](https://www.anchorterminal.com/compare/mostly-good-metrics-vs-posthog.md)\n- [Mostly Good Metrics vs RudderStack MCP](https://www.anchorterminal.com/compare/mostly-good-metrics-vs-rudderstack-mcp.md)\n- [Mostly Good Metrics vs Statsig](https://www.anchorterminal.com/compare/mostly-good-metrics-vs-statsig.md)\n- [Mostly Good Metrics vs Userpilot](https://www.anchorterminal.com/compare/mostly-good-metrics-vs-userpilot.md)\n- [Mostly Good Metrics vs Woopra](https://www.anchorterminal.com/compare/mostly-good-metrics-vs-woopra.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- [Heap vs Mostly Good Metrics](https://www.anchorterminal.com/compare/heap-vs-mostly-good-metrics.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- [Flagsmith vs Mostly Good Metrics](https://www.anchorterminal.com/compare/flagsmith-vs-mostly-good-metrics.md)\n- [GrowthBook vs Mostly Good Metrics](https://www.anchorterminal.com/compare/growthbook-vs-mostly-good-metrics.md)\n- [GrowthBook vs Optimizely Experimentation](https://www.anchorterminal.com/compare/growthbook-vs-optimizely.md)\n- [Harness Feature Management \u0026 Experimentation vs Mostly Good Metrics](https://www.anchorterminal.com/compare/harness-fme-vs-mostly-good-metrics.md)\n- [LaunchDarkly vs Mostly Good Metrics](https://www.anchorterminal.com/compare/launchdarkly-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": "Mostly Good Metrics vs Optimizely Experimentation",
        "url": ""
      }
    ],
    "description": "Optimizely Experimentation scores 64.9 (B) to Mostly Good Metrics's 41.7 (E) for analytics queries. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Mostly Good Metrics E 41.7",
      "Optimizely Experimentation B 64.9",
      "scores"
    ],
    "h1": "Mostly Good Metrics vs Optimizely Experimentation",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/mostly-good-metrics-vs-optimizely",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Mostly Good Metrics vs Optimizely Experimentation for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/mostly-good-metrics-vs-optimizely"
  },
  "tokens": {
    "markdown": 5650,
    "slim": 3280
  },
  "version": 1
}
