{
  "data": {
    "a": {
      "slug": "heap",
      "name": "Heap",
      "vendor": "Contentsquare (Content Square, Inc.)",
      "vendorUrl": "https://www.heap.io",
      "kind": "http-api",
      "category": "product-analytics",
      "summary": "Heap is Contentsquare's product analytics service, which captures web and mobile interactions automatically. Its server-side HTTP API accepts custom events, identities, user and account properties, and user deletion requests.",
      "url": "https://www.anchorterminal.com/tools/heap",
      "markdownUrl": "https://www.anchorterminal.com/tools/heap.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/heap.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/heap.json",
      "dns": "heap.grade.anchorterminal.com",
      "license": "Proprietary service under Contentsquare's master services agreement. The React Native bridge and the Node client on npm are MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://heapanalytics.com",
      "packages": [
        {
          "registry": "npm",
          "name": "heap-api"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. Track, identify and property calls need only `app_id`, the environment ID shown on the Projects page and used in the web snippet, with no secret. User deletion needs an API key that an admin generates under Account, Manage, Privacy \u0026 Security, exchanged by HTTP Basic for a temporary Bearer token. No OAuth, scopes or partner approval were found in the developer docs.",
      "pricing": "freemium",
      "pricingNotes": "Free plan up to 10,000 sessions a month with six months of history, APIs included, so an agent's owner can start without a contract. Growth is priced by estimate after signup, and Pro and Premier by quote. Whether signup asks for a card was not established (https://www.heap.io/pricing, checked 2026-10-07).",
      "priceSummary": "Freemium",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs or on the pricing page (checked 2026-10-07).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 213,
        "pypiWeekly": null,
        "asOf": "2026-10-07"
      },
      "docsUrl": "https://developers.heap.io",
      "llmsTxt": "https://developers.heap.io/llms.txt",
      "capabilities": [
        "analytics.events"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "llms-txt",
        "free-tier",
        "no-oauth",
        "write-only",
        "eu-region",
        "status-page",
        "soc2",
        "sales-led"
      ],
      "lastRelease": "2026-10-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 48.2,
        "grade": "D",
        "agentReady": false,
        "rank": 1132,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 15,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 49,
          "maintenance": 63,
          "payments": 25,
          "reliability": 47,
          "schema": 57,
          "security": 41,
          "transparency": 66
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-04"
        },
        "negative": 0,
        "verdict": "Heap's server-side API suits an agent that records events. Limits are published, bulk calls take 1,000 items and track accepts an idempotency key. The API returns no analytics, and ingest calls carry no secret beyond the environment ID. Heap's help centre lists a Heap MCP article, which a bot check stopped us reading, so the MCP server is ungraded.",
        "bestFor": "An agent that records backend events or enriches user and account properties in a company's existing Heap project, or that files privacy deletions.",
        "strengths": [
          "Rate limits are published. Track allows 30 requests per 30 seconds per identity, and bulk track 15,000 events a minute per environment",
          "Track and bulk track accept an `idempotency_key`, and bulk calls take up to 1,000 events or users per request",
          "llms.txt and a Markdown copy of every developer page, with an OpenAPI 3.1 fragment embedded in the reference pages we read",
          "Free plan with up to 10,000 sessions a month and six months of history, with APIs and the User Privacy API included",
          "Sub-processor list (June 2026) names AWS regions in Ireland, Frankfurt and Virginia, and the customer chooses Europe or the USA"
        ],
        "weaknesses": [
          "No query, export or definitions endpoint in the developer reference. Reading results needs the app, Heap Connect or the MCP server we couldn't read",
          "Track, identify and property calls carry no secret. The only identifier is the environment ID that the web snippet also publishes",
          "No SLA covers the API itself. Contentsquare's 99.5 per cent availability on Pro and Enterprise is measured on the user interface",
          "Paid plans have no public price. Growth asks for an estimate after signup, and Pro and Premier say Contact Us",
          "Error responses for track and identify are documented as a 400 with an empty object, and no 429 guidance was found"
        ],
        "agentNotes": [
          "Send EU projects to https://c.eu.heap-api.com instead of https://heapanalytics.com. The path stays the same",
          "Pass one of `identity` or `user_id` on track, never both",
          "Set `idempotency_key` on every track event so a retry doesn't duplicate it",
          "Stay under 30 requests per 30 seconds per identity, or batch up to 1,000 events in one bulk call",
          "For deletion, exchange the app_id and API key of the Main Production environment for a token first. Any other environment ID returns Unauthorized"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 48.2
          }
        ],
        "editorialScores": {
          "ergonomics": 49,
          "maintenance": 63,
          "payments": 25,
          "reliability": 47,
          "schema": 57,
          "security": 41,
          "transparency": 61
        },
        "provenanceScore": 71,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-11-04",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl -X POST \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"app_id\": \"11\",\n    \"identity\": \"alice@example.com\",\n    \"event\": \"Send Transactional Email\",\n    \"properties\": {\"subject\": \"Welcome to My App!\"}\n  }' \\\n  https://heapanalytics.com/api/track"
      },
      "letme": {
        "capability": "https://letme.dev/analytics.events",
        "tool": "https://letme.dev/heap"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Free",
          "unit": "month",
          "usd": 0,
          "note": "up to 10,000 sessions a month"
        }
      ],
      "provenance": {
        "legalEntity": "Content Square, Inc.",
        "domain": "heap.io",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://www.heap.io/legal/heap-master-services-agreement",
        "privacy": "https://www.heap.io/privacy",
        "statusPage": "https://status.heap.io",
        "changelog": "https://developers.heap.io/docs/heapjs-5-changelog",
        "securityTxt": "none",
        "checked": "2026-10-07",
        "notes": [
          "The Heap master services agreement URL redirects to Contentsquare's terms at contentsquare.com/legal/terms-conditions. The entity schedule names Content Square, Inc., 60 Hudson St, New York, for customers in the Americas, and other Contentsquare entities elsewhere.",
          "heap.io/terms is a website terms of use from Heap Inc., a Delaware corporation, last updated 30 August 2019. heap.io/privacy says the Heap policy has been consolidated into Contentsquare's.",
          "API calls go to heapanalytics.com and, for EU projects, c.eu.heap-api.com. Both are Heap domains named in the vendor's docs, not heap.io itself.",
          "www.heap.io/.well-known/security.txt and heapanalytics.com/.well-known/security.txt return 404. contentsquare.com publishes a signed security.txt that expires on 31 January 2028.",
          "RDAP has no service for .io through rdap.org, so the registration date of heap.io was not established.",
          "The only changelogs found are for the SDKs (heap.js 5, Android, iOS, React Native, Flutter). No changelog for the server-side API was found."
        ],
        "score": 71
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/heap.json",
      "live": {
        "slug": "heap",
        "probe": {
          "target": "https://heapanalytics.com",
          "method": "get",
          "lastAt": "2026-11-07T23:26:34.096351847Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 385,
          "authRequired": false,
          "uptime24h": 99.59,
          "uptime30d": 99.95,
          "p50ms24h": 392,
          "p95ms24h": 613,
          "samples24h": 243,
          "samples30d": 7514,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 93,
              "ok": 93
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "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": 253
            },
            {
              "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": 253
            },
            {
              "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": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 240
            },
            {
              "date": "2026-11-07",
              "probes": 238,
              "ok": 237
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.heap.io",
          "indicator": "minor",
          "summary": "Minor Service Outage",
          "checkedAt": "2026-11-07T23:31:45.294868793Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "heap-api",
            "version": "1.0.1",
            "seenAt": "2026-11-06T23:32:32.393792952Z"
          }
        ],
        "npmWeekly": 30,
        "securityTxt": {
          "url": "https://heap.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:09.648091398Z"
        },
        "llmsTxt": {
          "url": "https://developers.heap.io/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:41.286344858Z"
        },
        "domain": {
          "domain": "heap.io",
          "checkedAt": "2026-11-01T14:21:01.065060526Z"
        },
        "pages": [
          {
            "url": "https://developers.heap.io/docs/heapjs-5-changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:03:59.707627429Z",
            "changedAt": "2026-11-05T12:28:13.588228653Z",
            "fingerprint": "1a6c97992ee3"
          },
          {
            "url": "https://www.heap.io/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:29:40.537453733Z",
            "changedAt": "2026-10-22T01:32:52.077065334Z",
            "fingerprint": "93f237b387d9"
          },
          {
            "url": "https://www.heap.io/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:29:42.80598927Z",
            "changedAt": "2026-10-22T01:32:52.370154517Z",
            "fingerprint": "f6fde754bf93"
          },
          {
            "url": "https://www.heap.io/legal/heap-master-services-agreement",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:29:38.187893789Z",
            "changedAt": "2026-10-22T01:32:48.135332495Z",
            "fingerprint": "93db7683f754"
          }
        ],
        "updatedAt": "2026-11-07T23:31:45.294868793Z"
      }
    },
    "answer": "RudderStack MCP scores 54.7 (C) on agent readiness against Heap's 48.2 (D), and leads in 5 of 7 scored categories. Heap leads on transparency \u0026 trust.",
    "b": {
      "slug": "rudderstack-mcp",
      "name": "RudderStack MCP",
      "vendor": "RudderStack, Inc.",
      "vendorUrl": "https://www.rudderstack.com",
      "kind": "mcp",
      "category": "product-analytics",
      "summary": "RudderStack MCP is a hosted server that lets an agent debug event delivery, warehouse loads and tracking-plan violations, and manage transformations, Reverse ETL and audiences in a RudderStack workspace, over OAuth.",
      "url": "https://www.anchorterminal.com/tools/rudderstack-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/rudderstack-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/rudderstack-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/rudderstack-mcp.json",
      "dns": "rudderstack-mcp.grade.anchorterminal.com",
      "repo": "https://github.com/rudderlabs/rudderstack-mcp",
      "license": "Proprietary service. The repository's MIT licence covers docs and metadata only",
      "transports": [
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.rudderstack.com/mcp",
      "packages": [],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 with PKCE and dynamic client registration; no static token in the configuration. Tools run with the signed-in user's workspace permissions, and every workspace tool needs a workspace_id.",
      "pricing": "freemium",
      "pricingNotes": "Free plan $0 with 250,000 events a month; Growth from $265 a month for 1 million events with a 30-day trial; Enterprise by quote. Tool availability depends on plan and enabled products (checked 2026-11-07).",
      "priceSummary": "Freemium",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the MCP docs or pricing page (checked 2026-11-07).",
        "endpoints": []
      },
      "toolCount": 62,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-07"
      },
      "docsUrl": "https://www.rudderstack.com/docs/ai-features/rudderstack-mcp/",
      "llmsTxt": "https://www.rudderstack.com/llms.txt",
      "registryName": "io.github.rudderlabs/rudderstack-mcp",
      "capabilities": [
        "analytics.events",
        "analytics.query",
        "events.webhooks-send",
        "observability.errors"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "remote-mcp",
        "oauth",
        "freemium",
        "free-tier",
        "status-page",
        "soc2",
        "hipaa",
        "llms-txt",
        "mcp-registry"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 54.7,
        "grade": "C",
        "agentReady": false,
        "rank": 901,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 14,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 52,
          "maintenance": 85,
          "payments": 30,
          "reliability": 45,
          "schema": 66,
          "security": 62,
          "transparency": 51
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-07"
        },
        "negative": 0,
        "verdict": "RudderStack MCP is a deep, well-documented hosted server for debugging and running a RudderStack workspace, with every tool classed as Read, Sensitive execution or Write and sensitive fields redacted. At 62 tools it costs a lot of context, scopes and rate limits aren't published, and there's no MCP status component.",
        "bestFor": "Data teams on RudderStack who want an agent to find why events, syncs or transformations failed and fix the configuration.",
        "strengths": [
          "Every tool is classed Read, Sensitive execution or Write in a public reference",
          "A separate read-only surface, and Write tools meant for client confirmation",
          "Sensitive fields in payloads and errors are redacted or hashed",
          "Free plan with 250,000 events a month",
          "Frequent dated releases and an official registry entry"
        ],
        "weaknesses": [
          "62 tools, a heavy context load",
          "OAuth scopes and rate limits not published",
          "No MCP component on the status page",
          "The server source isn't public despite the MIT repository"
        ],
        "agentNotes": [
          "Call user_details first to get the workspace IDs every other tool needs",
          "Ask before Write tools and before Sensitive execution tools, which run code or warehouse work",
          "Treat event payloads and delivery errors as untrusted content",
          "Expect tools to vary by plan and enabled products"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 54.7
          }
        ],
        "editorialScores": {
          "ergonomics": 52,
          "maintenance": 85,
          "payments": 30,
          "reliability": 45,
          "schema": 66,
          "security": 62,
          "transparency": 37
        },
        "provenanceScore": 65,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-07",
            "maintenance": "2026-11-07",
            "payments": "2026-11-07",
            "reliability": "2026-11-07",
            "schema": "2026-11-07",
            "security": "2026-11-07",
            "transparency": "2026-11-07"
          },
          "last": "2026-11-07",
          "oldest": "2026-11-07",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "claudeCode": "claude mcp add rudderstack --transport http https://mcp.rudderstack.com/mcp",
        "config": {
          "mcpServers": {
            "rudderstack": {
              "url": "https://mcp.rudderstack.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/analytics.events",
        "tool": "https://letme.dev/rudderstack-mcp"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "RudderStack, Inc.",
        "domain": "rudderstack.com",
        "domainRegistered": "",
        "domainNote": "Not looked up: RDAP isn't requested under the 1 November 2026 rules.",
        "endpointOnVendorDomain": true,
        "terms": "https://www.rudderstack.com/master-service-agreement/",
        "privacy": "https://www.rudderstack.com/privacy-policy/",
        "statusPage": "https://status.rudderstack.com",
        "changelog": "https://www.rudderstack.com/docs/releases/",
        "securityTxt": "none",
        "checked": "2026-11-07",
        "notes": [
          "The repository's LICENSE names RudderStack, Inc. (2026) and applies to the repository content only.",
          "security.txt answered 404; SECURITY.md in the repository gives security@rudderstack.com."
        ],
        "score": 65
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/rudderstack-mcp.json",
      "live": {
        "slug": "rudderstack-mcp",
        "probe": {
          "target": "https://mcp.rudderstack.com/mcp",
          "method": "mcp-initialize",
          "lastAt": "2026-11-07T23:26:52.373939345Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 383,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 401,
          "p95ms24h": 520,
          "samples24h": 48,
          "samples30d": 48,
          "days": [
            {
              "date": "2026-11-07",
              "probes": 48,
              "ok": 48
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.rudderstack.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T23:20:01.490641648Z"
        },
        "updatedAt": "2026-11-07T23:26:52.373939345Z"
      }
    },
    "edges": [
      {
        "by": 22,
        "category": "maintenance",
        "leads": "rudderstack-mcp",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "heap.js 5.3.17 shipped on 6 October 2026, but that is the browser SDK. The server-side track reference last changed on 3 June 2026 and has no changelog, so we scored this line between the two (20 of 30). heap.js 5.3.15, 5.3.16 and 5.3.17 and Android Core 0.9.5 fall inside 90 days (20). Dated public changelogs and a community at community.contentsquare.com, whose response times we didn't check (8). Client SDKs for web, Android, iOS, React Native and Flutter are current. The Node server client is from 2016 (10). CI not checked (5). Total 63. Per the 7 October check, not re-read on 4 November (developers.heap.io is paused on its terms). The three heap.js releases still fall inside the 90 days from 6 August.",
          "b": "Release notes dated 4 November 2026 and a registry version on 6 November (30). Many dated releases in 90 days (20). Public issue templates on the MCP repository, issues not read, plus release notes (10 of 25). Official registry entry io.github.rudderlabs/rudderstack-mcp and current official SDKs (15). A repository workflow publishes to the registry (10). 30 + 20 + 10 + 15 + 10 = 85. Registry presence read from Anchor Terminal's own daily import of the official MCP registry (/api/v1/registry.json, 6 November 2026), not the registry's API."
        },
        "scores": {
          "a": 63,
          "b": 85
        }
      },
      {
        "by": 21,
        "category": "security",
        "leads": "rudderstack-mcp",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Track, identify and property calls carry no secret. The OpenAPI fragment declares an empty security requirement and the only identifier is the environment ID that the web snippet publishes. User deletion uses one admin-generated API key per account, exchanged for a temporary token. No scopes or rotation guidance found (8 of 30). Ingest is write-only by design. Deletion of up to 10,000 users has no confirmation step (5). The API returns no untrusted content (10). Audit logs are unchecked because help.heap.io answered with a bot check, so none are counted (0). Contentsquare publishes a signed security.txt valid to 31 January 2028 on contentsquare.com (not on heap.io), a disclosure policy, an invitation-only YesWeHack bounty, SOC 2 Type II and ISO 27001 (18). Total 41. Per the 7 October check, not re-read on 4 November, because heap.io and contentsquare.com terms bar robots and crawling.",
          "b": "OAuth with PKCE and dynamic registration, scopes not published (22 of 30). Access classes, a read-only surface and confirmation advice for writes (16 of 20). Selected sensitive fields in event payloads and errors are redacted or hashed before they reach the model, but event payloads are still untrusted text (8 of 15). No audit log of MCP calls found (0). SOC 2 Type 2, HIPAA with a BAA, and a SECURITY.md with a private reporting address; no security.txt (404) (16 of 20). 22 + 16 + 8 + 0 + 16 = 62."
        },
        "scores": {
          "a": 41,
          "b": 62
        }
      },
      {
        "by": 15,
        "category": "transparency",
        "leads": "heap",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service with published terms, now Contentsquare's master services agreement (15). The DPA (June 2026) caps Product Analytics retention at 37 months from collection unless agreed otherwise and links the sub-processor list. heap.io still carries a 2019 website terms page from Heap Inc. beside the Contentsquare documents (22). No deprecation policy for the API was found. Contentsquare's docs carry migration guides from the Heap SDKs to the CSQ SDK without an end date that we found (4). Sub-processor list (June 2026) with locations, AWS in Ireland, Frankfurt and Virginia and OpenAI for Sense Chat (20). Total 61. Per the 7 October check, not re-read on 4 November, apart from the heap.io website terms (still dated 30 August 2019) and Contentsquare's terms of service (29 January 2026).",
          "b": "The server's source is closed; the repository's MIT licence covers only its docs and metadata. Terms in a master service agreement naming RudderStack, Inc. (15). Privacy policy read, retention given by purpose, not as periods (12 of 30). No deprecation policy for the MCP server (5 of 20). Subprocessors not found in the pages read (5 of 20). The MCP docs say live events, schemas, profile artifacts, transformation code and audit data stay within the workspace view. 15 + 12 + 5 + 5 = 37."
        },
        "scores": {
          "a": 66,
          "b": 51
        }
      },
      {
        "by": 9,
        "category": "schema",
        "leads": "rudderstack-mcp",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "OpenAPI 3.1 fragments are embedded in the Markdown of the track and identify pages. No single spec file was found, the property pages we read had empty fragments and user deletion is prose only (15). llms.txt and a .md copy of every page (10). Descriptions state purpose, limits and reserved keys, with little on when not to use a call (12). Required fields are marked and lengths stated in prose, with string types throughout, no enums and a free-form `properties` object (8). Curl examples on every page. Track and identify document 200 and 400 with an empty object, and only user deletion describes its error body (7). SDK changelogs are dated, but no changelog or version policy for the server-side API was found. Paths mix unversioned, v1 and v0 (5). Total 57. Per the 7 October check, not re-read on 4 November, because developers.heap.io sits on a host whose terms bar robots.",
          "b": "The public repository's docs/tools.md lists 62 tools with an access class for each; JSON Schemas not read without a session (15 of 25). llms.txt (10). Every tool has a one-line purpose and a Read, Sensitive execution or Write class (15 of 20). Inputs not verifiable (5 of 15). Example prompts and a documented 'workspace_id is required' error (6 of 15). Versioned in the registry (0.43.1, 6 November) and dated release notes (15). 15 + 10 + 15 + 5 + 6 + 15 = 66."
        },
        "scores": {
          "a": 57,
          "b": 66
        }
      },
      {
        "by": 5,
        "category": "payments",
        "leads": "rudderstack-mcp",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). The Free plan and its 10,000-session limit are public. Growth needs an estimate after signup and Pro and Premier say Contact Us, so no paid price is published (5). Free plan with APIs included. No card is mentioned on the pricing page, and the signup form needs JavaScript we couldn't run (20). A person signs up in a browser and copies the environment ID (0). Total 25. Per the 7 October check, not re-read on 4 November (www.heap.io is paused on its terms).",
          "b": "No machine payment protocol (0). Public plan prices with event allowances, nothing per call (10). Free plan with 250,000 events a month (20). A person signs up in a browser and approves OAuth (0). 0 + 10 + 20 + 0 = 30."
        },
        "scores": {
          "a": 25,
          "b": 30
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "MCP server",
        "name": "Kind"
      },
      {
        "a": "Contentsquare (Content Square, Inc.)",
        "b": "RudderStack, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://heapanalytics.com",
        "b": "https://mcp.rudderstack.com/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Contentsquare's master services agreement. The React Native bridge and the Node client on npm are MIT",
        "b": "Proprietary service. The repository's MIT licence covers docs and metadata only",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "62",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.rudderlabs/rudderstack-mcp",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-06",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "not read yet",
        "name": "Terms last updated"
      },
      {
        "a": "couldn't be read",
        "b": "not read yet",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "213 npm/wk",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "RudderStack MCP scores 54.7 (C) on agent readiness against Heap's 48.2 (D), and leads in 5 of 7 scored categories. Heap leads on transparency \u0026 trust.",
        "question": "Which is better for AI agents, Heap or RudderStack MCP?"
      },
      {
        "answer": "Heap takes an API key or an OAuth sign-in. RudderStack MCP uses an OAuth sign-in.",
        "question": "Do Heap and RudderStack MCP need an API key?"
      },
      {
        "answer": "Yes. Heap has a hosted endpoint at https://heapanalytics.com and RudderStack MCP at https://mcp.rudderstack.com/mcp.",
        "question": "Can an agent call Heap and RudderStack MCP without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Transparency \u0026 trust, 66 against 51"
        ],
        "also": null,
        "goodFor": "An agent that records backend events or enriches user and account properties in a company's existing Heap project, or that files privacy deletions.",
        "slug": "heap",
        "watchFor": "No query, export or definitions endpoint in the developer reference. Reading results needs the app, Heap Connect or the MCP server we couldn't read"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 66 against 57",
          "Security \u0026 auth, 62 against 41",
          "Payments \u0026 pricing, 30 against 25",
          "Maintenance \u0026 community, 85 against 63"
        ],
        "also": null,
        "goodFor": "Data teams on RudderStack who want an agent to find why events, syncs or transformations failed and fix the configuration.",
        "slug": "rudderstack-mcp",
        "watchFor": "62 tools, a heavy context load"
      }
    ],
    "history": {
      "heap": [
        {
          "causes": [
            "correction"
          ],
          "date": "2026-11-04",
          "delta": -5,
          "from": 53.2,
          "fromGrade": "D",
          "to": 48.2,
          "toGrade": "D"
        },
        {
          "causes": [
            "evidence"
          ],
          "date": "2026-10-28",
          "delta": 0.1,
          "from": 53.1,
          "fromGrade": "D",
          "to": 53.2,
          "toGrade": "D"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 53,
          "fromGrade": "D",
          "to": 53.1,
          "toGrade": "D"
        }
      ],
      "rudderstack-mcp": null
    },
    "job": {
      "capability": "analytics.events",
      "name": "Event analytics"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amplitude-vs-rudderstack-mcp.json",
        "title": "Amplitude vs RudderStack MCP",
        "url": "https://www.anchorterminal.com/compare/amplitude-vs-rudderstack-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/countly-vs-rudderstack-mcp.json",
        "title": "Countly vs RudderStack MCP",
        "url": "https://www.anchorterminal.com/compare/countly-vs-rudderstack-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fullstory-vs-rudderstack-mcp.json",
        "title": "Fullstory vs RudderStack MCP",
        "url": "https://www.anchorterminal.com/compare/fullstory-vs-rudderstack-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/matomo-vs-rudderstack-mcp.json",
        "title": "Matomo vs RudderStack MCP",
        "url": "https://www.anchorterminal.com/compare/matomo-vs-rudderstack-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mixpanel-vs-rudderstack-mcp.json",
        "title": "Mixpanel vs RudderStack MCP",
        "url": "https://www.anchorterminal.com/compare/mixpanel-vs-rudderstack-mcp"
      },
      {
        "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/openpanel-vs-rudderstack-mcp.json",
        "title": "OpenPanel vs RudderStack MCP",
        "url": "https://www.anchorterminal.com/compare/openpanel-vs-rudderstack-mcp"
      },
      {
        "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/pendo-vs-rudderstack-mcp.json",
        "title": "Pendo vs RudderStack MCP",
        "url": "https://www.anchorterminal.com/compare/pendo-vs-rudderstack-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/posthog-vs-rudderstack-mcp.json",
        "title": "PostHog vs RudderStack MCP",
        "url": "https://www.anchorterminal.com/compare/posthog-vs-rudderstack-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amplitude-vs-heap.json",
        "title": "Amplitude vs Heap",
        "url": "https://www.anchorterminal.com/compare/amplitude-vs-heap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/countly-vs-heap.json",
        "title": "Countly vs Heap",
        "url": "https://www.anchorterminal.com/compare/countly-vs-heap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/flagsmith-vs-heap.json",
        "title": "Flagsmith vs Heap",
        "url": "https://www.anchorterminal.com/compare/flagsmith-vs-heap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/flagsmith-vs-rudderstack-mcp.json",
        "title": "Flagsmith vs RudderStack MCP",
        "url": "https://www.anchorterminal.com/compare/flagsmith-vs-rudderstack-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fullstory-vs-heap.json",
        "title": "Fullstory vs Heap",
        "url": "https://www.anchorterminal.com/compare/fullstory-vs-heap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/growthbook-vs-heap.json",
        "title": "GrowthBook vs Heap",
        "url": "https://www.anchorterminal.com/compare/growthbook-vs-heap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/growthbook-vs-rudderstack-mcp.json",
        "title": "GrowthBook vs RudderStack MCP",
        "url": "https://www.anchorterminal.com/compare/growthbook-vs-rudderstack-mcp"
      },
      {
        "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-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-matomo.json",
        "title": "Heap vs Matomo",
        "url": "https://www.anchorterminal.com/compare/heap-vs-matomo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/heap-vs-mixpanel.json",
        "title": "Heap vs Mixpanel",
        "url": "https://www.anchorterminal.com/compare/heap-vs-mixpanel"
      },
      {
        "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/heap-vs-openpanel.json",
        "title": "Heap vs OpenPanel",
        "url": "https://www.anchorterminal.com/compare/heap-vs-openpanel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/heap-vs-pendo.json",
        "title": "Heap vs Pendo",
        "url": "https://www.anchorterminal.com/compare/heap-vs-pendo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/heap-vs-posthog.json",
        "title": "Heap vs PostHog",
        "url": "https://www.anchorterminal.com/compare/heap-vs-posthog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/heap-vs-statsig.json",
        "title": "Heap vs Statsig",
        "url": "https://www.anchorterminal.com/compare/heap-vs-statsig"
      },
      {
        "json": "https://www.anchorterminal.com/compare/heap-vs-userpilot.json",
        "title": "Heap vs Userpilot",
        "url": "https://www.anchorterminal.com/compare/heap-vs-userpilot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/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-statsig.json",
        "title": "RudderStack MCP vs Statsig",
        "url": "https://www.anchorterminal.com/compare/rudderstack-mcp-vs-statsig"
      },
      {
        "json": "https://www.anchorterminal.com/compare/rudderstack-mcp-vs-userpilot.json",
        "title": "RudderStack MCP vs Userpilot",
        "url": "https://www.anchorterminal.com/compare/rudderstack-mcp-vs-userpilot"
      },
      {
        "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"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 2,
        "edge": "heap",
        "heap": 47,
        "key": "reliability",
        "name": "Reliability",
        "rudderstack-mcp": 45,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 9,
        "edge": "rudderstack-mcp",
        "heap": 57,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "rudderstack-mcp": 66,
        "weight": 13
      },
      {
        "by": 3,
        "edge": "rudderstack-mcp",
        "heap": 49,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "rudderstack-mcp": 52,
        "weight": 13
      },
      {
        "by": 21,
        "edge": "rudderstack-mcp",
        "heap": 41,
        "key": "security",
        "name": "Security \u0026 auth",
        "rudderstack-mcp": 62,
        "weight": 14
      },
      {
        "by": 5,
        "edge": "rudderstack-mcp",
        "heap": 25,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "rudderstack-mcp": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 22,
        "edge": "rudderstack-mcp",
        "heap": 63,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "rudderstack-mcp": 85,
        "weight": 7
      },
      {
        "by": 15,
        "edge": "heap",
        "heap": 66,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "rudderstack-mcp": 51,
        "weight": 7
      }
    ],
    "summary": "RudderStack MCP scores 54.7 (C) on agent readiness against Heap's 48.2 (D), and leads in 5 of 7 scored categories. Heap leads on transparency \u0026 trust. Both do event analytics.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "heap": "Heap's server-side API suits an agent that records events. Limits are published, bulk calls take 1,000 items and track accepts an idempotency key. The API returns no analytics, and ingest calls carry no secret beyond the environment ID. Heap's help centre lists a Heap MCP article, which a bot check stopped us reading, so the MCP server is ungraded.",
      "rudderstack-mcp": "RudderStack MCP is a deep, well-documented hosted server for debugging and running a RudderStack workspace, with every tool classed as Read, Sensitive execution or Write and sensitive fields redacted. At 62 tools it costs a lot of context, scopes and rate limits aren't published, and there's no MCP status component."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/heap-vs-rudderstack-mcp",
    "json": "https://www.anchorterminal.com/compare/heap-vs-rudderstack-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/heap-vs-rudderstack-mcp.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/heap-vs-rudderstack-mcp.min.md"
  },
  "markdown": "RudderStack MCP scores 54.7 (C) on agent readiness against Heap's 48.2 (D), and leads in 5 of 7 scored categories. Heap leads on transparency \u0026 trust. Both do event analytics.\n\n- Heap: grade D, 48.2/100, rank #1132 of 1510. Markdown https://www.anchorterminal.com/tools/heap.md · JSON https://www.anchorterminal.com/api/v1/tools/heap.json\n- RudderStack MCP: grade C, 54.7/100, rank #901 of 1510. Markdown https://www.anchorterminal.com/tools/rudderstack-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/rudderstack-mcp.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### Heap (D)\n\nGood for: An agent that records backend events or enriches user and account properties in a company's existing Heap project, or that files privacy deletions.\n\nAhead on:\n- Transparency \u0026 trust, 66 against 51\n\nWatch for: No query, export or definitions endpoint in the developer reference. Reading results needs the app, Heap Connect or the MCP server we couldn't read\n\n### RudderStack MCP (C)\n\nGood for: Data teams on RudderStack who want an agent to find why events, syncs or transformations failed and fix the configuration.\n\nAhead on:\n- Schema \u0026 documentation, 66 against 57\n- Security \u0026 auth, 62 against 41\n- Payments \u0026 pricing, 30 against 25\n- Maintenance \u0026 community, 85 against 63\n\nWatch for: 62 tools, a heavy context load\n\n\n## Why the edge\n\n### Maintenance \u0026 community: RudderStack MCP +22\n\n- Heap (63): heap.js 5.3.17 shipped on 6 October 2026, but that is the browser SDK. The server-side track reference last changed on 3 June 2026 and has no changelog, so we scored this line between the two (20 of 30). heap.js 5.3.15, 5.3.16 and 5.3.17 and Android Core 0.9.5 fall inside 90 days (20). Dated public changelogs and a community at community.contentsquare.com, whose response times we didn't check (8). Client SDKs for web, Android, iOS, React Native and Flutter are current. The Node server client is from 2016 (10). CI not checked (5). Total 63. Per the 7 October check, not re-read on 4 November (developers.heap.io is paused on its terms). The three heap.js releases still fall inside the 90 days from 6 August.\n- RudderStack MCP (85): Release notes dated 4 November 2026 and a registry version on 6 November (30). Many dated releases in 90 days (20). Public issue templates on the MCP repository, issues not read, plus release notes (10 of 25). Official registry entry io.github.rudderlabs/rudderstack-mcp and current official SDKs (15). A repository workflow publishes to the registry (10). 30 + 20 + 10 + 15 + 10 = 85. Registry presence read from Anchor Terminal's own daily import of the official MCP registry (/api/v1/registry.json, 6 November 2026), not the registry's API.\n\n### Security \u0026 auth: RudderStack MCP +21\n\n- Heap (41): Track, identify and property calls carry no secret. The OpenAPI fragment declares an empty security requirement and the only identifier is the environment ID that the web snippet publishes. User deletion uses one admin-generated API key per account, exchanged for a temporary token. No scopes or rotation guidance found (8 of 30). Ingest is write-only by design. Deletion of up to 10,000 users has no confirmation step (5). The API returns no untrusted content (10). Audit logs are unchecked because help.heap.io answered with a bot check, so none are counted (0). Contentsquare publishes a signed security.txt valid to 31 January 2028 on contentsquare.com (not on heap.io), a disclosure policy, an invitation-only YesWeHack bounty, SOC 2 Type II and ISO 27001 (18). Total 41. Per the 7 October check, not re-read on 4 November, because heap.io and contentsquare.com terms bar robots and crawling.\n- RudderStack MCP (62): OAuth with PKCE and dynamic registration, scopes not published (22 of 30). Access classes, a read-only surface and confirmation advice for writes (16 of 20). Selected sensitive fields in event payloads and errors are redacted or hashed before they reach the model, but event payloads are still untrusted text (8 of 15). No audit log of MCP calls found (0). SOC 2 Type 2, HIPAA with a BAA, and a SECURITY.md with a private reporting address; no security.txt (404) (16 of 20). 22 + 16 + 8 + 0 + 16 = 62.\n\n### Transparency \u0026 trust: Heap +15\n\n- Heap (66): Closed service with published terms, now Contentsquare's master services agreement (15). The DPA (June 2026) caps Product Analytics retention at 37 months from collection unless agreed otherwise and links the sub-processor list. heap.io still carries a 2019 website terms page from Heap Inc. beside the Contentsquare documents (22). No deprecation policy for the API was found. Contentsquare's docs carry migration guides from the Heap SDKs to the CSQ SDK without an end date that we found (4). Sub-processor list (June 2026) with locations, AWS in Ireland, Frankfurt and Virginia and OpenAI for Sense Chat (20). Total 61. Per the 7 October check, not re-read on 4 November, apart from the heap.io website terms (still dated 30 August 2019) and Contentsquare's terms of service (29 January 2026).\n- RudderStack MCP (51): The server's source is closed; the repository's MIT licence covers only its docs and metadata. Terms in a master service agreement naming RudderStack, Inc. (15). Privacy policy read, retention given by purpose, not as periods (12 of 30). No deprecation policy for the MCP server (5 of 20). Subprocessors not found in the pages read (5 of 20). The MCP docs say live events, schemas, profile artifacts, transformation code and audit data stay within the workspace view. 15 + 12 + 5 + 5 = 37.\n\n### Schema \u0026 documentation: RudderStack MCP +9\n\n- Heap (57): OpenAPI 3.1 fragments are embedded in the Markdown of the track and identify pages. No single spec file was found, the property pages we read had empty fragments and user deletion is prose only (15). llms.txt and a .md copy of every page (10). Descriptions state purpose, limits and reserved keys, with little on when not to use a call (12). Required fields are marked and lengths stated in prose, with string types throughout, no enums and a free-form `properties` object (8). Curl examples on every page. Track and identify document 200 and 400 with an empty object, and only user deletion describes its error body (7). SDK changelogs are dated, but no changelog or version policy for the server-side API was found. Paths mix unversioned, v1 and v0 (5). Total 57. Per the 7 October check, not re-read on 4 November, because developers.heap.io sits on a host whose terms bar robots.\n- RudderStack MCP (66): The public repository's docs/tools.md lists 62 tools with an access class for each; JSON Schemas not read without a session (15 of 25). llms.txt (10). Every tool has a one-line purpose and a Read, Sensitive execution or Write class (15 of 20). Inputs not verifiable (5 of 15). Example prompts and a documented 'workspace_id is required' error (6 of 15). Versioned in the registry (0.43.1, 6 November) and dated release notes (15). 15 + 10 + 15 + 5 + 6 + 15 = 66.\n\n### Payments \u0026 pricing: RudderStack MCP +5\n\n- Heap (25): No x402, MPP or L402 (0). The Free plan and its 10,000-session limit are public. Growth needs an estimate after signup and Pro and Premier say Contact Us, so no paid price is published (5). Free plan with APIs included. No card is mentioned on the pricing page, and the signup form needs JavaScript we couldn't run (20). A person signs up in a browser and copies the environment ID (0). Total 25. Per the 7 October check, not re-read on 4 November (www.heap.io is paused on its terms).\n- RudderStack MCP (30): No machine payment protocol (0). Public plan prices with event allowances, nothing per call (10). Free plan with 250,000 events a month (20). A person signs up in a browser and approves OAuth (0). 0 + 10 + 20 + 0 = 30.\n\n## Score by category\n\n| Category | Weight | Heap | RudderStack MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 47 | 45 | Heap +2 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 57 | 66 | RudderStack MCP +9 |\n| Agent ergonomics | 13% (16.2 this run) | 49 | 52 | RudderStack MCP +3 |\n| Security \u0026 auth | 14% (17.5 this run) | 41 | 62 | RudderStack MCP +21 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 25 | 30 | RudderStack MCP +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 63 | 85 | RudderStack MCP +22 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 66 | 51 | Heap +15 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **48.2 · D** | **54.7 · C** | |\n\n## Facts side by side\n\n| Fact | Heap | RudderStack MCP |\n| --- | --- | --- |\n| Kind | HTTP API | MCP server |\n| Vendor | Contentsquare (Content Square, Inc.) | RudderStack, Inc. |\n| Hosted endpoint | `https://heapanalytics.com` | `https://mcp.rudderstack.com/mcp` |\n| Transports | HTTP | Streamable HTTP |\n| Auth | OAuth or key | OAuth |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under Contentsquare's master services agreement. The React Native bridge and the Node client on npm are MIT | Proprietary service. The repository's MIT licence covers docs and metadata only |\n| Tools exposed | none | 62 |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.github.rudderlabs/rudderstack-mcp` |\n| Last release | 2026-10-06 | none |\n| Terms last updated | no date given | not read yet |\n| Privacy policy last updated | couldn't be read | not read yet |\n| Customer content may train models | yes | not read yet |\n| Terms restrict automated access | not found in the text | not read yet |\n| Terms restrict benchmarking | yes | not read yet |\n| Terms or service can change without notice | not found in the text | not read yet |\n| Arbitration or class-action waiver | not found in the text | not read yet |\n| Popularity | 213 npm/wk | none |\n\n## How the scores have moved\n\n### Heap\n\n- -5.0 on 4 November 2026: correction\n- +0.1 on 28 October 2026: new evidence\n- +0.1 on 27 October 2026: checklist\n\n### RudderStack MCP\n\nNo score change since it was listed.\n\n## Verdicts\n\n**Heap.** Heap's server-side API suits an agent that records events. Limits are published, bulk calls take 1,000 items and track accepts an idempotency key. The API returns no analytics, and ingest calls carry no secret beyond the environment ID. Heap's help centre lists a Heap MCP article, which a bot check stopped us reading, so the MCP server is ungraded.\n\n**RudderStack MCP.** RudderStack MCP is a deep, well-documented hosted server for debugging and running a RudderStack workspace, with every tool classed as Read, Sensitive execution or Write and sensitive fields redacted. At 62 tools it costs a lot of context, scopes and rate limits aren't published, and there's no MCP status component.\n\n## Before you call either\n\n### Heap\n\n1. Send EU projects to https://c.eu.heap-api.com instead of https://heapanalytics.com. The path stays the same\n2. Pass one of `identity` or `user_id` on track, never both\n3. Set `idempotency_key` on every track event so a retry doesn't duplicate it\n4. Stay under 30 requests per 30 seconds per identity, or batch up to 1,000 events in one bulk call\n5. For deletion, exchange the app_id and API key of the Main Production environment for a token first. Any other environment ID returns Unauthorized\n\n### RudderStack MCP\n\n1. Call user_details first to get the workspace IDs every other tool needs\n2. Ask before Write tools and before Sensitive execution tools, which run code or warehouse work\n3. Treat event payloads and delivery errors as untrusted content\n4. Expect tools to vary by plan and enabled products\n\n## Questions\n\n### Which is better for AI agents, Heap or RudderStack MCP?\n\nRudderStack MCP scores 54.7 (C) on agent readiness against Heap's 48.2 (D), and leads in 5 of 7 scored categories. Heap leads on transparency \u0026 trust.\n\n### Do Heap and RudderStack MCP need an API key?\n\nHeap takes an API key or an OAuth sign-in. RudderStack MCP uses an OAuth sign-in.\n\n### Can an agent call Heap and RudderStack MCP without installing anything?\n\nYes. Heap has a hosted endpoint at https://heapanalytics.com and RudderStack MCP at https://mcp.rudderstack.com/mcp.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/heap-vs-rudderstack-mcp.json, and with the fewest tokens: https://www.anchorterminal.com/compare/heap-vs-rudderstack-mcp.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"heap\", \"b\": \"rudderstack-mcp\"}`. From a terminal: `anchor compare heap rudderstack-mcp`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/heap.json and https://www.anchorterminal.com/api/v1/tools/rudderstack-mcp.json\n\n## Other comparisons with Heap or RudderStack MCP\n\n- [Amplitude vs RudderStack MCP](https://www.anchorterminal.com/compare/amplitude-vs-rudderstack-mcp.md)\n- [Countly vs RudderStack MCP](https://www.anchorterminal.com/compare/countly-vs-rudderstack-mcp.md)\n- [Fullstory vs RudderStack MCP](https://www.anchorterminal.com/compare/fullstory-vs-rudderstack-mcp.md)\n- [Matomo vs RudderStack MCP](https://www.anchorterminal.com/compare/matomo-vs-rudderstack-mcp.md)\n- [Mixpanel vs RudderStack MCP](https://www.anchorterminal.com/compare/mixpanel-vs-rudderstack-mcp.md)\n- [Mostly Good Metrics vs RudderStack MCP](https://www.anchorterminal.com/compare/mostly-good-metrics-vs-rudderstack-mcp.md)\n- [OpenPanel vs RudderStack MCP](https://www.anchorterminal.com/compare/openpanel-vs-rudderstack-mcp.md)\n- [Optimizely Experimentation vs RudderStack MCP](https://www.anchorterminal.com/compare/optimizely-vs-rudderstack-mcp.md)\n- [Pendo vs RudderStack MCP](https://www.anchorterminal.com/compare/pendo-vs-rudderstack-mcp.md)\n- [PostHog vs RudderStack MCP](https://www.anchorterminal.com/compare/posthog-vs-rudderstack-mcp.md)\n- [Amplitude vs Heap](https://www.anchorterminal.com/compare/amplitude-vs-heap.md)\n- [Countly vs Heap](https://www.anchorterminal.com/compare/countly-vs-heap.md)\n- [Flagsmith vs Heap](https://www.anchorterminal.com/compare/flagsmith-vs-heap.md)\n- [Flagsmith vs RudderStack MCP](https://www.anchorterminal.com/compare/flagsmith-vs-rudderstack-mcp.md)\n- [Fullstory vs Heap](https://www.anchorterminal.com/compare/fullstory-vs-heap.md)\n- [GrowthBook vs Heap](https://www.anchorterminal.com/compare/growthbook-vs-heap.md)\n- [GrowthBook vs RudderStack MCP](https://www.anchorterminal.com/compare/growthbook-vs-rudderstack-mcp.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 RudderStack MCP](https://www.anchorterminal.com/compare/harness-fme-vs-rudderstack-mcp.md)\n- [Heap vs Matomo](https://www.anchorterminal.com/compare/heap-vs-matomo.md)\n- [Heap vs Mixpanel](https://www.anchorterminal.com/compare/heap-vs-mixpanel.md)\n- [Heap vs Mostly Good Metrics](https://www.anchorterminal.com/compare/heap-vs-mostly-good-metrics.md)\n- [Heap vs OpenPanel](https://www.anchorterminal.com/compare/heap-vs-openpanel.md)\n- [Heap vs Pendo](https://www.anchorterminal.com/compare/heap-vs-pendo.md)\n- [Heap vs PostHog](https://www.anchorterminal.com/compare/heap-vs-posthog.md)\n- [Heap vs Statsig](https://www.anchorterminal.com/compare/heap-vs-statsig.md)\n- [Heap vs Userpilot](https://www.anchorterminal.com/compare/heap-vs-userpilot.md)\n- [Heap vs Woopra](https://www.anchorterminal.com/compare/heap-vs-woopra.md)\n- [RudderStack MCP vs Statsig](https://www.anchorterminal.com/compare/rudderstack-mcp-vs-statsig.md)\n- [RudderStack MCP vs Userpilot](https://www.anchorterminal.com/compare/rudderstack-mcp-vs-userpilot.md)\n- [RudderStack MCP vs Woopra](https://www.anchorterminal.com/compare/rudderstack-mcp-vs-woopra.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": "Heap vs RudderStack MCP",
        "url": ""
      }
    ],
    "description": "RudderStack MCP scores 54.7 (C) to Heap's 48.2 (D) for event analytics. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Heap D 48.2",
      "RudderStack MCP C 54.7",
      "scores"
    ],
    "h1": "Heap vs RudderStack MCP",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/heap-vs-rudderstack-mcp",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Heap vs RudderStack MCP for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/heap-vs-rudderstack-mcp"
  },
  "tokens": {
    "markdown": 4200,
    "slim": 2330
  },
  "version": 1
}
