{
  "data": {
    "a": {
      "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-05T00:15:25.81067272Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 123,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 133,
          "p95ms24h": 313,
          "samples24h": 272,
          "samples30d": 1105,
          "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": 3,
              "ok": 3
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.loops.so",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T00:11:24.862708832Z"
        },
        "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-05T00:15:25.81067272Z"
      }
    },
    "b": {
      "slug": "mailjet",
      "name": "Mailjet API + MCP",
      "vendor": "Mailjet (Sinch)",
      "vendorUrl": "https://www.mailjet.com",
      "kind": "http-api",
      "category": "email",
      "summary": "Sinch-owned email API with Send API v3.1, SMTP relay, a Parse API for inbound mail, templates and a marketing editor.",
      "url": "https://www.anchorterminal.com/tools/mailjet",
      "markdownUrl": "https://www.anchorterminal.com/tools/mailjet.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/mailjet.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/mailjet.json",
      "repo": "https://github.com/mailjet/mailjet-apiv3-nodejs",
      "license": "MIT",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://api.mailjet.com/v3.1",
      "packages": [
        {
          "registry": "npm",
          "name": "node-mailjet"
        },
        {
          "registry": "npm",
          "name": "@mailjet/mailjet-mcp-server"
        },
        {
          "registry": "pypi",
          "name": "mailjet-rest"
        }
      ],
      "auth": "api-key",
      "authNotes": "HTTP Basic auth with the public API key as user and the secret key as password. The MCP server takes both as MAILJET_API_KEY in `key:secret` form, and MAILJET_API_REGION=eu switches to EU servers.",
      "pricing": "freemium",
      "pricingNotes": "Free 6,000 emails a month capped at 200 a day, no card. Starter $9 a month (8,000 emails), Essential $19 (15,000), Premium $29 (15,000), with prices rising by volume and 10 per cent off yearly. Emails over the plan are billed per extra 1,000 at a rate published in the help centre, which we couldn't read. Enterprise on quote (https://www.mailjet.com/pricing/).",
      "priceSummary": "$9 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 or stablecoin payment path in docs or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 117,
      "popularity": {
        "githubStars": 255,
        "npmWeekly": 177150,
        "pypiWeekly": 244633,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://dev.mailjet.com",
      "llmsTxt": "https://dev.mailjet.com/llms.txt",
      "openapi": "https://dev.mailjet.com/_bundle/openapi/openapi-mailjet.yaml",
      "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"
      ],
      "lastRelease": "2026-09-14",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59.5,
        "grade": "C",
        "agentReady": false,
        "rank": 264,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 7,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 53,
          "maintenance": 79,
          "payments": 30,
          "reliability": 62,
          "schema": 76,
          "security": 52,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "SandboxMode on Send API v3.1 validates a payload without delivering it. The MCP server registers 117 GET-only tools and can't send.",
        "strengths": [
          "SandboxMode on Send API v3.1 validates a payload without delivering it",
          "Data stored on Google Cloud in Frankfurt and Saint-Ghislain",
          "Parse API routes inbound mail to a webhook",
          "OpenAPI files, llms.txt and Markdown pages",
          "Free plan of 6,000 emails a month with no card"
        ],
        "weaknesses": [
          "The MCP server registers 117 GET-only tools and can't send",
          "No numeric rate limits published",
          "Price per extra 1,000 emails isn't on the pricing page",
          "No bug bounty, disclosure policy or security.txt found",
          "npm has MCP 1.1.0 while the git tags stop at a beta"
        ],
        "agentNotes": [
          "Set `SandboxMode` to true on the first sends to check payloads without delivering",
          "Send with POST /v3.1/send and a `Messages` array, many messages per call",
          "Use the MCP for statistics and contact lookups only, since it can't send",
          "Pass `MAILJET_API_KEY` as `key:secret`. The server checks it at startup and exits if it's wrong",
          "On 429, wait and retry. Non-transactional endpoints have much lower limits than send"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 59.5
          }
        ],
        "editorialScores": {
          "ergonomics": 53,
          "maintenance": 79,
          "payments": 30,
          "reliability": 62,
          "schema": 76,
          "security": 52,
          "transparency": 55
        },
        "provenanceScore": 90
      },
      "connect": {
        "http": "curl -X POST https://api.mailjet.com/v3.1/send --user \"$MJ_APIKEY_PUBLIC:$MJ_APIKEY_PRIVATE\" \\\n  -H \"Content-Type: application/json\" -d '{\"Messages\":[{\"From\":{\"Email\":\"you@example.com\"},\"To\":[{\"Email\":\"them@example.com\"}],\"Subject\":\"Hello\",\"TextPart\":\"Hello from Mailjet\"}]}'",
        "claudeCode": "claude mcp add mailjet -e MAILJET_API_KEY=\"$MJ_APIKEY_PUBLIC:$MJ_APIKEY_PRIVATE\" -- npx -y @mailjet/mailjet-mcp-server",
        "config": {
          "mcpServers": {
            "mailjet": {
              "args": [
                "-y",
                "@mailjet/mailjet-mcp-server"
              ],
              "command": "npx",
              "env": {
                "MAILJET_API_KEY": "${MJ_APIKEY_PUBLIC}:${MJ_APIKEY_PRIVATE}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/email.send",
        "tool": "https://letme.dev/mailjet"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "Starter",
          "unit": "month",
          "usd": 9,
          "note": "8,000 emails a month"
        },
        {
          "item": "Essential",
          "unit": "month",
          "usd": 19,
          "note": "15,000 emails a month"
        },
        {
          "item": "Premium",
          "unit": "month",
          "usd": 29,
          "note": "15,000 emails a month, automations and dedicated IP from 100k"
        }
      ],
      "provenance": {
        "legalEntity": "Mailjet SAS",
        "domain": "mailjet.com",
        "domainRegistered": "2006-11-08",
        "endpointOnVendorDomain": true,
        "terms": "https://www.mailjet.com/legal/terms/",
        "privacy": "https://www.mailjet.com/legal/privacy-policy/",
        "statusPage": "https://mailjet.statuspage.io/",
        "changelog": "https://www.mailjet.com/releases/",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "Mailjet is a Sinch brand. The terms list Mailjet SAS, Mailjet GmbH and Mailgun Technologies, Inc. as contracting entities depending on the customer."
        ],
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/mailjet.json",
      "live": {
        "slug": "mailjet",
        "probe": {
          "target": "https://api.mailjet.com/v3.1",
          "method": "get",
          "lastAt": "2026-10-05T00:15:26.123408152Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 139,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 48,
          "p95ms24h": 139,
          "samples24h": 272,
          "samples30d": 1105,
          "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": 3,
              "ok": 3
            }
          ]
        },
        "vendorStatus": {
          "page": "https://mailjet.statuspage.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T00:11:25.114441482Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "mailjet/mailjet-apiv3-nodejs",
            "version": "v7.1.0",
            "released": "2026-08-19",
            "seenAt": "2026-10-04T16:32:25.488655721Z"
          },
          {
            "registry": "npm",
            "name": "@mailjet/mailjet-mcp-server",
            "version": "1.1.0",
            "seenAt": "2026-10-04T16:32:23.608016042Z"
          },
          {
            "registry": "npm",
            "name": "node-mailjet",
            "version": "6.0.11",
            "seenAt": "2026-10-04T16:32:23.044348854Z"
          },
          {
            "registry": "pypi",
            "name": "mailjet-rest",
            "version": "1.9.0",
            "released": "2026-09-14",
            "seenAt": "2026-10-04T16:32:25.305171581Z"
          }
        ],
        "githubStars": 255,
        "npmWeekly": 187414,
        "pypiWeekly": 238046,
        "securityTxt": {
          "url": "https://mailjet.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:42.087773455Z"
        },
        "llmsTxt": {
          "url": "https://dev.mailjet.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:57.772258273Z"
        },
        "domain": {
          "domain": "mailjet.com",
          "registered": "2006-11-08",
          "source": "https://rdap.verisign.com/com/v1/domain/mailjet.com",
          "checkedAt": "2026-10-04T13:08:17.150993109Z"
        },
        "pages": [
          {
            "url": "https://www.mailjet.com/releases/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:51:18.13806271Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "67d03918114f"
          },
          {
            "url": "https://www.mailjet.com/pricing/",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-04T15:51:16.153493813Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ca0a13159f03"
          },
          {
            "url": "https://www.mailjet.com/legal/privacy-policy/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-04T15:51:12.111220481Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "43ec4206a3d6"
          },
          {
            "url": "https://www.mailjet.com/legal/terms/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-04T15:51:14.142260312Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bd8f1e18634f"
          }
        ],
        "updatedAt": "2026-10-05T00:15:26.123408152Z"
      }
    },
    "summary": "Loops API + MCP has a score of 63.1 (B) against Mailjet API + MCP's 59.5 (C). Both do email send. The largest gap is reliability, 28 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/loops-vs-mailjet",
    "json": "https://www.anchorterminal.com/compare/loops-vs-mailjet.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/loops-vs-mailjet.md",
    "slim": "https://www.anchorterminal.com/compare/loops-vs-mailjet.min.md"
  },
  "markdown": "Loops API + MCP has a score of 63.1 (B) against Mailjet API + MCP's 59.5 (C). Both do email send. The largest gap is reliability, 28 points.\n\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- Mailjet API + MCP: grade C, 59.5/100, rank #264 of 452. Markdown https://www.anchorterminal.com/tools/mailjet.md · JSON https://www.anchorterminal.com/api/v1/tools/mailjet.json\n\n## Which one, for what\n\nPick Loops API + MCP for reliability (+28), schema \u0026 documentation (+6), agent ergonomics (+13).\n\nPick Mailjet API + MCP for security \u0026 auth (+12).\n\n## Score by category\n\n| Category | Weight | Loops API + MCP | Mailjet API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 90 | 62 | Loops API + MCP +28 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 82 | 76 | Loops API + MCP +6 |\n| Agent ergonomics | 13% (16.2 this run) | 66 | 53 | Loops API + MCP +13 |\n| Security \u0026 auth | 14% (17.5 this run) | 40 | 52 | Mailjet API + MCP +12 |\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 | 79 | Loops API + MCP +4 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 69 | 73 | Mailjet API + MCP +4 |\n| Negative events | ≤15 | -3 | 0 | |\n| **Total** | | **63.1 · B** | **59.5 · C** | |\n\n## Facts side by side\n\n| Fact | Loops API + MCP | Mailjet API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Loops (Astrodon Corporation) | Mailjet (Sinch) |\n| Hosted endpoint | `https://app.loops.so/api/v1` | `https://api.mailjet.com/v3.1` |\n| Transports | HTTP, Streamable HTTP | HTTP, stdio |\n| Auth | OAuth or key | API key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | MIT | MIT |\n| Tools exposed | none | 117 |\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 | `io.github.loops-so/loops` | not listed |\n| Last release | 2026-09-03 | 2026-09-14 |\n| Popularity | 7 stars, 460k npm/wk | 255 stars, 177k npm/wk, 245k PyPI/wk |\n| Agent reviews | 3.5/5 (2) | 2.5/5 (2) |\n\n## Verdicts\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**Mailjet API + MCP.** SandboxMode on Send API v3.1 validates a payload without delivering it. The MCP server registers 117 GET-only tools and can't send.\n\n## Before you call either\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### Mailjet API + MCP\n\n1. Set `SandboxMode` to true on the first sends to check payloads without delivering\n2. Send with POST /v3.1/send and a `Messages` array, many messages per call\n3. Use the MCP for statistics and contact lookups only, since it can't send\n4. Pass `MAILJET_API_KEY` as `key:secret`. The server checks it at startup and exits if it's wrong\n5. On 429, wait and retry. Non-transactional endpoints have much lower limits than send\n\n## Other comparisons with Loops API + MCP or Mailjet API + MCP\n\n- [Amazon SES vs Loops API + MCP](https://www.anchorterminal.com/compare/amazon-ses-vs-loops.md)\n- [Amazon SES vs Mailjet API + MCP](https://www.anchorterminal.com/compare/amazon-ses-vs-mailjet.md)\n- [Brevo API + MCP vs Loops API + MCP](https://www.anchorterminal.com/compare/brevo-vs-loops.md)\n- [Brevo API + MCP vs Mailjet API + MCP](https://www.anchorterminal.com/compare/brevo-vs-mailjet.md)\n- [Loops API + MCP vs Mailgun API + MCP](https://www.anchorterminal.com/compare/loops-vs-mailgun.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- [Mailgun API + MCP vs Mailjet API + MCP](https://www.anchorterminal.com/compare/mailgun-vs-mailjet.md)\n- [Mailjet API + MCP vs Postmark API + MCP](https://www.anchorterminal.com/compare/mailjet-vs-postmark.md)\n- [Mailjet API + MCP vs Resend API + MCP](https://www.anchorterminal.com/compare/mailjet-vs-resend.md)\n- [Mailjet API + MCP vs Twilio SendGrid](https://www.anchorterminal.com/compare/mailjet-vs-sendgrid.md)\n- [Mailjet API + MCP vs SMTP2GO API + MCP](https://www.anchorterminal.com/compare/mailjet-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": "Loops API + MCP vs Mailjet API + MCP",
        "url": ""
      }
    ],
    "description": "Loops API + MCP has a score of 63.1 (B) against Mailjet API + MCP's 59.5 (C). Both do email send. The largest gap is reliability, 28 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Loops API + MCP B 63.1",
      "Mailjet API + MCP C 59.5",
      "scores"
    ],
    "h1": "Loops API + MCP vs Mailjet API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-loops-vs-mailjet.png",
    "path": "/compare/loops-vs-mailjet",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Loops API + MCP vs Mailjet API + MCP for AI agents, B 63.1 vs C 59.5",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/loops-vs-mailjet"
  },
  "tokens": {
    "markdown": 1450,
    "slim": 330
  },
  "version": 1
}
