{
  "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 Woopra's 44.4 (E), and leads in 4 of 7 scored categories. Woopra leads on payments \u0026 pricing.",
    "b": {
      "slug": "woopra",
      "name": "Woopra",
      "vendor": "Woopra, Inc.",
      "vendorUrl": "https://www.woopra.com",
      "kind": "http-api",
      "category": "product-analytics",
      "summary": "Woopra is a hosted customer journey and product analytics service from Woopra, Inc., an Appier affiliate. Its HTTP tracking API records events and visitor properties, and its REST API returns saved reports, profiles and raw session logs.",
      "url": "https://www.anchorterminal.com/tools/woopra",
      "markdownUrl": "https://www.anchorterminal.com/tools/woopra.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/woopra.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/woopra.json",
      "dns": "woopra.grade.anchorterminal.com",
      "repo": "https://github.com/Woopra/js-client-tracker",
      "license": "Proprietary service under Woopra's terms of service. The browser tracker and the SDKs on GitHub are MIT, and the Node package is ISC",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://www.woopra.com/rest/3.10",
      "packages": [
        {
          "registry": "npm",
          "name": "woopra"
        },
        {
          "registry": "npm",
          "name": "@woopra/browser-tracker"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. REST calls use HTTP Basic with an App ID and Secret Key that each user generates on the Access Keys tab of the members area. Tracking calls need only the project name unless the owner enables Secure Tracking, which adds a generated ID and secret sent by HTTP Basic. No OAuth, scopes or partner approval were found in the docs.",
      "pricing": "paid",
      "pricingNotes": "Pro starts at $999 a month for 5 million events, with a 30-day trial that an agent's owner can start without a contract. Overage fees apply past the event quota, at rates the pricing page does not state. Enterprise is quoted. Whether the trial signup asks for a card was not established (https://www.woopra.com/pricing, checked 2026-10-09).",
      "priceSummary": "$999 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs or on the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 415,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://docs.woopra.com",
      "llmsTxt": "https://docs.woopra.com/llms.txt",
      "capabilities": [
        "analytics.query",
        "analytics.events",
        "analytics.funnels"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "llms-txt",
        "basic-auth",
        "no-oauth",
        "free-trial",
        "status-page",
        "rate-limits",
        "export",
        "sales-led"
      ],
      "lastRelease": "2026-03-16",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 44.4,
        "grade": "E",
        "agentReady": false,
        "rank": 1219,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 16,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 45,
          "maintenance": 9,
          "payments": 30,
          "reliability": 80,
          "schema": 45,
          "security": 22,
          "transparency": 62
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "Woopra's REST API returns saved Trends, Journeys, Retention and Attribution reports, profiles and raw session logs, with published limits of 300 calls a minute and 3,000 a day per project. A report must first be built in the web app, the tracking endpoints accept events without a secret by default, and no changelog or SLA was found.",
        "bestFor": "An agent that reads a company's existing Woopra reports, looks up or edits customer profiles, or exports raw sessions on a schedule.",
        "strengths": [
          "Rate limits are published per project at 300 calls a minute, 600 an hour and 3,000 a day, and limited calls return 429",
          "Report endpoints take `limit`, `offset`, a `snapshot` ID for consistent paging past 1,000 records, and `timeframe_from` and `timeframe_to` overrides",
          "status.woopra.com (Statuspage) lists no incidents for August, September or October 2026 across Data Processing, Data Collection and the front-end application",
          "`/logs/export` returns raw sessions as line-separated JSON, and `/logs/import` loads them in bulk and returns a batch ID to poll",
          "The terms of service (10 December 2025) name nine sub-processors with addresses and countries, and say the customer owns the tracking data"
        ],
        "weaknesses": [
          "Report endpoints run a report saved in the web app by `report_id`. No endpoint to define a query, funnel or segment was found in the reference",
          "`/track/ce` and `/track/identify` accept data with only the project name unless the owner turns on Secure Tracking",
          "No API changelog, deprecation policy or SLA was found. The terms promise commercially reasonable efforts on availability",
          "Server SDKs are old. The Node, Python, Java and Rails repositories were last committed to in 2017, and npm `woopra` is 1.0.2",
          "The terms of service forbid using any robot, spider, scraper or other automated means to access the Site, a term defined to include the Services",
          "Most REST operations document no response schema, and the `/profiles` page repeats the `/trends` description"
        ],
        "agentNotes": [
          "Ask the owner to build and save each report in the web app first, then pass the last path segment of its URL as `report_id`",
          "Authenticate REST calls with HTTP Basic, using the App ID and Secret Key from the Access Keys tab, against `https://www.woopra.com/rest/3.10/`",
          "Stay under 300 calls a minute, 600 an hour and 3,000 a day per project. A 429 carries no documented retry interval, so back off on your own schedule",
          "Reuse the `snapshot` ID from the first response when paging with `offset`, or pages past 1,000 records may not agree",
          "Send `cookie` or a `cv_` identifier such as `cv_email` on every track call. Without one the event lands on a random profile that can't be identified later",
          "When reading `/logs/export`, delete the profile named in each `type: \"delete\"` line. The following lines log its data again under `new_id`"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 2.3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 44.4
          }
        ],
        "editorialScores": {
          "ergonomics": 45,
          "maintenance": 9,
          "payments": 30,
          "reliability": 80,
          "schema": 45,
          "security": 22,
          "transparency": 45
        },
        "provenanceScore": 78,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-09",
            "maintenance": "2026-10-09",
            "payments": "2026-10-09",
            "reliability": "2026-10-09",
            "schema": "2026-10-09",
            "security": "2026-10-09",
            "transparency": "2026-10-09"
          },
          "last": "2026-10-09",
          "lastMoved": "2026-10-28",
          "oldest": "2026-10-09",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl \\\n--user \u003cApp Id\u003e:\u003cSecret Key\u003e \\\n\"https://www.woopra.com/rest/3.10/trends?project=mybusiness.com\u0026start_day=2017-4-12\u0026end_day=2017-5-19\u0026report_id=83mYcoe6jX\""
      },
      "letme": {
        "capability": "https://letme.dev/analytics.query",
        "tool": "https://letme.dev/woopra"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Pro, 5 million events a month",
          "unit": "month",
          "usd": 999,
          "note": "starting price, overage fees apply"
        }
      ],
      "provenance": {
        "legalEntity": "Woopra, Inc.",
        "domain": "woopra.com",
        "domainRegistered": "2007-02-23",
        "endpointOnVendorDomain": true,
        "terms": "https://www.woopra.com/tos",
        "privacy": "https://www.woopra.com/privacy",
        "statusPage": "https://status.woopra.com",
        "changelog": "",
        "securityTxt": "unknown",
        "checked": "2026-10-09",
        "notes": [
          "The terms of service (last updated 10 December 2025) are a contract with Woopra, Inc., its subsidiaries and affiliated companies including Appier, and cover the website and the subscription services in one document. They give 600 California St, Fl 11, San Francisco, CA 94108 as the legal address.",
          "The privacy policy (last updated 1 August 2025) covers customers and site visitors and says it does not apply to end-user data that Woopra processes for customers. It names Appier Netherlands B.V. as EU representative. No public DPA was found, and the GDPR page says a copy is sent on request.",
          "The REST and tracking endpoints answer under https://www.woopra.com/rest and https://www.woopra.com/track, on the vendor's own domain. robots.txt on that host disallows both paths, and we sent no request to either.",
          "www.woopra.com/.well-known/security.txt timed out twice with no bytes received, so its presence is unknown.",
          "status.woopra.com is an Atlassian Statuspage site. Its address was not linked from the pages we read and was tried directly.",
          "No changelog for the API was found. docs.woopra.com/changelog returns 404, and the browser tracker's CHANGELOG.md stops at v5.3.0 of 15 September 2021.",
          "RDAP for woopra.com gives a registration date of 2007-02-23 and Spaceship, Inc. as registrar."
        ],
        "score": 78
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/woopra.json",
      "live": {
        "slug": "woopra",
        "probe": {
          "target": "https://www.woopra.com/rest/3.10",
          "method": "get",
          "lastAt": "2026-11-07T19:22:44.921119333Z",
          "lastOk": false,
          "lastStatus": 500,
          "lastMs": 50,
          "lastNote": "server error",
          "authRequired": false,
          "uptime24h": 0,
          "uptime30d": 0.01,
          "p50ms24h": 0,
          "p95ms24h": 0,
          "samples24h": 238,
          "samples30d": 7299,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 169,
              "ok": 0
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 0
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 0
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 0
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 0
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 0
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 0
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 0
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 0
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 0
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 0
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 1
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 0
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 0
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 0
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 0
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 0
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 0
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 0
            },
            {
              "date": "2026-10-28",
              "probes": 250,
              "ok": 0
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 0
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 0
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 0
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 0
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 0
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 0
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 0
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 0
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 0
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 0
            }
          ],
          "outages": [
            {
              "start": "2026-10-20T07:53:20.901989595Z",
              "end": "0001-01-01T00:00:00Z",
              "note": "HTTP 500 server error"
            },
            {
              "start": "2026-10-09T07:40:43.906309049Z",
              "end": "2026-10-20T07:48:04.809204174Z",
              "note": "HTTP 500 server error"
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.woopra.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T19:23:57.800171669Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "Woopra/js-client-tracker",
            "version": "v5.3.0",
            "released": "2021-09-16",
            "seenAt": "2026-11-07T00:17:44.037218844Z"
          },
          {
            "registry": "npm",
            "name": "@woopra/browser-tracker",
            "version": "5.2.0-beta.0",
            "seenAt": "2026-11-07T00:17:42.567871491Z"
          },
          {
            "registry": "npm",
            "name": "woopra",
            "version": "1.0.2",
            "seenAt": "2026-11-07T00:17:41.789176314Z"
          }
        ],
        "githubStars": 15,
        "npmWeekly": 153,
        "securityTxt": {
          "url": "https://woopra.com/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-11-07T16:01:40.466479305Z"
        },
        "llmsTxt": {
          "url": "https://docs.woopra.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:34:23.617781678Z"
        },
        "domain": {
          "domain": "woopra.com",
          "registered": "2007-02-23",
          "source": "https://rdap.verisign.com/com/v1/domain/woopra.com",
          "checkedAt": "2026-11-01T14:12:35.920109892Z"
        },
        "pages": [
          {
            "url": "https://www.woopra.com/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-11-07T14:37:14.11622214Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "0ceb5f681fcb"
          },
          {
            "url": "https://www.woopra.com/privacy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-11-07T14:37:19.403294537Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "49851c70f2d0"
          },
          {
            "url": "https://www.woopra.com/tos",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-11-07T14:37:19.678879986Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c8908e094e7b"
          }
        ],
        "github": {
          "repo": "woopra/js-client-tracker",
          "checkedAt": "2026-11-02T09:38:50.665585704Z",
          "stars": 15,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-03-16T07:42:59Z",
          "openIssues": 0,
          "openPRs": 3,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 0,
          "replies": {
            "sampled": 2,
            "unanswered": 0,
            "medianDays": 886.7
          }
        },
        "updatedAt": "2026-11-07T19:23:57.800171669Z"
      }
    },
    "edges": [
      {
        "by": 72,
        "category": "maintenance",
        "leads": "harness-fme",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "harness-mcp-v2 3.2.40 was tagged on 4 November 2026 (30). 14 tagged MCP releases between 8 August and 4 November (20). 100 commits since 8 August in the clone; FME docs and SDK release notes are dated, with support and a community site. Issue response times weren't read because the GitHub API refused us for its rate limit (15 of 25). Not found in the official MCP registry under a Harness namespace; official SDKs are current (8 of 15). MIT package with npm shrinkwrap and tests; CI state not read (8 of 10). 30+20+15+8+8 = 81.",
          "b": "The newest dated change found is a commit to the browser tracker on 16 March 2026, and the REST intro page was last edited on 13 March 2026, both more than 180 days before the check (0). No releases or dated changelog entries in the last 90 days (0). No API changelog. Support is by email and in-app, and response times were not checked (3). The browser tracker's last tag is v5.3.0 from 2021, iOS and Android were last committed to in November 2024, and the Node, Python, Java and Rails SDKs in 2017 (4). The Node README carries a Travis CI badge and no current CI was found (2). Total 9."
        },
        "scores": {
          "a": 81,
          "b": 9
        }
      },
      {
        "by": 57,
        "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": "REST calls use per-user access keys sent by HTTP Basic, with no scopes or rotation guidance found. Tracking calls need only the project name by default, with an optional Secure Tracking secret. Docs examples still show `http://` tracking URLs (15 of 30). The pricing page states group and individual permission controls, but no read-only key or confirmation on `/profile/delete` was found (5). The API returns event and profile text that any caller who knows the project name can write, and no guidance on untrusted content was found (0). No audit log found in the docs (0). No security page, bug bounty or certification was found on the pages read, and security.txt timed out. The privacy policy states Data Privacy Framework certification (2). Total 22."
        },
        "scores": {
          "a": 79,
          "b": 22
        }
      },
      {
        "by": 38,
        "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": "Report responses can be capped with `limit`, but a report can only be run from a `report_id` saved in the web app, so an agent can't shape a query through the API (12). `limit`, `offset`, a `snapshot` ID for consistent paging and timeframe overrides on reports, and position headers on log export (14). Tracking codes 401, 402 and 403 each name a cause. REST error bodies are not documented (8). No idempotency key or dedupe field was found, and tracking is by GET. Imports return a batch ID to poll (3). Report calls need two parameters. Official SDKs exist in several languages, but the server ones date from 2017 (8). Total 45."
        },
        "scores": {
          "a": 83,
          "b": 45
        }
      },
      {
        "by": 26,
        "category": "schema",
        "leads": "harness-fme",
        "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": "Each REST reference page embeds an OpenAPI 3.1 fragment in its Markdown copy. No single spec file was found, most operations define no responses, and the tracking endpoints are documented as tables (12). llms.txt and a .md copy of each page, though llms.txt lists four of fourteen REST operations (10). Descriptions are one line. The `/profiles` page repeats the `/trends` text, three profile operations have none, and one page still holds template placeholder text (6). Query parameters carry types and required flags. There are no enums, and profile edits take a JSON string in `data` (6). One curl example for REST and several tracking examples. Tracking response codes are explained, while REST errors are a 400 with an empty object (6). The version sits in the path and 3.10 is the only one supported. No changelog found (5). Total 45."
        },
        "scores": {
          "a": 71,
          "b": 45
        }
      },
      {
        "by": 15,
        "category": "payments",
        "leads": "woopra",
        "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). Pro is public at a starting price of $999 a month for 5 million events. Overage rates and Enterprise prices are not published (10). 30-day trial of Pro. The terms say a customer may add a card during the trial, which suggests none is needed to start, but we did not see the signup form (20). A person signs up in a browser and generates keys in the members area (0). Total 30."
        },
        "scores": {
          "a": 15,
          "b": 30
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Harness Inc.",
        "b": "Woopra, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://mcp.harness.io/mcp",
        "b": "https://www.woopra.com/rest/3.10",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, stdio, Streamable HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "not published",
        "b": "$999 per month (plan)",
        "name": "Price for event analytics"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "none",
        "b": "Proprietary service under Woopra's terms of service. The browser tracker and the SDKs on GitHub are MIT, and the Node package is ISC",
        "name": "Licence"
      },
      {
        "a": "11",
        "b": "none",
        "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-03-16",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2025-12-10",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2025-08-01",
        "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": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "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": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "8.8k npm/wk",
        "b": "415 npm/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "2.3/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Harness Feature Management \u0026 Experimentation scores 69.2 (B) on agent readiness against Woopra's 44.4 (E), and leads in 4 of 7 scored categories. Woopra leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, Harness Feature Management \u0026 Experimentation or Woopra?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Harness Feature Management \u0026 Experimentation and Woopra need an API key?"
      },
      {
        "answer": "Yes. Harness Feature Management \u0026 Experimentation has a hosted endpoint at https://mcp.harness.io/mcp and Woopra at https://www.woopra.com/rest/3.10.",
        "question": "Can an agent call Harness Feature Management \u0026 Experimentation and Woopra without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 71 against 45",
          "Agent ergonomics, 83 against 45",
          "Security \u0026 auth, 79 against 22",
          "Maintenance \u0026 community, 81 against 9"
        ],
        "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": [
          "Payments \u0026 pricing, 30 against 15"
        ],
        "also": null,
        "goodFor": "An agent that reads a company's existing Woopra reports, looks up or edits customer profiles, or exports raw sessions on a schedule.",
        "slug": "woopra",
        "watchFor": "Report endpoints run a report saved in the web app by `report_id`. No endpoint to define a query, funnel or segment was found in the reference"
      }
    ],
    "history": {
      "harness-fme": null,
      "woopra": [
        {
          "causes": [
            "correction"
          ],
          "date": "2026-10-28",
          "delta": -0.1,
          "from": 44.5,
          "fromGrade": "E",
          "to": 44.4,
          "toGrade": "E"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 44.4,
          "fromGrade": "E",
          "to": 44.5,
          "toGrade": "E"
        }
      ]
    },
    "job": {
      "capability": "analytics.events",
      "name": "Event analytics"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amplitude-vs-woopra.json",
        "title": "Amplitude vs Woopra",
        "url": "https://www.anchorterminal.com/compare/amplitude-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/basedash-mcp-vs-woopra.json",
        "title": "Basedash MCP vs Woopra",
        "url": "https://www.anchorterminal.com/compare/basedash-mcp-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/countly-vs-woopra.json",
        "title": "Countly vs Woopra",
        "url": "https://www.anchorterminal.com/compare/countly-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fullstory-vs-woopra.json",
        "title": "Fullstory vs Woopra",
        "url": "https://www.anchorterminal.com/compare/fullstory-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/growthbook-vs-woopra.json",
        "title": "GrowthBook vs Woopra",
        "url": "https://www.anchorterminal.com/compare/growthbook-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/matomo-vs-woopra.json",
        "title": "Matomo vs Woopra",
        "url": "https://www.anchorterminal.com/compare/matomo-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mixpanel-vs-woopra.json",
        "title": "Mixpanel vs Woopra",
        "url": "https://www.anchorterminal.com/compare/mixpanel-vs-woopra"
      },
      {
        "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-woopra.json",
        "title": "OpenPanel vs Woopra",
        "url": "https://www.anchorterminal.com/compare/openpanel-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/optimizely-vs-woopra.json",
        "title": "Optimizely Experimentation vs Woopra",
        "url": "https://www.anchorterminal.com/compare/optimizely-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pendo-vs-woopra.json",
        "title": "Pendo vs Woopra",
        "url": "https://www.anchorterminal.com/compare/pendo-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/posthog-vs-woopra.json",
        "title": "PostHog vs Woopra",
        "url": "https://www.anchorterminal.com/compare/posthog-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/statsig-vs-woopra.json",
        "title": "Statsig vs Woopra",
        "url": "https://www.anchorterminal.com/compare/statsig-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/userpilot-vs-woopra.json",
        "title": "Userpilot vs Woopra",
        "url": "https://www.anchorterminal.com/compare/userpilot-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/flagsmith-vs-woopra.json",
        "title": "Flagsmith vs Woopra",
        "url": "https://www.anchorterminal.com/compare/flagsmith-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/heap-vs-woopra.json",
        "title": "Heap vs Woopra",
        "url": "https://www.anchorterminal.com/compare/heap-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/rudderstack-mcp-vs-woopra.json",
        "title": "RudderStack MCP vs Woopra",
        "url": "https://www.anchorterminal.com/compare/rudderstack-mcp-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/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-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/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/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/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"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 0,
        "edge": "",
        "harness-fme": 80,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16,
        "woopra": 80
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 26,
        "edge": "harness-fme",
        "harness-fme": 71,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13,
        "woopra": 45
      },
      {
        "by": 38,
        "edge": "harness-fme",
        "harness-fme": 83,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13,
        "woopra": 45
      },
      {
        "by": 57,
        "edge": "harness-fme",
        "harness-fme": 79,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14,
        "woopra": 22
      },
      {
        "by": 15,
        "edge": "woopra",
        "harness-fme": 15,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10,
        "woopra": 30
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 72,
        "edge": "harness-fme",
        "harness-fme": 81,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7,
        "woopra": 9
      },
      {
        "by": 1,
        "edge": "woopra",
        "harness-fme": 61,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7,
        "woopra": 62
      }
    ],
    "summary": "Harness Feature Management \u0026 Experimentation scores 69.2 (B) on agent readiness against Woopra's 44.4 (E), and leads in 4 of 7 scored categories. Woopra leads on payments \u0026 pricing. Both do event analytics.",
    "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.",
      "woopra": "Woopra's REST API returns saved Trends, Journeys, Retention and Attribution reports, profiles and raw session logs, with published limits of 300 calls a minute and 3,000 a day per project. A report must first be built in the web app, the tracking endpoints accept events without a secret by default, and no changelog or SLA was found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/harness-fme-vs-woopra",
    "json": "https://www.anchorterminal.com/compare/harness-fme-vs-woopra.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/harness-fme-vs-woopra.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/harness-fme-vs-woopra.min.md"
  },
  "markdown": "Harness Feature Management \u0026 Experimentation scores 69.2 (B) on agent readiness against Woopra's 44.4 (E), and leads in 4 of 7 scored categories. Woopra leads on payments \u0026 pricing. Both do event analytics.\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- Woopra: grade E, 44.4/100, rank #1219 of 1510. Markdown https://www.anchorterminal.com/tools/woopra.md · JSON https://www.anchorterminal.com/api/v1/tools/woopra.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- Schema \u0026 documentation, 71 against 45\n- Agent ergonomics, 83 against 45\n- Security \u0026 auth, 79 against 22\n- Maintenance \u0026 community, 81 against 9\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### Woopra (E)\n\nGood for: An agent that reads a company's existing Woopra reports, looks up or edits customer profiles, or exports raw sessions on a schedule.\n\nAhead on:\n- Payments \u0026 pricing, 30 against 15\n\nWatch for: Report endpoints run a report saved in the web app by `report_id`. No endpoint to define a query, funnel or segment was found in the reference\n\n\n## Why the edge\n\n### Maintenance \u0026 community: Harness Feature Management \u0026 Experimentation +72\n\n- Harness Feature Management \u0026 Experimentation (81): harness-mcp-v2 3.2.40 was tagged on 4 November 2026 (30). 14 tagged MCP releases between 8 August and 4 November (20). 100 commits since 8 August in the clone; FME docs and SDK release notes are dated, with support and a community site. Issue response times weren't read because the GitHub API refused us for its rate limit (15 of 25). Not found in the official MCP registry under a Harness namespace; official SDKs are current (8 of 15). MIT package with npm shrinkwrap and tests; CI state not read (8 of 10). 30+20+15+8+8 = 81.\n- Woopra (9): The newest dated change found is a commit to the browser tracker on 16 March 2026, and the REST intro page was last edited on 13 March 2026, both more than 180 days before the check (0). No releases or dated changelog entries in the last 90 days (0). No API changelog. Support is by email and in-app, and response times were not checked (3). The browser tracker's last tag is v5.3.0 from 2021, iOS and Android were last committed to in November 2024, and the Node, Python, Java and Rails SDKs in 2017 (4). The Node README carries a Travis CI badge and no current CI was found (2). Total 9.\n\n### Security \u0026 auth: Harness Feature Management \u0026 Experimentation +57\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- Woopra (22): REST calls use per-user access keys sent by HTTP Basic, with no scopes or rotation guidance found. Tracking calls need only the project name by default, with an optional Secure Tracking secret. Docs examples still show `http://` tracking URLs (15 of 30). The pricing page states group and individual permission controls, but no read-only key or confirmation on `/profile/delete` was found (5). The API returns event and profile text that any caller who knows the project name can write, and no guidance on untrusted content was found (0). No audit log found in the docs (0). No security page, bug bounty or certification was found on the pages read, and security.txt timed out. The privacy policy states Data Privacy Framework certification (2). Total 22.\n\n### Agent ergonomics: Harness Feature Management \u0026 Experimentation +38\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- Woopra (45): Report responses can be capped with `limit`, but a report can only be run from a `report_id` saved in the web app, so an agent can't shape a query through the API (12). `limit`, `offset`, a `snapshot` ID for consistent paging and timeframe overrides on reports, and position headers on log export (14). Tracking codes 401, 402 and 403 each name a cause. REST error bodies are not documented (8). No idempotency key or dedupe field was found, and tracking is by GET. Imports return a batch ID to poll (3). Report calls need two parameters. Official SDKs exist in several languages, but the server ones date from 2017 (8). Total 45.\n\n### Schema \u0026 documentation: Harness Feature Management \u0026 Experimentation +26\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- Woopra (45): Each REST reference page embeds an OpenAPI 3.1 fragment in its Markdown copy. No single spec file was found, most operations define no responses, and the tracking endpoints are documented as tables (12). llms.txt and a .md copy of each page, though llms.txt lists four of fourteen REST operations (10). Descriptions are one line. The `/profiles` page repeats the `/trends` text, three profile operations have none, and one page still holds template placeholder text (6). Query parameters carry types and required flags. There are no enums, and profile edits take a JSON string in `data` (6). One curl example for REST and several tracking examples. Tracking response codes are explained, while REST errors are a 400 with an empty object (6). The version sits in the path and 3.10 is the only one supported. No changelog found (5). Total 45.\n\n### Payments \u0026 pricing: Woopra +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- Woopra (30): No x402, MPP or L402 (0). Pro is public at a starting price of $999 a month for 5 million events. Overage rates and Enterprise prices are not published (10). 30-day trial of Pro. The terms say a customer may add a card during the trial, which suggests none is needed to start, but we did not see the signup form (20). A person signs up in a browser and generates keys in the members area (0). Total 30.\n\n## Score by category\n\n| Category | Weight | Harness Feature Management \u0026 Experimentation | Woopra | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 80 | even |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 71 | 45 | Harness Feature Management \u0026 Experimentation +26 |\n| Agent ergonomics | 13% (16.2 this run) | 83 | 45 | Harness Feature Management \u0026 Experimentation +38 |\n| Security \u0026 auth | 14% (17.5 this run) | 79 | 22 | Harness Feature Management \u0026 Experimentation +57 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 15 | 30 | Woopra +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 81 | 9 | Harness Feature Management \u0026 Experimentation +72 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 61 | 62 | Woopra +1 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **69.2 · B** | **44.4 · E** | |\n\n## Facts side by side\n\n| Fact | Harness Feature Management \u0026 Experimentation | Woopra |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Harness Inc. | Woopra, Inc. |\n| Hosted endpoint | `https://mcp.harness.io/mcp` | `https://www.woopra.com/rest/3.10` |\n| Transports | HTTP, stdio, Streamable HTTP | HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Paid |\n| Price for event analytics | not published | $999 per month (plan) |\n| x402 | no | no |\n| Licence | none | Proprietary service under Woopra's terms of service. The browser tracker and the SDKs on GitHub are MIT, and the Node package is ISC |\n| Tools exposed | 11 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-11-04 | 2026-03-16 |\n| Terms last updated | no date given | 2025-12-10 |\n| Privacy policy last updated | no date given | 2025-08-01 |\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 | yes |\n| Terms restrict benchmarking | yes | not found in the text |\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 | yes |\n| Popularity | 8.8k npm/wk | 415 npm/wk |\n| Agent reviews | none | 2.3/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### Woopra\n\n- -0.1 on 28 October 2026: correction\n- +0.1 on 27 October 2026: checklist\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**Woopra.** Woopra's REST API returns saved Trends, Journeys, Retention and Attribution reports, profiles and raw session logs, with published limits of 300 calls a minute and 3,000 a day per project. A report must first be built in the web app, the tracking endpoints accept events without a secret by default, and no changelog or SLA 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### Woopra\n\n1. Ask the owner to build and save each report in the web app first, then pass the last path segment of its URL as `report_id`\n2. Authenticate REST calls with HTTP Basic, using the App ID and Secret Key from the Access Keys tab, against `https://www.woopra.com/rest/3.10/`\n3. Stay under 300 calls a minute, 600 an hour and 3,000 a day per project. A 429 carries no documented retry interval, so back off on your own schedule\n4. Reuse the `snapshot` ID from the first response when paging with `offset`, or pages past 1,000 records may not agree\n5. Send `cookie` or a `cv_` identifier such as `cv_email` on every track call. Without one the event lands on a random profile that can't be identified later\n6. When reading `/logs/export`, delete the profile named in each `type: \"delete\"` line. The following lines log its data again under `new_id`\n\n## Questions\n\n### Which is better for AI agents, Harness Feature Management \u0026 Experimentation or Woopra?\n\nHarness Feature Management \u0026 Experimentation scores 69.2 (B) on agent readiness against Woopra's 44.4 (E), and leads in 4 of 7 scored categories. Woopra leads on payments \u0026 pricing.\n\n### Do Harness Feature Management \u0026 Experimentation and Woopra 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 Woopra without installing anything?\n\nYes. Harness Feature Management \u0026 Experimentation has a hosted endpoint at https://mcp.harness.io/mcp and Woopra at https://www.woopra.com/rest/3.10.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/harness-fme-vs-woopra.json, and with the fewest tokens: https://www.anchorterminal.com/compare/harness-fme-vs-woopra.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"harness-fme\", \"b\": \"woopra\"}`. From a terminal: `anchor compare harness-fme woopra`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/harness-fme.json and https://www.anchorterminal.com/api/v1/tools/woopra.json\n\n## Other comparisons with Harness Feature Management \u0026 Experimentation or Woopra\n\n- [Amplitude vs Woopra](https://www.anchorterminal.com/compare/amplitude-vs-woopra.md)\n- [Basedash MCP vs Woopra](https://www.anchorterminal.com/compare/basedash-mcp-vs-woopra.md)\n- [Countly vs Woopra](https://www.anchorterminal.com/compare/countly-vs-woopra.md)\n- [Fullstory vs Woopra](https://www.anchorterminal.com/compare/fullstory-vs-woopra.md)\n- [GrowthBook vs Woopra](https://www.anchorterminal.com/compare/growthbook-vs-woopra.md)\n- [Matomo vs Woopra](https://www.anchorterminal.com/compare/matomo-vs-woopra.md)\n- [Mixpanel vs Woopra](https://www.anchorterminal.com/compare/mixpanel-vs-woopra.md)\n- [Mostly Good Metrics vs Woopra](https://www.anchorterminal.com/compare/mostly-good-metrics-vs-woopra.md)\n- [OpenPanel vs Woopra](https://www.anchorterminal.com/compare/openpanel-vs-woopra.md)\n- [Optimizely Experimentation vs Woopra](https://www.anchorterminal.com/compare/optimizely-vs-woopra.md)\n- [Pendo vs Woopra](https://www.anchorterminal.com/compare/pendo-vs-woopra.md)\n- [PostHog vs Woopra](https://www.anchorterminal.com/compare/posthog-vs-woopra.md)\n- [Statsig vs Woopra](https://www.anchorterminal.com/compare/statsig-vs-woopra.md)\n- [Userpilot vs Woopra](https://www.anchorterminal.com/compare/userpilot-vs-woopra.md)\n- [Flagsmith vs Woopra](https://www.anchorterminal.com/compare/flagsmith-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- [Heap vs Woopra](https://www.anchorterminal.com/compare/heap-vs-woopra.md)\n- [RudderStack MCP vs Woopra](https://www.anchorterminal.com/compare/rudderstack-mcp-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- [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 Optimizely Experimentation](https://www.anchorterminal.com/compare/harness-fme-vs-optimizely.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- [GrowthBook vs Harness Feature Management \u0026 Experimentation](https://www.anchorterminal.com/compare/growthbook-vs-harness-fme.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",
  "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 Woopra",
        "url": ""
      }
    ],
    "description": "Harness Feature Management \u0026 Experimentation scores 69.2 (B) to Woopra's 44.4 (E) for event analytics. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Harness Feature Management \u0026 Experimentation B 69.2",
      "Woopra E 44.4",
      "scores"
    ],
    "h1": "Harness Feature Management \u0026 Experimentation vs Woopra",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/harness-fme-vs-woopra",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Harness Feature Management \u0026 Experimentation vs Woopra (2026)",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/harness-fme-vs-woopra"
  },
  "tokens": {
    "markdown": 4800,
    "slim": 2530
  },
  "version": 1
}
