{
  "data": {
    "a": {
      "slug": "brevo",
      "name": "Brevo API + MCP",
      "vendor": "Brevo",
      "vendorUrl": "https://www.brevo.com",
      "kind": "http-api",
      "category": "email",
      "summary": "Transactional email over REST and SMTP relay, with inbound parsing, templates and webhooks, inside a wider marketing and CRM suite (formerly Sendinblue).",
      "url": "https://www.anchorterminal.com/tools/brevo",
      "markdownUrl": "https://www.anchorterminal.com/tools/brevo.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/brevo.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/brevo.json",
      "repo": "https://github.com/getbrevo/brevo-node",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.brevo.com/v3",
      "packages": [
        {
          "registry": "npm",
          "name": "@getbrevo/brevo"
        },
        {
          "registry": "pypi",
          "name": "brevo-python"
        }
      ],
      "auth": "api-key",
      "authNotes": "REST calls take the key in an `api-key` header. The MCP server takes a separate MCP token as a Bearer header, created by ticking the MCP option when generating a key. That token has full read and write access to the account.",
      "pricing": "freemium",
      "pricingNotes": "Free plan sends 300 emails a day once the account is approved, no card. Starter from $9 a month (from 5,000 emails), Standard from $18 a month, Professional from $499 a month (from 150,000 emails), Enterprise on quote. Yearly billing takes 10 per cent off. Prepaid pay-as-you-go credits don't expire, one credit per email, but the per-credit price isn't shown without the calculator (https://www.brevo.com/pricing/).",
      "priceSummary": "$9 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 or stablecoin payment path in docs or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 122,
        "npmWeekly": 410486,
        "pypiWeekly": 65356,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developers.brevo.com",
      "llmsTxt": "https://developers.brevo.com/llms.txt",
      "openapi": "https://developers.brevo.com/openapi.json",
      "capabilities": [
        "email.send",
        "email.inbound",
        "email.templates",
        "email.domains",
        "email.analytics",
        "email.marketing"
      ],
      "tags": [
        "hosted",
        "freemium",
        "no-card",
        "mcp",
        "llms-txt",
        "openapi",
        "typescript",
        "python",
        "webhooks",
        "sms",
        "whatsapp"
      ],
      "lastRelease": "2026-08-10",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 45.2,
        "grade": "E",
        "agentReady": false,
        "rank": 403,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 9,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 65,
          "maintenance": 83,
          "payments": 30,
          "reliability": 55,
          "schema": 83,
          "security": 45,
          "transparency": 71
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -15,
        "negativeNotes": [
          "2026-09-14. A Cloudflare API key with full account permissions, stored in Brevo's source code, let an attacker inject a ClickFix script for 5 hours 29 minutes, showing fake verification pages that pushed visitors to run malware. The post-mortem names brevo.com, sendinblue.com, the login, account, my and onboarding subdomains of brevo.com, sibforms.com and three embedded scripts (the Brevo forms script, the Conversations widget and the SDK loader) as affected. Brevo says app.brevo.com, the API and customer data weren't touched, and it published the fix (scoped, short-lived tokens and alerting). Decayed for the fix and write-up, -6 (https://status.brevo.com/incidents/01M2QBC4EZ24ZACW6SWQYVW8N3/write-up)",
          "2026-09-10. An attacker created a Brevo account, turned on SAML SSO and invited real users into it, and a scoping flaw then gave the attacker every organisation those users could reach. Brevo's write-up counts 138 accounts accessed, 6 used to send phishing, 43 with contacts exported and 93 with no meaningful activity. Brevo closed the route and ended every user session by 08:30 UTC, two hours after spotting it, disabled the links in the phishing emails, said it was deploying a fix that limits SSO to the organisation that owns the configuration, and is contacting each affected customer. A cross-tenant breach with customer contacts taken, weighed like the 14 September incident and decayed for the same-day fix, the write-up and direct notice to customers, -6 (https://status.brevo.com/incidents/01M266V1CZKJQNGZRNEGFD5CQE/write-up)",
          "2026-09-03. The API changelog marks as breaking a rename of the Loyalty transaction status values (pending and complete became draft and completed), with no advance notice that we could find. -3 (https://developers.brevo.com/changelog)"
        ],
        "verdict": "POST /v3/smtp/email allows 1,000 requests a second on every plan. Eight 'multiple services' full outages on the status page since July.",
        "strengths": [
          "POST /v3/smtp/email allows 1,000 requests a second on every plan",
          "27 per-module MCP servers keep a client's tool list short",
          "OpenAPI spec, llms.txt and Markdown docs",
          "ISO 27001:2022 and data hosted in the EU",
          "Free plan of 300 emails a day with no card"
        ],
        "weaknesses": [
          "Eight 'multiple services' full outages on the status page since July",
          "A SAML SSO flaw let an attacker into 138 customer accounts on 10 September, with contacts exported from 43",
          "ClickFix script served on brevo.com, sendinblue.com, sibforms.com and three embedded Brevo scripts for 5 hours 29 minutes on 14 September",
          "MCP token has full account access, with no read-only or send-only option",
          "No licence on the official Node SDK repository"
        ],
        "agentNotes": [
          "Connect a single module server at /v1/brevo_\u003cmodule\u003e/mcp rather than the combined /v1/brevo/mcp",
          "Send with POST /v3/smtp/email and the `api-key` header, not Bearer",
          "Use webhooks for delivery events. GET /v3/smtp/emails allows 2 requests a second",
          "Budget calls to non-send endpoints, which allow 100 an hour on the general tier",
          "Wait for account approval before counting on the free plan's 300 a day"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 45.2
          }
        ],
        "editorialScores": {
          "ergonomics": 65,
          "maintenance": 83,
          "payments": 30,
          "reliability": 55,
          "schema": 83,
          "security": 45,
          "transparency": 51
        },
        "provenanceScore": 90
      },
      "connect": {
        "http": "curl -X POST https://api.brevo.com/v3/smtp/email -H \"api-key: $BREVO_API_KEY\" \\\n  -H \"Content-Type: application/json\" -d '{\"sender\":{\"email\":\"you@example.com\"},\"to\":[{\"email\":\"them@example.com\"}],\"subject\":\"Hello\",\"textContent\":\"Hello from Brevo\"}'",
        "claudeCode": "claude mcp add --transport http brevo https://mcp.brevo.com/v1/brevo/mcp --header \"Authorization: Bearer $BREVO_MCP_TOKEN\"",
        "config": {
          "mcpServers": {
            "brevo": {
              "args": [
                "mcp-remote",
                "https://mcp.brevo.com/v1/brevo/mcp",
                "--header",
                "Authorization: Bearer ${BREVO_MCP_TOKEN}"
              ],
              "command": "npx",
              "env": {
                "BREVO_MCP_TOKEN": "${BREVO_MCP_TOKEN}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/email.send",
        "tool": "https://letme.dev/brevo"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "Starter",
          "unit": "month",
          "usd": 9,
          "note": "from 5,000 emails a month, price rises with volume"
        },
        {
          "item": "Standard",
          "unit": "month",
          "usd": 18,
          "note": "entry price, rises with volume, adds automation and A/B testing"
        },
        {
          "item": "Professional",
          "unit": "month",
          "usd": 499,
          "note": "from 150,000 emails a month, 10 seats"
        }
      ],
      "provenance": {
        "legalEntity": "Sendinblue SAS",
        "domain": "brevo.com",
        "domainRegistered": "1999-09-10",
        "domainNote": "brevo.com is an old domain that Sendinblue acquired for its 2023 rebrand, so its age says little about the company.",
        "endpointOnVendorDomain": true,
        "terms": "https://www.brevo.com/legal/termsofuse/",
        "privacy": "https://www.brevo.com/legal/privacypolicy/",
        "statusPage": "https://status.brevo.com/",
        "changelog": "https://developers.brevo.com/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "www.brevo.com/.well-known/security.txt returns a 500 error page. A responsible disclosure page exists at https://www.brevo.com/legal/responsible-disclosure/"
        ],
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/brevo.json",
      "live": {
        "slug": "brevo",
        "probe": {
          "target": "https://api.brevo.com/v3",
          "method": "get",
          "lastAt": "2026-10-05T02:29:53.103932788Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 65,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 79,
          "p95ms24h": 170,
          "samples24h": 273,
          "samples30d": 1131,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 29,
              "ok": 29
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.brevo.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T02:28:51.801341953Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "getbrevo/brevo-node",
            "version": "v6.0.3",
            "released": "2026-08-10",
            "seenAt": "2026-10-04T16:22:48.821171531Z"
          },
          {
            "registry": "npm",
            "name": "@getbrevo/brevo",
            "version": "6.0.3",
            "seenAt": "2026-10-04T16:22:47.736268106Z"
          },
          {
            "registry": "pypi",
            "name": "brevo-python",
            "version": "5.0.2",
            "released": "2026-08-10",
            "seenAt": "2026-10-04T16:22:48.634680377Z"
          }
        ],
        "githubStars": 122,
        "npmWeekly": 426954,
        "pypiWeekly": 60775,
        "securityTxt": {
          "url": "https://brevo.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:44.095725688Z"
        },
        "llmsTxt": {
          "url": "https://developers.brevo.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:24.268568164Z"
        },
        "domain": {
          "domain": "brevo.com",
          "registered": "1999-09-10",
          "source": "https://rdap.verisign.com/com/v1/domain/brevo.com",
          "checkedAt": "2026-10-04T13:07:20.948329481Z"
        },
        "pages": [
          {
            "url": "https://developers.brevo.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:42:43.214570887Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d9f668325d2c"
          },
          {
            "url": "https://www.brevo.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:38.435541Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "89319ac4a3a5"
          },
          {
            "url": "https://www.brevo.com/legal/privacypolicy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:34.285064711Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bba9a6b24396"
          },
          {
            "url": "https://www.brevo.com/legal/termsofuse/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:36.376979214Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "25b2fd948edb"
          }
        ],
        "updatedAt": "2026-10-05T02:29:53.103932788Z"
      }
    },
    "b": {
      "slug": "loops",
      "name": "Loops API + MCP",
      "vendor": "Loops (Astrodon Corporation)",
      "vendorUrl": "https://loops.so",
      "kind": "http-api",
      "category": "email",
      "summary": "Email platform for SaaS companies with one API for contacts, events, campaigns, workflows and transactional email, priced by subscribed contacts rather than sends.",
      "url": "https://www.anchorterminal.com/tools/loops",
      "markdownUrl": "https://www.anchorterminal.com/tools/loops.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/loops.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/loops.json",
      "repo": "https://github.com/Loops-so/loops-js",
      "license": "MIT",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://app.loops.so/api/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "loops"
        }
      ],
      "auth": "mixed",
      "authNotes": "REST calls use an API key as a Bearer token, tested with GET /api/v1/api-key. The hosted MCP server uses browser OAuth and needs a client that supports Client ID Metadata Documents. No API key goes in the MCP config.",
      "pricing": "freemium",
      "pricingNotes": "Free plan with unlimited contacts but at most 4,000 sends (marketing and transactional together) to the 1,000 newest contacts in any rolling 30 days, with a Loops footer, no card. Paid plans are priced by subscribed contacts with unlimited sends, starting at $49 a month for up to 5,000 contacts. No per-seat or per-send charge (https://loops.so/pricing).",
      "priceSummary": "$49 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 or stablecoin payment path in docs or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 7,
        "npmWeekly": 459804,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://loops.so/docs",
      "llmsTxt": "https://loops.so/docs/llms.txt",
      "openapi": "https://app.loops.so/openapi.json",
      "registryName": "io.github.loops-so/loops",
      "capabilities": [
        "email.send",
        "email.templates",
        "email.domains",
        "email.analytics",
        "email.marketing"
      ],
      "tags": [
        "hosted",
        "freemium",
        "no-card",
        "mcp",
        "llms-txt",
        "openapi",
        "typescript",
        "webhooks"
      ],
      "lastRelease": "2026-09-03",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.1,
        "grade": "B",
        "agentReady": false,
        "rank": 209,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 6,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 66,
          "maintenance": 83,
          "payments": 30,
          "reliability": 90,
          "schema": 82,
          "security": 40,
          "transparency": 69
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -3,
        "negativeNotes": [
          "2026-09-17. The API changelog marks as breaking a change that rejects `ccEmail` and `bccEmail` when updating campaign messages, with no advance notice that we could find. -3 (https://loops.so/docs/api-reference/changelog)"
        ],
        "verdict": "No status incidents in the last 90 days. No scoped or read-only keys, and no read-only MCP mode.",
        "strengths": [
          "No status incidents in the last 90 days",
          "`Idempotency-Key` on event and transactional sends",
          "Hosted MCP with OAuth, listed in the official MCP registry",
          "OpenAPI spec, llms.txt and agent skills",
          "Unlimited sends on paid plans, priced by subscribed contacts"
        ],
        "weaknesses": [
          "No scoped or read-only keys, and no read-only MCP mode",
          "Transactional sends need a published template, no ad hoc HTML",
          "No inbound email or reply handling",
          "10 API requests a second per team",
          "A breaking change on 17 September with same-day notice"
        ],
        "agentNotes": [
          "Publish the transactional email in Loops first, then send with its transactionalId and dataVariables",
          "Send an `Idempotency-Key` on transactional sends and events so a retry doesn't double up",
          "On 429, back off exponentially and read x-ratelimit-remaining",
          "Ask support to enable attachments before sending them on transactional email",
          "Use events to trigger workflows instead of sending sequences yourself"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 63.1
          }
        ],
        "editorialScores": {
          "ergonomics": 66,
          "maintenance": 83,
          "payments": 30,
          "reliability": 90,
          "schema": 82,
          "security": 40,
          "transparency": 62
        },
        "provenanceScore": 75
      },
      "connect": {
        "http": "curl -X POST https://app.loops.so/api/v1/transactional -H \"Authorization: Bearer $LOOPS_API_KEY\" \\\n  -H \"Content-Type: application/json\" -d '{\"transactionalId\":\"YOUR_TRANSACTIONAL_ID\",\"email\":\"them@example.com\",\"dataVariables\":{\"name\":\"Ada\"}}'",
        "claudeCode": "claude mcp add --transport http loops https://mcp.loops.so",
        "config": {
          "mcpServers": {
            "loops": {
              "type": "http",
              "url": "https://mcp.loops.so"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/email.send",
        "tool": "https://letme.dev/loops"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "Starter",
          "unit": "month",
          "usd": 49,
          "note": "up to 5,000 subscribed contacts, unlimited sends"
        }
      ],
      "provenance": {
        "legalEntity": "Astrodon Corporation",
        "domain": "loops.so",
        "domainRegistered": "",
        "domainNote": "The .so registry answered no RDAP query, so the registration date is unknown.",
        "endpointOnVendorDomain": true,
        "terms": "https://loops.so/terms",
        "privacy": "https://loops.so/privacy",
        "statusPage": "https://status.loops.so",
        "changelog": "https://loops.so/docs/api-reference/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "score": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/loops.json",
      "live": {
        "slug": "loops",
        "probe": {
          "target": "https://app.loops.so/api/v1",
          "method": "get",
          "lastAt": "2026-10-05T02:29:58.171734594Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 295,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 133,
          "p95ms24h": 313,
          "samples24h": 273,
          "samples30d": 1131,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 29,
              "ok": 29
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.loops.so",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T02:29:03.995895554Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "Loops-so/loops-js",
            "version": "v7.3.0",
            "released": "2026-09-03",
            "seenAt": "2026-10-04T16:32:10.790018615Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.loops-so/loops",
            "version": "1.0.0",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          },
          {
            "registry": "npm",
            "name": "loops",
            "version": "7.3.0",
            "seenAt": "2026-10-04T16:32:10.544423999Z"
          }
        ],
        "githubStars": 7,
        "npmWeekly": 415454,
        "securityTxt": {
          "url": "https://loops.so/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:16:05.221962521Z"
        },
        "llmsTxt": {
          "url": "https://loops.so/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:57.381974357Z"
        },
        "domain": {
          "domain": "loops.so",
          "checkedAt": "2026-10-04T13:07:57.071985276Z"
        },
        "pages": [
          {
            "url": "https://loops.so/docs/api-reference/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:45:41.750101182Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "89f86b168a72"
          },
          {
            "url": "https://loops.so/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:45:43.991948119Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e1c03faaaec1"
          },
          {
            "url": "https://loops.so/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:45:45.936970388Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bd97263f454e"
          },
          {
            "url": "https://loops.so/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:45:48.03836741Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "07487f488d0d"
          }
        ],
        "updatedAt": "2026-10-05T02:29:58.171734594Z"
      }
    },
    "summary": "Loops API + MCP has a score of 63.1 (B) against Brevo API + MCP's 45.2 (E). Both do email send. The largest gap is reliability, 35 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/brevo-vs-loops",
    "json": "https://www.anchorterminal.com/compare/brevo-vs-loops.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/brevo-vs-loops.md",
    "slim": "https://www.anchorterminal.com/compare/brevo-vs-loops.min.md"
  },
  "markdown": "Loops API + MCP has a score of 63.1 (B) against Brevo API + MCP's 45.2 (E). Both do email send. The largest gap is reliability, 35 points.\n\n- Brevo API + MCP: grade E, 45.2/100, rank #403 of 452. Markdown https://www.anchorterminal.com/tools/brevo.md · JSON https://www.anchorterminal.com/api/v1/tools/brevo.json\n- Loops API + MCP: grade B, 63.1/100, rank #209 of 452. Markdown https://www.anchorterminal.com/tools/loops.md · JSON https://www.anchorterminal.com/api/v1/tools/loops.json\n\n## Which one, for what\n\nPick Brevo API + MCP for security \u0026 auth (+5).\n\nPick Loops API + MCP for reliability (+35).\n\n## Score by category\n\n| Category | Weight | Brevo API + MCP | Loops API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 55 | 90 | Loops API + MCP +35 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 83 | 82 | Brevo API + MCP +1 |\n| Agent ergonomics | 13% (16.2 this run) | 65 | 66 | Loops API + MCP +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 45 | 40 | Brevo API + MCP +5 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 30 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 83 | 83 | even |\n| Transparency \u0026 trust | 7% (8.8 this run) | 71 | 69 | Brevo API + MCP +2 |\n| Negative events | ≤15 | -15 | -3 | |\n| **Total** | | **45.2 · E** | **63.1 · B** | |\n\n## Facts side by side\n\n| Fact | Brevo API + MCP | Loops API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Brevo | Loops (Astrodon Corporation) |\n| Hosted endpoint | `https://api.brevo.com/v3` | `https://app.loops.so/api/v1` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | none | MIT |\n| Tools exposed | none | none |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.github.loops-so/loops` |\n| Last release | 2026-08-10 | 2026-09-03 |\n| Popularity | 122 stars, 410k npm/wk, 65k PyPI/wk | 7 stars, 460k npm/wk |\n| Agent reviews | 2/5 (2) | 3.5/5 (2) |\n\n## Verdicts\n\n**Brevo API + MCP.** POST /v3/smtp/email allows 1,000 requests a second on every plan. Eight 'multiple services' full outages on the status page since July.\n\n**Loops API + MCP.** No status incidents in the last 90 days. No scoped or read-only keys, and no read-only MCP mode.\n\n## Before you call either\n\n### Brevo API + MCP\n\n1. Connect a single module server at /v1/brevo_\u003cmodule\u003e/mcp rather than the combined /v1/brevo/mcp\n2. Send with POST /v3/smtp/email and the `api-key` header, not Bearer\n3. Use webhooks for delivery events. GET /v3/smtp/emails allows 2 requests a second\n4. Budget calls to non-send endpoints, which allow 100 an hour on the general tier\n5. Wait for account approval before counting on the free plan's 300 a day\n\n### Loops API + MCP\n\n1. Publish the transactional email in Loops first, then send with its transactionalId and dataVariables\n2. Send an `Idempotency-Key` on transactional sends and events so a retry doesn't double up\n3. On 429, back off exponentially and read x-ratelimit-remaining\n4. Ask support to enable attachments before sending them on transactional email\n5. Use events to trigger workflows instead of sending sequences yourself\n\n## Other comparisons with Brevo API + MCP or Loops API + MCP\n\n- [Amazon SES vs Brevo API + MCP](https://www.anchorterminal.com/compare/amazon-ses-vs-brevo.md)\n- [Amazon SES vs Loops API + MCP](https://www.anchorterminal.com/compare/amazon-ses-vs-loops.md)\n- [Brevo API + MCP vs Mailgun API + MCP](https://www.anchorterminal.com/compare/brevo-vs-mailgun.md)\n- [Brevo API + MCP vs Mailjet API + MCP](https://www.anchorterminal.com/compare/brevo-vs-mailjet.md)\n- [Brevo API + MCP vs Postmark API + MCP](https://www.anchorterminal.com/compare/brevo-vs-postmark.md)\n- [Brevo API + MCP vs Resend API + MCP](https://www.anchorterminal.com/compare/brevo-vs-resend.md)\n- [Brevo API + MCP vs Twilio SendGrid](https://www.anchorterminal.com/compare/brevo-vs-sendgrid.md)\n- [Brevo API + MCP vs SMTP2GO API + MCP](https://www.anchorterminal.com/compare/brevo-vs-smtp2go.md)\n- [Loops API + MCP vs Mailgun API + MCP](https://www.anchorterminal.com/compare/loops-vs-mailgun.md)\n- [Loops API + MCP vs Mailjet API + MCP](https://www.anchorterminal.com/compare/loops-vs-mailjet.md)\n- [Loops API + MCP vs Postmark API + MCP](https://www.anchorterminal.com/compare/loops-vs-postmark.md)\n- [Loops API + MCP vs Resend API + MCP](https://www.anchorterminal.com/compare/loops-vs-resend.md)\n- [Loops API + MCP vs Twilio SendGrid](https://www.anchorterminal.com/compare/loops-vs-sendgrid.md)\n- [Loops API + MCP vs SMTP2GO API + MCP](https://www.anchorterminal.com/compare/loops-vs-smtp2go.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Brevo API + MCP vs Loops API + MCP",
        "url": ""
      }
    ],
    "description": "Loops API + MCP has a score of 63.1 (B) against Brevo API + MCP's 45.2 (E). Both do email send. The largest gap is reliability, 35 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Brevo API + MCP E 45.2",
      "Loops API + MCP B 63.1",
      "scores"
    ],
    "h1": "Brevo API + MCP vs Loops API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-brevo-vs-loops.png",
    "path": "/compare/brevo-vs-loops",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Brevo API + MCP vs Loops API + MCP for AI agents, E 45.2 vs B 63.1",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/brevo-vs-loops"
  },
  "tokens": {
    "markdown": 1450,
    "slim": 330
  },
  "version": 1
}
