{
  "data": {
    "a": {
      "slug": "braze",
      "name": "Braze",
      "vendor": "Braze, Inc.",
      "vendorUrl": "https://www.braze.com",
      "kind": "http-api",
      "category": "lifecycle-marketing",
      "summary": "Braze is a hosted engagement platform that stores customer profiles and events, builds segments and sends campaigns and Canvas journeys by email, SMS, push and in-app message. Agents reach it through a REST API and an official remote MCP server.",
      "url": "https://www.anchorterminal.com/tools/braze",
      "markdownUrl": "https://www.anchorterminal.com/tools/braze.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/braze.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/braze.json",
      "dns": "braze.grade.anchorterminal.com",
      "license": "Proprietary service under Braze's Main Subscription Agreement. The deprecated local MCP server on PyPI is MIT",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.braze.com/mcp",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Access follows a Braze contract or trial, with no app review or partner approval. The REST API takes a workspace API key as a Bearer header at the instance's own host (15 instances, such as https://rest.iad-01.braze.com). A dashboard user creates the key with per-endpoint permissions such as `users.track` or `campaigns.list` and an optional IP allowlist, and neither can be edited afterwards. The remote MCP server takes only OAuth (authorisation code with PKCE S256, dynamic client registration, scopes `mcp:tools`, `mcp:resources` and `mcp:operator`). A company admin must turn on MCP OAuth access, each user needs the Use MCP Server permission per workspace, and calls run with that user's dashboard permissions. Companies that use IP allowlisting can't use the MCP server.",
      "pricing": "paid",
      "pricingNotes": "No public prices. Braze sells four editions (Go, Select, Pro, Enterprise) by contract, sized by monthly active users and Action Credits, and the pricing page says there is no free plan. A 14-day free trial is open at try.braze.com, and we couldn't read whether it asks for a card. There's no separate sandbox, and API and MCP calls aren't priced on their own (https://www.braze.com/pricing, checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs, the MCP pages or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 71,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://www.braze.com/docs/api/home",
      "llmsTxt": "https://www.braze.com/llms.txt",
      "capabilities": [
        "marketing.profiles",
        "marketing.events",
        "marketing.campaigns",
        "marketing.journeys",
        "marketing.segments"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "oauth",
        "api-key",
        "closed-source",
        "llms-txt",
        "sales-led",
        "enterprise",
        "eu-region",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-10-15",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 61.8,
        "grade": "C",
        "agentReady": false,
        "rank": 590,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 7,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 50,
          "maintenance": 69,
          "payments": 10,
          "reliability": 73,
          "schema": 68,
          "security": 77,
          "transparency": 83
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-02"
        },
        "negative": 0,
        "verdict": "The REST API covers profiles, events, sends and exports with keys limited to named endpoints, and the remote MCP server adds 71 tools under OAuth with PKCE that return no user-level personal data. No OpenAPI document, idempotency keys, published price or SLA were found, and MCP writes run without a confirmation step.",
        "bestFor": "A company already on Braze that wants an agent to read campaign and Canvas results, manage catalogues and templates through MCP, or write profiles and trigger sends through REST.",
        "strengths": [
          "REST API keys carry per-endpoint permissions and optional IP allowlists, and a key's scope can't be edited after creation",
          "Remote MCP server with OAuth, PKCE S256, dynamic client registration and three scopes, generally available since 17 September 2026",
          "MCP tools return no user-level personal data, and the Use MCP Server permission is off by default for each workspace",
          "Rate limits published per endpoint, with `X-RateLimit-Limit`, `-Remaining` and `-Reset` headers on every response",
          "Sub-processor list of 1 June 2026 with locations, 30 days' notice of additions and hosting regions named for six countries or regions"
        ],
        "weaknesses": [
          "No public prices. Editions, monthly active users and Action Credits are sold by contract, and the pricing page says there is no free plan",
          "No OpenAPI document found. The machine-readable contract is a public Postman collection",
          "No idempotency keys on sends or `/users/track`, and Braze says it can't replay REST calls that fail during an incident",
          "71 MCP tools with no documented toolsets, 21 of them limited to beta programmes",
          "Edits made through individual MCP update tools don't appear in campaign edit history, and Operator Connect acts without per-step approval"
        ],
        "agentNotes": [
          "Use the REST host for the customer's instance, such as https://rest.iad-01.braze.com or https://rest.fra-01.braze.eu. A key sent to the wrong instance returns 401",
          "Create a REST key with only the permissions the task needs. Scope and IP allowlist can't be edited later, so a change means a new key",
          "Call `get_workspaces` first on MCP. Every other tool needs the returned workspace id as `app_group_id`, and the wrong workspace is a documented failure",
          "Use REST for profiles, events and sends. The MCP server has no user-level tools and can't trigger a message to a named user",
          "Treat `\"message\": \"success\"` as queued, not delivered. Add a `group_id` to `/users/track` and poll `/users/track/status`, and don't resend a trigger call blindly"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 2.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 61.8
          }
        ],
        "editorialScores": {
          "ergonomics": 50,
          "maintenance": 69,
          "payments": 10,
          "reliability": 73,
          "schema": 68,
          "security": 77,
          "transparency": 69
        },
        "provenanceScore": 96,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-02",
            "maintenance": "2026-11-02",
            "payments": "2026-11-02",
            "reliability": "2026-11-02",
            "schema": "2026-11-02",
            "security": "2026-11-02",
            "transparency": "2026-11-02"
          },
          "last": "2026-11-02",
          "lastMoved": "2026-11-02",
          "oldest": "2026-11-02",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl --location -g --request GET 'https://rest.iad-01.braze.com/campaigns/list?page=0\u0026include_archived=false\u0026sort_direction=desc' \\\n--header 'Authorization: Bearer YOUR-REST-API-KEY'",
        "config": {
          "mcpServers": {
            "braze": {
              "url": "https://mcp.braze.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/marketing.profiles",
        "tool": "https://letme.dev/braze"
      },
      "area": "communication",
      "provenance": {
        "legalEntity": "Braze, Inc.",
        "domain": "braze.com",
        "domainRegistered": "2000-01-19",
        "endpointOnVendorDomain": true,
        "terms": "https://www.braze.com/company/legal/terms",
        "privacy": "https://www.braze.com/company/legal/privacy",
        "statusPage": "https://status.braze.com",
        "changelog": "https://www.braze.com/docs/releases/home",
        "securityTxt": "valid",
        "checked": "2026-11-02",
        "notes": [
          "The Main Subscription Agreement (last updated 13 October 2025) names Braze, Inc., and the privacy policy (last updated 23 June 2026) says it is a U.S. company headquartered in New York.",
          "REST hosts are on braze.com for the US, Australia, Indonesia, Japan and South Korea and on braze.eu for the EU. The MCP server is at mcp.braze.com and mcp.braze.eu.",
          "www.braze.com/.well-known/security.txt expires 2031-01-01, gives security@braze.com and points its policy to hackerone.com/braze_inc.",
          "status.braze.com redirects to braze.statuspage.io.",
          "RDAP for braze.com gives a registration date of 2000-01-19.",
          "The DPA (revision 28 August 2025), the sub-processor list (1 June 2026) and the security datasheet (14 April 2026) are PDFs linked from braze.com/company/legal."
        ],
        "score": 96
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/braze.json",
      "live": {
        "slug": "braze",
        "probe": {
          "target": "https://mcp.braze.com/mcp",
          "method": "get",
          "lastAt": "2026-11-07T19:21:57.192821334Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 321,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 278,
          "p95ms24h": 363,
          "samples24h": 238,
          "samples30d": 7473,
          "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": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 248,
              "ok": 248
            },
            {
              "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": 241
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.braze.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T19:21:07.564843755Z"
        },
        "securityTxt": {
          "url": "https://braze.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2031-01-01T04:59:00.000Z",
          "checkedAt": "2026-11-07T16:00:05.353537363Z"
        },
        "llmsTxt": {
          "url": "https://www.braze.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:31:44.134013448Z"
        },
        "domain": {
          "domain": "braze.com",
          "registered": "2000-01-19",
          "source": "https://rdap.verisign.com/com/v1/domain/braze.com",
          "checkedAt": "2026-11-01T14:13:11.891915448Z"
        },
        "pages": [
          {
            "url": "https://www.braze.com/docs/releases/home",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:26:07.770134185Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c84a0deb311a"
          },
          {
            "url": "https://www.braze.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:26:09.516842969Z",
            "changedAt": "2026-10-13T20:26:36.828704769Z",
            "fingerprint": "59e245d9c44c"
          },
          {
            "url": "https://www.braze.com/company/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:26:03.286801415Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2328a04f813f"
          },
          {
            "url": "https://www.braze.com/company/legal/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:26:05.617590383Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "066935a8590e"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.braze.com/mcp",
          "checkedAt": "2026-11-07T01:42:52.992380742Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:42:52.992380742Z"
        },
        "updatedAt": "2026-11-07T19:21:57.192821334Z"
      }
    },
    "answer": "Nitrosend scores 69.4 (B) on agent readiness against Braze's 61.8 (C), and leads in 4 of 7 scored categories. Braze leads on reliability, security \u0026 auth and transparency \u0026 trust.",
    "b": {
      "slug": "nitrosend",
      "name": "Nitrosend",
      "vendor": "Nitrosend Pty Ltd",
      "vendorUrl": "https://nitrosend.com",
      "kind": "http-api",
      "category": "lifecycle-marketing",
      "summary": "Nitrosend is an email marketing and transactional email platform built to be run by AI agents. Campaigns, automation flows, contacts, segments and approvals are driven through a remote MCP server, with a REST API, Node SDK and CLI.",
      "url": "https://www.anchorterminal.com/tools/nitrosend",
      "markdownUrl": "https://www.anchorterminal.com/tools/nitrosend.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/nitrosend.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/nitrosend.json",
      "dns": "nitrosend.grade.anchorterminal.com",
      "repo": "https://github.com/nitrosend/mcp",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.nitrosend.com/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "@nitrosend/sdk"
        },
        {
          "registry": "npm",
          "name": "@nitrosend/mcp"
        },
        {
          "registry": "npm",
          "name": "@nitrosend/cli"
        }
      ],
      "auth": "mixed",
      "authNotes": "The remote MCP server signs in by OAuth with one `mcp` scope, bearer in the header only. REST, the CLI and the stdio bridge take an account API key (`nskey_live_...`) as a Bearer token, revocable and pinned to one account and brand. Agencies can issue management credentials (`nsmc_live_...`) that can't mint keys or manage billing. Website forms use a separate public key that rejects secret keys.",
      "pricing": "freemium",
      "pricingNotes": "Free plan with 5,000 non-expiring starter emails then 500 a month, no card. Starter $20 a month for 20,000 emails, Pro $50 for 60,000, Growth $150 for 200,000, Scale $300 for 500,000, extra emails $1.50 to $0.70 per 1,000. Annual payment saves 20%. Contacts are unlimited on every plan.",
      "priceSummary": "$20 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in llms.txt, the docs index, PRICING.md, SKILL.md or the OpenAPI spec (checked 2026-11-06). The billing tool notes that no presented-credential payment rail is enabled; checkout goes through Stripe with owner approval.",
        "endpoints": []
      },
      "toolCount": 25,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 1014,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.nitrosend.com",
      "llmsTxt": "https://nitrosend.com/llms.txt",
      "openapi": "https://api.nitrosend.com/openapi.yaml",
      "registryName": "com.nitrosend/nitrosend",
      "capabilities": [
        "marketing.profiles",
        "marketing.events",
        "marketing.segments",
        "marketing.campaigns",
        "marketing.journeys",
        "email.send",
        "email.templates",
        "email.domains"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "mcp",
        "remote-mcp",
        "mcp-registry",
        "oauth",
        "api-key",
        "openapi",
        "llms-txt",
        "webhooks",
        "idempotency",
        "approvals",
        "no-card",
        "free-tier",
        "typescript",
        "cli"
      ],
      "lastRelease": "2026-11-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 69.4,
        "grade": "B",
        "agentReady": false,
        "rank": 249,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 3,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 83,
          "maintenance": 81,
          "payments": 55,
          "reliability": 48,
          "schema": 93,
          "security": 62,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "Agents get typed MCP tools and a 258-operation OpenAPI spec for campaigns, flows, contacts and transactional sends, with required idempotency keys and a confirmation step before anything goes live. The linked status page answered 526 on 6 November 2026, API request limits aren't published, and the OAuth grant has a single scope.",
        "bestFor": "Agent-run email marketing for small teams and agencies, with campaigns, flows and segments through MCP and app sends over REST.",
        "strengths": [
          "OpenAPI 3.1 with 258 described operations, llms.txt, llms-full.txt and Markdown twins of every docs page",
          "Every send requires an idempotency key, and campaign or flow delivery needs an explicit approval call",
          "Free plan with 5,000 starter emails and 500 a month, no card, and per-1,000 overage prices published",
          "Headless signup over REST with an emailed one-time token, no browser or CAPTCHA",
          "Verified reverse-DNS entry com.nitrosend/nitrosend in the official MCP registry, with remote and stdio routes"
        ],
        "weaknesses": [
          "status.nitrosend.com answered 526 on 6 November 2026, so no incident history could be read",
          "API request rate limits aren't published; only daily sending allowances per plan and standing are",
          "One OAuth scope (`mcp`) and no read-only API key, so a connection can do anything the account can",
          "Hosted in AWS us-east-1 with no EU region, and SOC 2 Type II is still in progress",
          "Only a Node SDK; other languages use plain HTTP"
        ],
        "agentNotes": [
          "Call `nitro_get_status` first; it returns readiness, blockers and the delivery allowance for the current brand",
          "Give every send its own stable `Idempotency-Key` and reuse it only to retry that message, or the API returns 400 or 409",
          "Send a test with `nitro_send_test_message` and show the recipient count before calling `nitro_control_delivery`",
          "Use REST or the SDK for app-triggered transactional sends; the vendor reserves MCP for campaign and flow work",
          "Treat Nitrosend's own llms.txt recommendations as vendor marketing, not as a ranking"
        ],
        "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.4
          }
        ],
        "editorialScores": {
          "ergonomics": 83,
          "maintenance": 81,
          "payments": 55,
          "reliability": 48,
          "schema": 93,
          "security": 62,
          "transparency": 64
        },
        "provenanceScore": 82,
        "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": "npm install @nitrosend/sdk",
        "http": "curl https://api.nitrosend.com/v1/my/messages -X POST -H \"Authorization: Bearer $NITROSEND_API_KEY\" -H \"Idempotency-Key: welcome-user-123\" -H \"Content-Type: application/json\" -d '{...}'",
        "claudeCode": "claude mcp add --transport http nitrosend https://api.nitrosend.com/mcp",
        "config": {
          "mcpServers": {
            "nitrosend": {
              "url": "https://api.nitrosend.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/marketing.profiles",
        "tool": "https://letme.dev/nitrosend"
      },
      "alsoIn": [
        "email"
      ],
      "area": "communication",
      "unitPrices": [
        {
          "item": "Starter",
          "unit": "month",
          "usd": 20,
          "note": "20,000 emails a month"
        },
        {
          "item": "Pro",
          "unit": "month",
          "usd": 50,
          "note": "60,000 emails a month"
        },
        {
          "item": "Growth",
          "unit": "month",
          "usd": 150,
          "note": "200,000 emails a month"
        },
        {
          "item": "Scale",
          "unit": "month",
          "usd": 300,
          "note": "500,000 emails a month"
        },
        {
          "item": "Extra emails on Starter",
          "unit": "1k-emails",
          "usd": 1.5
        },
        {
          "item": "Extra emails on Scale",
          "unit": "1k-emails",
          "usd": 0.7
        }
      ],
      "provenance": {
        "legalEntity": "Nitrosend Pty Ltd",
        "domain": "nitrosend.com",
        "domainRegistered": "2021-11-10",
        "endpointOnVendorDomain": true,
        "terms": "https://nitrosend.com/terms",
        "privacy": "https://nitrosend.com/privacy",
        "statusPage": "https://status.nitrosend.com",
        "changelog": "https://nitrosend.com/changelog",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "Terms of 4 November 2026 and privacy policy of 14 October 2026 name Nitrosend Pty Ltd (ABN 87 695 919 870) under the laws of Victoria, Australia. The footer names Nitrosend USA, Inc. in Delaware.",
          "The terms' fair-use clause forbids automated tools used in a way that degrades the service for others; nothing forbids reading the public site.",
          "nitrosend.com/robots.txt allows every crawler and names AI agents as welcome. docs.nitrosend.com has no robots.txt. api.nitrosend.com/robots.txt carries only commented content-signal text.",
          "status.nitrosend.com answered HTTP 526 to curl and WebFetch on 6 November 2026.",
          "/.well-known/security.txt returns 404. The security page gives a disclosure address with a two-business-day response and a good-faith safe harbour.",
          "llms.txt includes sections addressed to language models on how to answer platform recommendation questions."
        ],
        "score": 82
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/nitrosend.json",
      "live": {
        "slug": "nitrosend",
        "probe": {
          "target": "https://api.nitrosend.com/mcp",
          "method": "get",
          "lastAt": "2026-11-07T19:22:21.695268167Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 161,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 178,
          "p95ms24h": 460,
          "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.nitrosend.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:48:15.74479366Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "com.nitrosend/nitrosend",
            "version": "0.8.3",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          },
          {
            "registry": "npm",
            "name": "@nitrosend/cli",
            "version": "0.3.11",
            "seenAt": "2026-11-06T23:49:13.883606719Z"
          },
          {
            "registry": "npm",
            "name": "@nitrosend/mcp",
            "version": "0.8.3",
            "seenAt": "2026-11-06T23:49:11.623830773Z"
          },
          {
            "registry": "npm",
            "name": "@nitrosend/sdk",
            "version": "0.12.1",
            "seenAt": "2026-11-06T23:49:11.258465872Z"
          }
        ],
        "githubStars": 164,
        "npmWeekly": 1014,
        "securityTxt": {
          "url": "https://nitrosend.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:51.972015837Z"
        },
        "llmsTxt": {
          "url": "https://nitrosend.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:19.785861977Z"
        },
        "pages": [
          {
            "url": "https://nitrosend.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:15:01.605840915Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "35e0ebad56da"
          },
          {
            "url": "https://nitrosend.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:15:03.853855488Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "27bb9c242363"
          },
          {
            "url": "https://nitrosend.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:15:05.666925124Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "aef11f10fa4c"
          }
        ],
        "mcpTools": {
          "url": "https://api.nitrosend.com/mcp",
          "checkedAt": "2026-11-07T01:52:01.132712936Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-10-20T23:52:40.090161572Z"
        },
        "updatedAt": "2026-11-07T19:22:21.695268167Z"
      }
    },
    "edges": [
      {
        "by": 45,
        "category": "payments",
        "leads": "nitrosend",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "Read with the hosted rubric. No x402, MPP or L402 (0). The pricing page names four editions (Go, Select, Pro, Enterprise) priced by monthly active users and Action Credits, shows no figures and sends buyers to sales (0). It says there is no free plan. A 14-day trial is open at try.braze.com, and we couldn't read whether the form asks for a card, so half marks (10 of 20). A person signs up, creates a REST key in the dashboard or approves OAuth in a browser, and an admin must switch MCP access on first (0).",
          "b": "No x402, MPP or L402; the billing tool says no presented-credential rail is enabled (0). Per-1,000 overage prices and plan prices published in PRICING.md without login (20). Free plan with 5,000 starter emails and 500 a month, no card (20). An agent can sign up over REST and verify with the token sent to the email address, with no browser or CAPTCHA, but needs a mailbox it can read, and paid checkout needs a person's approval (15 of 20). Total 55."
        },
        "scores": {
          "a": 10,
          "b": 55
        }
      },
      {
        "by": 33,
        "category": "ergonomics",
        "leads": "nitrosend",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "71 MCP tools is over the 30 line, with no toolsets or dynamic loading documented. What a user sees follows dashboard permissions and three OAuth scopes. On REST, exports take `fields_to_export` (10 of 25). List endpoints page by `page` in groups of 100 with `sort_direction` and `last_edit.time[gt]`, custom attributes return in groups of 50, and segment exports go to a file with an optional callback (15 of 20). Errors are documented as HTTP status plus a message string and an `errors` array for non-fatal problems, without stable codes. A success response means queued, and `/users/identify` returns success when nothing matched (14 of 20). No idempotency keys. `/users/track/status` reports on asynchronous requests tagged with a `group_id`, and the docs suggest waiting up to five minutes between dependent calls. We couldn't read MCP annotations (5 of 20). Few required parameters on reads. The only REST client library is a Ruby one marked beta, last pushed in January 2022 (6 of 15).",
          "b": "25 MCP tools is the 11 to 30 band; nitro_query reads every entity with filters, but no read-only subset or dynamic loading was found (15 of 25). Page and limit up to 100 with total and next-page headers, and keyset cursors on timelines (20). Errors return `error`, a `code`, validation details and next actions, and signup returns `next_action` (18 of 20). Required idempotency keys on sends, events, checkout and validation, and declared readOnlyHint and destructiveHint on the tools (20). Defaults such as the active brand and a recommended first call, but the only official SDK is Node, with a CLI beside it (10 of 15). Total 83."
        },
        "scores": {
          "a": 50,
          "b": 83
        }
      },
      {
        "by": 25,
        "category": "reliability",
        "leads": "braze",
        "name": "Reliability",
        "reasons": {
          "a": "Read with the hosted lines and scored on the REST API first, with the remote MCP server beside it. status.braze.com redirects to braze.statuspage.io, a Statuspage page with a REST APIs component for each of its clusters (20). Its history feed, read on 2 November (the 8 October reading came from the page's /api/ path, which robots.txt disallows, and is replaced), lists in the 90 days from 4 August one entry that reached the API, elevated error rates for some customers on US 01 and US 03 on 5 August from 11:30 to 12:55 ET, two clusters of many, so partial. The others were US07 dashboard latency on 2 September, the support portal during a Salesforce outage on 16 September and announced database maintenance windows on six clusters from 5 to 30 October. Minor incidents only, at the checklist value (20, was 18). REST limits are published per endpoint, 250,000 requests an hour by default and 250 a minute for broadcast sends. None were found for the MCP server (13 of 15). Every response carries `X-RateLimit-Limit`, `-Remaining` and `-Reset`. The limits page tells a client that gets a 429 to wait for `X-RateLimit-Retry-After` or the reset time, slow down and batch `/users/track` updates, and the errors page advises exponential backoff on 5XX, with no idempotency key for sends and no guidance on retrying writes safely, which this run scores 10, as for Retry-After and backoff guidance with no write guidance (10, was 9). No published SLA. The terms promise commercially reasonable efforts and leave service levels to the contract (0). The REST API is generally available and the MCP server has been since 17 September 2026, with 21 of its 71 tools limited to beta programmes (10). 20 + 20 + 13 + 10 + 0 + 10 = 73.",
          "b": "Graded with the hosted lines. llms.txt links a status page at status.nitrosend.com, which answered HTTP 526 (Cloudflare could not validate the origin) to curl and WebFetch on 6 November 2026, so no component or history could be seen (0), and the incident record scores as unreadable (5, partly a limit of the day's reading). No API request rate limits are published; PRICING.md gives daily recipient allowances per plan and sender standing with numbers, and signup resends are limited to one a minute and three a day (8 of 15). 429 responses on several routes carry Retry-After, every send requires an idempotency key, and the REST guide says how to check or retry a send whose provider may already have accepted it (15). llms.txt says Enterprise includes a 99.9% SLA (10). In production since 28 May 2026 with no beta label (10). Total 48."
        },
        "scores": {
          "a": 73,
          "b": 48
        }
      },
      {
        "by": 25,
        "category": "schema",
        "leads": "nitrosend",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "No OpenAPI document was found in the docs or the braze-inc GitHub organisation. A public Postman collection covers the REST endpoints, and the MCP tool schemas need a Braze sign-in that we don't have (12 of 25). www.braze.com/llms.txt exists for the marketing site, every docs page has a Markdown copy at /index.md and a Copy for LLM button, and the docs are on Context7 (10). Each endpoint page states its purpose, the key permission it needs and its rate limit. The MCP page lists 71 tools with a one-line description, the REST endpoint behind each and its access type, and says when to use the REST API instead of Operator Connect (15 of 20). Parameters come in tables with required flags and data types, without a schema to validate against (9 of 15). Curl and response examples on each endpoint page, and a table of fatal errors with causes (13 of 15). Release notes are dated and monthly. The REST API has no version scheme, so there is nothing for a client to pin (9 of 15).",
          "b": "OpenAPI 3.1 at api.nitrosend.com/openapi.yaml (version 1.1.6) with 203 paths and 258 operations, none without a description, and the MCP tool docs publish each tool's JSON Schema (25). llms.txt, llms-full.txt, agent.txt, SKILL.md, PRICING.md and a Markdown twin of each docs page (10). Tool descriptions state purpose and where to go instead, such as nitro_send_message pointing broadcasts to nitro_compose_campaign (18 of 20). Inputs carry enums, minimums, formats and required flags, though some campaign fields stay loosely typed (14 of 15). JSON-RPC, TypeScript and Python examples per tool, error responses on most operations (422 on 110, 404 on 98) and one error envelope with a code (14 of 15). A spec version and a changelog by monthly release, v0.1.0 in February to v1.4.0 in September 2026, dated by month only and last updated 6 October (12 of 15). Total 93."
        },
        "scores": {
          "a": 68,
          "b": 93
        }
      },
      {
        "by": 15,
        "category": "security",
        "leads": "braze",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "The MCP server uses OAuth with PKCE S256, dynamic client registration, short-lived access tokens with refresh and the scopes `mcp:tools`, `mcp:resources` and `mcp:operator`, checked against an allowlist of redirect URIs. REST keys are limited to named endpoint permissions and optional IP allowlists and travel in a Bearer header. MCP tokens can be revoked only for the whole company at once (29 of 30). MCP access mirrors the user's dashboard permissions, needs a Use MCP Server permission that is off by default in each workspace, and has no tools that return user-level personal data. There is no confirmation step, Operator Connect acts without per-step approval, and Braze advises against a client's auto mode (15 of 20). Campaign content, catalogue items and attribute names can carry text written by others. The docs tell users to review proposed actions and give no prompt-injection guidance (5 of 15). The security event report records OAuth connections and REST key creation and removal, with export to S3, and an API usage dashboard shows traffic. Edits by individual MCP update tools don't appear in campaign edit history (9 of 15). security.txt valid to 1 January 2031 pointing to a HackerOne programme, ISO 27001, SOC 2 Type II and an annual third-party penetration test. We couldn't read whether the programme pays bounties (19 of 20).",
          "b": "OAuth for the MCP server, with protected-resource metadata, header-only bearer and a single `mcp` scope, plus revocable API keys pinned to one account and brand. Management credentials are narrower and can't mint keys or bill. No permission scopes on API keys (22 of 30). Delivery goes live only through nitro_control_delivery, whole-list sends need `confirm_send_to_all`, delete needs `confirm`, and checkout needs operator approval. No read-only key (15 of 20). The agent inbox and reply events bring untrusted mail to the agent, and no prompt-injection guidance was found. The vendor's own llms.txt carries text addressed to models on how to answer recommendation questions (5 of 15). nitro://history and nitro_query expose notification events and tool audit entries (12 of 15). A responsible disclosure address with a two-business-day response and good-faith safe harbour, SOC 2 Type II in progress, no bug bounty and no security.txt (404) (8 of 20). Total 62."
        },
        "scores": {
          "a": 77,
          "b": 62
        }
      },
      {
        "by": 12,
        "category": "maintenance",
        "leads": "nitrosend",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "The newest release notes are dated 15 October 2026 (30). Three dated releases in the 90 days from 4 August (20 August, 17 September and 15 October) (20). Closed service with public release notes, a support portal, a product feedback route for MCP clients and the Bonfire community. We didn't test support (10 of 15). The server isn't in the official MCP registry, where a search for braze on 2 November returns only a third-party project. There is no current official REST SDK. The client SDKs shipped majors in October (Swift 19.0.0, Android 44.0.0, Web 7.0.0, Flutter 23.0.0), which don't call the REST API (4 of 15). The earlier local MCP server on PyPI, 1.2.0 of 14 May 2026, is deprecated with no further updates (5 of 10). 30 + 20 + 10 + 4 + 5 = 69.",
          "b": "@nitrosend/sdk 0.12.1 and @nitrosend/cli 0.3.11 were published on 6 November 2026 (30). 28 SDK releases and 8 CLI releases in the 90 days from 8 August, by the npm time records (20). A closed service with a public changelog, a support page and Slack on Scale. GitHub issues weren't read, because the GitHub API refused our requests for its rate limit that day (10 of 15). com.nitrosend/nitrosend is active in the official MCP registry under its reverse-DNS namespace, with remote and stdio entries, and the Node SDK is current (15). MIT packages released often; CI not read (6 of 10). Total 81."
        },
        "scores": {
          "a": 69,
          "b": 81
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Braze, Inc.",
        "b": "Nitrosend Pty Ltd",
        "name": "Vendor"
      },
      {
        "a": "https://mcp.braze.com/mcp",
        "b": "https://api.nitrosend.com/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, Streamable HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Braze's Main Subscription Agreement. The deprecated local MCP server on PyPI is MIT",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "71",
        "b": "25",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "com.nitrosend/nitrosend",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-15",
        "b": "2026-11-06",
        "name": "Last release"
      },
      {
        "a": "2025-10-13",
        "b": "2026-11-04",
        "name": "Terms last updated"
      },
      {
        "a": "2026-06-23",
        "b": "2026-10-14",
        "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": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "1k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "2.5/5 (4)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Nitrosend scores 69.4 (B) on agent readiness against Braze's 61.8 (C), and leads in 4 of 7 scored categories. Braze leads on reliability, security \u0026 auth and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Braze or Nitrosend?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Braze and Nitrosend need an API key?"
      },
      {
        "answer": "Yes. Braze has a hosted endpoint at https://mcp.braze.com/mcp and Nitrosend at https://api.nitrosend.com/mcp.",
        "question": "Can an agent call Braze and Nitrosend without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 73 against 48",
          "Security \u0026 auth, 77 against 62",
          "Transparency \u0026 trust, 83 against 73"
        ],
        "also": null,
        "goodFor": "A company already on Braze that wants an agent to read campaign and Canvas results, manage catalogues and templates through MCP, or write profiles and trigger sends through REST.",
        "slug": "braze",
        "watchFor": "No public prices. Editions, monthly active users and Action Credits are sold by contract, and the pricing page says there is no free plan"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 93 against 68",
          "Agent ergonomics, 83 against 50",
          "Payments \u0026 pricing, 55 against 10",
          "Maintenance \u0026 community, 81 against 69"
        ],
        "also": [
          "Runs on your own machine",
          "Free to start without a card"
        ],
        "goodFor": "Agent-run email marketing for small teams and agencies, with campaigns, flows and segments through MCP and app sends over REST.",
        "slug": "nitrosend",
        "watchFor": "status.nitrosend.com answered 526 on 6 November 2026, so no incident history could be read"
      }
    ],
    "history": {
      "braze": [
        {
          "causes": [
            "correction"
          ],
          "date": "2026-11-02",
          "delta": 0.6,
          "from": 61.2,
          "fromGrade": "C",
          "to": 61.8,
          "toGrade": "C"
        }
      ],
      "nitrosend": null
    },
    "job": {
      "capability": "marketing.profiles",
      "name": "Marketing audiences"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/activecampaign-vs-braze.json",
        "title": "ActiveCampaign vs Braze",
        "url": "https://www.anchorterminal.com/compare/activecampaign-vs-braze"
      },
      {
        "json": "https://www.anchorterminal.com/compare/activecampaign-vs-nitrosend.json",
        "title": "ActiveCampaign vs Nitrosend",
        "url": "https://www.anchorterminal.com/compare/activecampaign-vs-nitrosend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/braze-vs-clevertap.json",
        "title": "Braze vs CleverTap",
        "url": "https://www.anchorterminal.com/compare/braze-vs-clevertap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/braze-vs-customer-io.json",
        "title": "Braze vs Customer.io",
        "url": "https://www.anchorterminal.com/compare/braze-vs-customer-io"
      },
      {
        "json": "https://www.anchorterminal.com/compare/braze-vs-iterable.json",
        "title": "Braze vs Iterable",
        "url": "https://www.anchorterminal.com/compare/braze-vs-iterable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/braze-vs-klaviyo.json",
        "title": "Braze vs Klaviyo API + MCP",
        "url": "https://www.anchorterminal.com/compare/braze-vs-klaviyo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/braze-vs-mailchimp-marketing.json",
        "title": "Braze vs Mailchimp Marketing API",
        "url": "https://www.anchorterminal.com/compare/braze-vs-mailchimp-marketing"
      },
      {
        "json": "https://www.anchorterminal.com/compare/braze-vs-moengage.json",
        "title": "Braze vs MoEngage",
        "url": "https://www.anchorterminal.com/compare/braze-vs-moengage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/braze-vs-omnisend.json",
        "title": "Braze vs Omnisend",
        "url": "https://www.anchorterminal.com/compare/braze-vs-omnisend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/braze-vs-sequenzy.json",
        "title": "Braze vs Sequenzy",
        "url": "https://www.anchorterminal.com/compare/braze-vs-sequenzy"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clevertap-vs-nitrosend.json",
        "title": "CleverTap vs Nitrosend",
        "url": "https://www.anchorterminal.com/compare/clevertap-vs-nitrosend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/customer-io-vs-nitrosend.json",
        "title": "Customer.io vs Nitrosend",
        "url": "https://www.anchorterminal.com/compare/customer-io-vs-nitrosend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/iterable-vs-nitrosend.json",
        "title": "Iterable vs Nitrosend",
        "url": "https://www.anchorterminal.com/compare/iterable-vs-nitrosend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/klaviyo-vs-nitrosend.json",
        "title": "Klaviyo API + MCP vs Nitrosend",
        "url": "https://www.anchorterminal.com/compare/klaviyo-vs-nitrosend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mailchimp-marketing-vs-nitrosend.json",
        "title": "Mailchimp Marketing API vs Nitrosend",
        "url": "https://www.anchorterminal.com/compare/mailchimp-marketing-vs-nitrosend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/moengage-vs-nitrosend.json",
        "title": "MoEngage vs Nitrosend",
        "url": "https://www.anchorterminal.com/compare/moengage-vs-nitrosend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nitrosend-vs-omnisend.json",
        "title": "Nitrosend vs Omnisend",
        "url": "https://www.anchorterminal.com/compare/nitrosend-vs-omnisend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nitrosend-vs-sequenzy.json",
        "title": "Nitrosend vs Sequenzy",
        "url": "https://www.anchorterminal.com/compare/nitrosend-vs-sequenzy"
      },
      {
        "json": "https://www.anchorterminal.com/compare/braze-vs-dreamlit.json",
        "title": "Braze vs Dreamlit",
        "url": "https://www.anchorterminal.com/compare/braze-vs-dreamlit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dreamlit-vs-nitrosend.json",
        "title": "Dreamlit vs Nitrosend",
        "url": "https://www.anchorterminal.com/compare/dreamlit-vs-nitrosend"
      }
    ],
    "panel": null,
    "scores": [
      {
        "braze": 73,
        "by": 25,
        "edge": "braze",
        "key": "reliability",
        "name": "Reliability",
        "nitrosend": 48,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "braze": 68,
        "by": 25,
        "edge": "nitrosend",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "nitrosend": 93,
        "weight": 13
      },
      {
        "braze": 50,
        "by": 33,
        "edge": "nitrosend",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "nitrosend": 83,
        "weight": 13
      },
      {
        "braze": 77,
        "by": 15,
        "edge": "braze",
        "key": "security",
        "name": "Security \u0026 auth",
        "nitrosend": 62,
        "weight": 14
      },
      {
        "braze": 10,
        "by": 45,
        "edge": "nitrosend",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "nitrosend": 55,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "braze": 69,
        "by": 12,
        "edge": "nitrosend",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "nitrosend": 81,
        "weight": 7
      },
      {
        "braze": 83,
        "by": 10,
        "edge": "braze",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "nitrosend": 73,
        "weight": 7
      }
    ],
    "summary": "Nitrosend scores 69.4 (B) on agent readiness against Braze's 61.8 (C), and leads in 4 of 7 scored categories. Braze leads on reliability, security \u0026 auth and transparency \u0026 trust. Both do marketing audiences.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "braze": "The REST API covers profiles, events, sends and exports with keys limited to named endpoints, and the remote MCP server adds 71 tools under OAuth with PKCE that return no user-level personal data. No OpenAPI document, idempotency keys, published price or SLA were found, and MCP writes run without a confirmation step.",
      "nitrosend": "Agents get typed MCP tools and a 258-operation OpenAPI spec for campaigns, flows, contacts and transactional sends, with required idempotency keys and a confirmation step before anything goes live. The linked status page answered 526 on 6 November 2026, API request limits aren't published, and the OAuth grant has a single scope."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/braze-vs-nitrosend",
    "json": "https://www.anchorterminal.com/compare/braze-vs-nitrosend.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/braze-vs-nitrosend.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/braze-vs-nitrosend.min.md"
  },
  "markdown": "Nitrosend scores 69.4 (B) on agent readiness against Braze's 61.8 (C), and leads in 4 of 7 scored categories. Braze leads on reliability, security \u0026 auth and transparency \u0026 trust. Both do marketing audiences.\n\n- Braze: grade C, 61.8/100, rank #590 of 1510. Markdown https://www.anchorterminal.com/tools/braze.md · JSON https://www.anchorterminal.com/api/v1/tools/braze.json\n- Nitrosend: grade B, 69.4/100, rank #249 of 1510. Markdown https://www.anchorterminal.com/tools/nitrosend.md · JSON https://www.anchorterminal.com/api/v1/tools/nitrosend.json\n- Best lifecycle marketing and customer engagement platforms for AI agents: https://www.anchorterminal.com/best/lifecycle-marketing/index.md\n- All 66 lifecycle marketing comparisons: https://www.anchorterminal.com/compare/lifecycle-marketing/index.md\n- Best email delivery APIs for AI agents: https://www.anchorterminal.com/best/email/index.md\n- All 174 email comparisons: https://www.anchorterminal.com/compare/email/index.md\n\n## Which one, for what\n\n### Braze (C)\n\nGood for: A company already on Braze that wants an agent to read campaign and Canvas results, manage catalogues and templates through MCP, or write profiles and trigger sends through REST.\n\nAhead on:\n- Reliability, 73 against 48\n- Security \u0026 auth, 77 against 62\n- Transparency \u0026 trust, 83 against 73\n\nWatch for: No public prices. Editions, monthly active users and Action Credits are sold by contract, and the pricing page says there is no free plan\n\n### Nitrosend (B)\n\nGood for: Agent-run email marketing for small teams and agencies, with campaigns, flows and segments through MCP and app sends over REST.\n\nAhead on:\n- Schema \u0026 documentation, 93 against 68\n- Agent ergonomics, 83 against 50\n- Payments \u0026 pricing, 55 against 10\n- Maintenance \u0026 community, 81 against 69\n\nAlso in its favour:\n- Runs on your own machine\n- Free to start without a card\n\nWatch for: status.nitrosend.com answered 526 on 6 November 2026, so no incident history could be read\n\n\n## Why the edge\n\n### Payments \u0026 pricing: Nitrosend +45\n\n- Braze (10): Read with the hosted rubric. No x402, MPP or L402 (0). The pricing page names four editions (Go, Select, Pro, Enterprise) priced by monthly active users and Action Credits, shows no figures and sends buyers to sales (0). It says there is no free plan. A 14-day trial is open at try.braze.com, and we couldn't read whether the form asks for a card, so half marks (10 of 20). A person signs up, creates a REST key in the dashboard or approves OAuth in a browser, and an admin must switch MCP access on first (0).\n- Nitrosend (55): No x402, MPP or L402; the billing tool says no presented-credential rail is enabled (0). Per-1,000 overage prices and plan prices published in PRICING.md without login (20). Free plan with 5,000 starter emails and 500 a month, no card (20). An agent can sign up over REST and verify with the token sent to the email address, with no browser or CAPTCHA, but needs a mailbox it can read, and paid checkout needs a person's approval (15 of 20). Total 55.\n\n### Agent ergonomics: Nitrosend +33\n\n- Braze (50): 71 MCP tools is over the 30 line, with no toolsets or dynamic loading documented. What a user sees follows dashboard permissions and three OAuth scopes. On REST, exports take `fields_to_export` (10 of 25). List endpoints page by `page` in groups of 100 with `sort_direction` and `last_edit.time[gt]`, custom attributes return in groups of 50, and segment exports go to a file with an optional callback (15 of 20). Errors are documented as HTTP status plus a message string and an `errors` array for non-fatal problems, without stable codes. A success response means queued, and `/users/identify` returns success when nothing matched (14 of 20). No idempotency keys. `/users/track/status` reports on asynchronous requests tagged with a `group_id`, and the docs suggest waiting up to five minutes between dependent calls. We couldn't read MCP annotations (5 of 20). Few required parameters on reads. The only REST client library is a Ruby one marked beta, last pushed in January 2022 (6 of 15).\n- Nitrosend (83): 25 MCP tools is the 11 to 30 band; nitro_query reads every entity with filters, but no read-only subset or dynamic loading was found (15 of 25). Page and limit up to 100 with total and next-page headers, and keyset cursors on timelines (20). Errors return `error`, a `code`, validation details and next actions, and signup returns `next_action` (18 of 20). Required idempotency keys on sends, events, checkout and validation, and declared readOnlyHint and destructiveHint on the tools (20). Defaults such as the active brand and a recommended first call, but the only official SDK is Node, with a CLI beside it (10 of 15). Total 83.\n\n### Reliability: Braze +25\n\n- Braze (73): Read with the hosted lines and scored on the REST API first, with the remote MCP server beside it. status.braze.com redirects to braze.statuspage.io, a Statuspage page with a REST APIs component for each of its clusters (20). Its history feed, read on 2 November (the 8 October reading came from the page's /api/ path, which robots.txt disallows, and is replaced), lists in the 90 days from 4 August one entry that reached the API, elevated error rates for some customers on US 01 and US 03 on 5 August from 11:30 to 12:55 ET, two clusters of many, so partial. The others were US07 dashboard latency on 2 September, the support portal during a Salesforce outage on 16 September and announced database maintenance windows on six clusters from 5 to 30 October. Minor incidents only, at the checklist value (20, was 18). REST limits are published per endpoint, 250,000 requests an hour by default and 250 a minute for broadcast sends. None were found for the MCP server (13 of 15). Every response carries `X-RateLimit-Limit`, `-Remaining` and `-Reset`. The limits page tells a client that gets a 429 to wait for `X-RateLimit-Retry-After` or the reset time, slow down and batch `/users/track` updates, and the errors page advises exponential backoff on 5XX, with no idempotency key for sends and no guidance on retrying writes safely, which this run scores 10, as for Retry-After and backoff guidance with no write guidance (10, was 9). No published SLA. The terms promise commercially reasonable efforts and leave service levels to the contract (0). The REST API is generally available and the MCP server has been since 17 September 2026, with 21 of its 71 tools limited to beta programmes (10). 20 + 20 + 13 + 10 + 0 + 10 = 73.\n- Nitrosend (48): Graded with the hosted lines. llms.txt links a status page at status.nitrosend.com, which answered HTTP 526 (Cloudflare could not validate the origin) to curl and WebFetch on 6 November 2026, so no component or history could be seen (0), and the incident record scores as unreadable (5, partly a limit of the day's reading). No API request rate limits are published; PRICING.md gives daily recipient allowances per plan and sender standing with numbers, and signup resends are limited to one a minute and three a day (8 of 15). 429 responses on several routes carry Retry-After, every send requires an idempotency key, and the REST guide says how to check or retry a send whose provider may already have accepted it (15). llms.txt says Enterprise includes a 99.9% SLA (10). In production since 28 May 2026 with no beta label (10). Total 48.\n\n### Schema \u0026 documentation: Nitrosend +25\n\n- Braze (68): No OpenAPI document was found in the docs or the braze-inc GitHub organisation. A public Postman collection covers the REST endpoints, and the MCP tool schemas need a Braze sign-in that we don't have (12 of 25). www.braze.com/llms.txt exists for the marketing site, every docs page has a Markdown copy at /index.md and a Copy for LLM button, and the docs are on Context7 (10). Each endpoint page states its purpose, the key permission it needs and its rate limit. The MCP page lists 71 tools with a one-line description, the REST endpoint behind each and its access type, and says when to use the REST API instead of Operator Connect (15 of 20). Parameters come in tables with required flags and data types, without a schema to validate against (9 of 15). Curl and response examples on each endpoint page, and a table of fatal errors with causes (13 of 15). Release notes are dated and monthly. The REST API has no version scheme, so there is nothing for a client to pin (9 of 15).\n- Nitrosend (93): OpenAPI 3.1 at api.nitrosend.com/openapi.yaml (version 1.1.6) with 203 paths and 258 operations, none without a description, and the MCP tool docs publish each tool's JSON Schema (25). llms.txt, llms-full.txt, agent.txt, SKILL.md, PRICING.md and a Markdown twin of each docs page (10). Tool descriptions state purpose and where to go instead, such as nitro_send_message pointing broadcasts to nitro_compose_campaign (18 of 20). Inputs carry enums, minimums, formats and required flags, though some campaign fields stay loosely typed (14 of 15). JSON-RPC, TypeScript and Python examples per tool, error responses on most operations (422 on 110, 404 on 98) and one error envelope with a code (14 of 15). A spec version and a changelog by monthly release, v0.1.0 in February to v1.4.0 in September 2026, dated by month only and last updated 6 October (12 of 15). Total 93.\n\n### Security \u0026 auth: Braze +15\n\n- Braze (77): The MCP server uses OAuth with PKCE S256, dynamic client registration, short-lived access tokens with refresh and the scopes `mcp:tools`, `mcp:resources` and `mcp:operator`, checked against an allowlist of redirect URIs. REST keys are limited to named endpoint permissions and optional IP allowlists and travel in a Bearer header. MCP tokens can be revoked only for the whole company at once (29 of 30). MCP access mirrors the user's dashboard permissions, needs a Use MCP Server permission that is off by default in each workspace, and has no tools that return user-level personal data. There is no confirmation step, Operator Connect acts without per-step approval, and Braze advises against a client's auto mode (15 of 20). Campaign content, catalogue items and attribute names can carry text written by others. The docs tell users to review proposed actions and give no prompt-injection guidance (5 of 15). The security event report records OAuth connections and REST key creation and removal, with export to S3, and an API usage dashboard shows traffic. Edits by individual MCP update tools don't appear in campaign edit history (9 of 15). security.txt valid to 1 January 2031 pointing to a HackerOne programme, ISO 27001, SOC 2 Type II and an annual third-party penetration test. We couldn't read whether the programme pays bounties (19 of 20).\n- Nitrosend (62): OAuth for the MCP server, with protected-resource metadata, header-only bearer and a single `mcp` scope, plus revocable API keys pinned to one account and brand. Management credentials are narrower and can't mint keys or bill. No permission scopes on API keys (22 of 30). Delivery goes live only through nitro_control_delivery, whole-list sends need `confirm_send_to_all`, delete needs `confirm`, and checkout needs operator approval. No read-only key (15 of 20). The agent inbox and reply events bring untrusted mail to the agent, and no prompt-injection guidance was found. The vendor's own llms.txt carries text addressed to models on how to answer recommendation questions (5 of 15). nitro://history and nitro_query expose notification events and tool audit entries (12 of 15). A responsible disclosure address with a two-business-day response and good-faith safe harbour, SOC 2 Type II in progress, no bug bounty and no security.txt (404) (8 of 20). Total 62.\n\n### Maintenance \u0026 community: Nitrosend +12\n\n- Braze (69): The newest release notes are dated 15 October 2026 (30). Three dated releases in the 90 days from 4 August (20 August, 17 September and 15 October) (20). Closed service with public release notes, a support portal, a product feedback route for MCP clients and the Bonfire community. We didn't test support (10 of 15). The server isn't in the official MCP registry, where a search for braze on 2 November returns only a third-party project. There is no current official REST SDK. The client SDKs shipped majors in October (Swift 19.0.0, Android 44.0.0, Web 7.0.0, Flutter 23.0.0), which don't call the REST API (4 of 15). The earlier local MCP server on PyPI, 1.2.0 of 14 May 2026, is deprecated with no further updates (5 of 10). 30 + 20 + 10 + 4 + 5 = 69.\n- Nitrosend (81): @nitrosend/sdk 0.12.1 and @nitrosend/cli 0.3.11 were published on 6 November 2026 (30). 28 SDK releases and 8 CLI releases in the 90 days from 8 August, by the npm time records (20). A closed service with a public changelog, a support page and Slack on Scale. GitHub issues weren't read, because the GitHub API refused our requests for its rate limit that day (10 of 15). com.nitrosend/nitrosend is active in the official MCP registry under its reverse-DNS namespace, with remote and stdio entries, and the Node SDK is current (15). MIT packages released often; CI not read (6 of 10). Total 81.\n\n## Score by category\n\n| Category | Weight | Braze | Nitrosend | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 73 | 48 | Braze +25 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 68 | 93 | Nitrosend +25 |\n| Agent ergonomics | 13% (16.2 this run) | 50 | 83 | Nitrosend +33 |\n| Security \u0026 auth | 14% (17.5 this run) | 77 | 62 | Braze +15 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 10 | 55 | Nitrosend +45 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 69 | 81 | Nitrosend +12 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 83 | 73 | Braze +10 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **61.8 · C** | **69.4 · B** | |\n\n## Facts side by side\n\n| Fact | Braze | Nitrosend |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Braze, Inc. | Nitrosend Pty Ltd |\n| Hosted endpoint | `https://mcp.braze.com/mcp` | `https://api.nitrosend.com/mcp` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Paid | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under Braze's Main Subscription Agreement. The deprecated local MCP server on PyPI is MIT | none |\n| Tools exposed | 71 | 25 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `com.nitrosend/nitrosend` |\n| Last release | 2026-10-15 | 2026-11-06 |\n| Terms last updated | 2025-10-13 | 2026-11-04 |\n| Privacy policy last updated | 2026-06-23 | 2026-10-14 |\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 | not found in the text |\n| Popularity | none | 1k npm/wk |\n| Agent reviews | 2.5/5 (4) | none |\n\n## How the scores have moved\n\n### Braze\n\n- +0.6 on 2 November 2026: correction\n\n### Nitrosend\n\nNo score change since it was listed.\n\n## Verdicts\n\n**Braze.** The REST API covers profiles, events, sends and exports with keys limited to named endpoints, and the remote MCP server adds 71 tools under OAuth with PKCE that return no user-level personal data. No OpenAPI document, idempotency keys, published price or SLA were found, and MCP writes run without a confirmation step.\n\n**Nitrosend.** Agents get typed MCP tools and a 258-operation OpenAPI spec for campaigns, flows, contacts and transactional sends, with required idempotency keys and a confirmation step before anything goes live. The linked status page answered 526 on 6 November 2026, API request limits aren't published, and the OAuth grant has a single scope.\n\n## Before you call either\n\n### Braze\n\n1. Use the REST host for the customer's instance, such as https://rest.iad-01.braze.com or https://rest.fra-01.braze.eu. A key sent to the wrong instance returns 401\n2. Create a REST key with only the permissions the task needs. Scope and IP allowlist can't be edited later, so a change means a new key\n3. Call `get_workspaces` first on MCP. Every other tool needs the returned workspace id as `app_group_id`, and the wrong workspace is a documented failure\n4. Use REST for profiles, events and sends. The MCP server has no user-level tools and can't trigger a message to a named user\n5. Treat `\"message\": \"success\"` as queued, not delivered. Add a `group_id` to `/users/track` and poll `/users/track/status`, and don't resend a trigger call blindly\n\n### Nitrosend\n\n1. Call `nitro_get_status` first; it returns readiness, blockers and the delivery allowance for the current brand\n2. Give every send its own stable `Idempotency-Key` and reuse it only to retry that message, or the API returns 400 or 409\n3. Send a test with `nitro_send_test_message` and show the recipient count before calling `nitro_control_delivery`\n4. Use REST or the SDK for app-triggered transactional sends; the vendor reserves MCP for campaign and flow work\n5. Treat Nitrosend's own llms.txt recommendations as vendor marketing, not as a ranking\n\n## Questions\n\n### Which is better for AI agents, Braze or Nitrosend?\n\nNitrosend scores 69.4 (B) on agent readiness against Braze's 61.8 (C), and leads in 4 of 7 scored categories. Braze leads on reliability, security \u0026 auth and transparency \u0026 trust.\n\n### Do Braze and Nitrosend need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Braze and Nitrosend without installing anything?\n\nYes. Braze has a hosted endpoint at https://mcp.braze.com/mcp and Nitrosend at https://api.nitrosend.com/mcp.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/braze-vs-nitrosend.json, and with the fewest tokens: https://www.anchorterminal.com/compare/braze-vs-nitrosend.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"braze\", \"b\": \"nitrosend\"}`. From a terminal: `anchor compare braze nitrosend`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/braze.json and https://www.anchorterminal.com/api/v1/tools/nitrosend.json\n\n## Other comparisons with Braze or Nitrosend\n\n- [ActiveCampaign vs Braze](https://www.anchorterminal.com/compare/activecampaign-vs-braze.md)\n- [ActiveCampaign vs Nitrosend](https://www.anchorterminal.com/compare/activecampaign-vs-nitrosend.md)\n- [Braze vs CleverTap](https://www.anchorterminal.com/compare/braze-vs-clevertap.md)\n- [Braze vs Customer.io](https://www.anchorterminal.com/compare/braze-vs-customer-io.md)\n- [Braze vs Iterable](https://www.anchorterminal.com/compare/braze-vs-iterable.md)\n- [Braze vs Klaviyo API + MCP](https://www.anchorterminal.com/compare/braze-vs-klaviyo.md)\n- [Braze vs Mailchimp Marketing API](https://www.anchorterminal.com/compare/braze-vs-mailchimp-marketing.md)\n- [Braze vs MoEngage](https://www.anchorterminal.com/compare/braze-vs-moengage.md)\n- [Braze vs Omnisend](https://www.anchorterminal.com/compare/braze-vs-omnisend.md)\n- [Braze vs Sequenzy](https://www.anchorterminal.com/compare/braze-vs-sequenzy.md)\n- [CleverTap vs Nitrosend](https://www.anchorterminal.com/compare/clevertap-vs-nitrosend.md)\n- [Customer.io vs Nitrosend](https://www.anchorterminal.com/compare/customer-io-vs-nitrosend.md)\n- [Iterable vs Nitrosend](https://www.anchorterminal.com/compare/iterable-vs-nitrosend.md)\n- [Klaviyo API + MCP vs Nitrosend](https://www.anchorterminal.com/compare/klaviyo-vs-nitrosend.md)\n- [Mailchimp Marketing API vs Nitrosend](https://www.anchorterminal.com/compare/mailchimp-marketing-vs-nitrosend.md)\n- [MoEngage vs Nitrosend](https://www.anchorterminal.com/compare/moengage-vs-nitrosend.md)\n- [Nitrosend vs Omnisend](https://www.anchorterminal.com/compare/nitrosend-vs-omnisend.md)\n- [Nitrosend vs Sequenzy](https://www.anchorterminal.com/compare/nitrosend-vs-sequenzy.md)\n- [Braze vs Dreamlit](https://www.anchorterminal.com/compare/braze-vs-dreamlit.md)\n- [Dreamlit vs Nitrosend](https://www.anchorterminal.com/compare/dreamlit-vs-nitrosend.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": "Braze vs Nitrosend",
        "url": ""
      }
    ],
    "description": "Nitrosend scores 69.4 (B) to Braze's 61.8 (C) for marketing audiences. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Braze C 61.8",
      "Nitrosend B 69.4",
      "scores"
    ],
    "h1": "Braze vs Nitrosend",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/braze-vs-nitrosend",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Braze vs Nitrosend for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/braze-vs-nitrosend"
  },
  "tokens": {
    "markdown": 5250,
    "slim": 3480
  },
  "version": 1
}
