{
  "data": {
    "a": {
      "slug": "mailgun",
      "name": "Mailgun API + MCP",
      "vendor": "Mailgun (Sinch)",
      "vendorUrl": "https://www.mailgun.com",
      "kind": "http-api",
      "category": "email",
      "summary": "Email sending API with inbound routes, a Forwards API, templates, mailing lists, suppressions and address validation, in US and EU regions.",
      "url": "https://www.anchorterminal.com/tools/mailgun",
      "markdownUrl": "https://www.anchorterminal.com/tools/mailgun.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/mailgun.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/mailgun.json",
      "repo": "https://github.com/mailgun/mailgun-mcp-server",
      "license": "Apache-2.0",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://api.mailgun.net/v3",
      "packages": [
        {
          "registry": "npm",
          "name": "mailgun.js"
        },
        {
          "registry": "pypi",
          "name": "mailgun"
        },
        {
          "registry": "npm",
          "name": "@mailgun/mcp-server"
        }
      ],
      "auth": "api-key",
      "authNotes": "HTTP Basic auth with the username `api` and the API key as password. Role-based keys limit what each key can do. EU accounts use api.eu.mailgun.net. The MCP server reads `MAILGUN_API_KEY` and `MAILGUN_API_REGION` from its environment.",
      "pricing": "freemium",
      "pricingNotes": "Free plan with 100 emails a day, 1 custom domain, 1 inbound route and 1 day of logs. Basic $15 a month for 10,000 emails, overage $1.80 per 1,000. Foundation $35 for 50,000 (overage $1.30, first month free). Scale $90 for 100,000 (overage $1.10 falling to $0.40 at 2.5 million), with a dedicated IP and 5,000 validations. Validations from $1.20 per 100 (https://www.mailgun.com/pricing/).",
      "priceSummary": "$15 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 support in docs, pricing or MCP README (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 74,
      "popularity": {
        "githubStars": 62,
        "npmWeekly": 1321769,
        "pypiWeekly": 61238,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://documentation.mailgun.com",
      "llmsTxt": "https://documentation.mailgun.com/llms.txt",
      "openapi": "https://documentation.mailgun.com/_bundle/docs/mailgun/api-reference/send/mailgun.yaml",
      "capabilities": [
        "email.send",
        "email.inbound",
        "email.templates",
        "email.domains",
        "email.analytics"
      ],
      "tags": [
        "hosted",
        "freemium",
        "mcp",
        "llms-txt",
        "openapi",
        "typescript",
        "python",
        "webhooks"
      ],
      "lastRelease": "2026-09-21",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 66.3,
        "grade": "B",
        "agentReady": false,
        "rank": 161,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 4,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 60,
          "maintenance": 87,
          "payments": 40,
          "reliability": 57,
          "schema": 83,
          "security": 74,
          "transparency": 70
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Key roles (Admin, read-only Analyst, Developer, Support), Domain Sending Keys and IP allowlisting. 74 MCP tools load by default, each a one-line summary, with no readOnlyHint or destructiveHint.",
        "strengths": [
          "Key roles (Admin, read-only Analyst, Developer, Support), Domain Sending Keys and IP allowlisting",
          "OpenAPI 3.1 specs for `send`, `validate`, `optimize` and `inspect`, plus llms.txt",
          "Inbound routes and a Forwards API (May 2026) for incoming mail",
          "SOC 2 Type II and ISO 27001, with a third-party bug bounty",
          "Weekly release notes through September 2026 and MCP CI on Node 20, 22 and 24"
        ],
        "weaknesses": [
          "74 MCP tools load by default, each a one-line summary, with no readOnlyHint or destructiveHint",
          "12 status incidents since 10 July, including 93 minutes of US validation API errors",
          "No general API rate limit published and no idempotency key for sends",
          "Free plan keeps logs for 1 day and allows 1 inbound route",
          "No security.txt"
        ],
        "agentNotes": [
          "Give an agent that only sends a Domain Sending Key, which can only POST /messages for one domain",
          "Start the MCP with `--tags validate,inspect` when you don't need the 70 send-tagged tools",
          "Set `MAILGUN_API_REGION=eu` for EU accounts, which live on api.eu.mailgun.net",
          "Add `o:testmode=yes` to check a send without delivering it",
          "Verify a custom domain first. The sandbox domain reaches only 5 authorised recipients"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 66.3
          }
        ],
        "editorialScores": {
          "ergonomics": 60,
          "maintenance": 87,
          "payments": 40,
          "reliability": 57,
          "schema": 83,
          "security": 74,
          "transparency": 64
        },
        "provenanceScore": 75
      },
      "connect": {
        "http": "curl -s --user \"api:$MAILGUN_API_KEY\" \"https://api.mailgun.net/v3/$MAILGUN_DOMAIN/messages\" \\\n  -F from=\"Test \u003cpostmaster@$MAILGUN_DOMAIN\u003e\" -F to=you@example.com \\\n  -F subject=\"Hello\" -F text=\"Testing Mailgun\"",
        "claudeCode": "claude mcp add mailgun -e MAILGUN_API_KEY=$MAILGUN_API_KEY -- npx -y @mailgun/mcp-server",
        "config": {
          "mcpServers": {
            "mailgun": {
              "args": [
                "-y",
                "@mailgun/mcp-server"
              ],
              "command": "npx",
              "env": {
                "MAILGUN_API_KEY": "${MAILGUN_API_KEY}",
                "MAILGUN_API_REGION": "us"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/email.send",
        "tool": "https://letme.dev/mailgun"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "Basic",
          "unit": "month",
          "usd": 15,
          "note": "10,000 emails"
        },
        {
          "item": "Foundation",
          "unit": "month",
          "usd": 35,
          "note": "50,000 emails"
        },
        {
          "item": "Scale",
          "unit": "month",
          "usd": 90,
          "note": "100,000 emails, 1 dedicated IP"
        },
        {
          "item": "Overage on Basic",
          "unit": "1k-emails",
          "usd": 1.8
        },
        {
          "item": "Overage on Foundation",
          "unit": "1k-emails",
          "usd": 1.3
        },
        {
          "item": "Overage on Scale",
          "unit": "1k-emails",
          "usd": 1.1,
          "note": "falls to $0.40 at 2.5 million"
        }
      ],
      "provenance": {
        "legalEntity": "Mailgun Technologies, Inc.",
        "domain": "mailgun.com",
        "domainRegistered": "2003-12-20",
        "domainNote": "mailgun.com was registered in 2003, years before Mailgun launched in 2010.",
        "endpointOnVendorDomain": false,
        "terms": "https://www.mailgun.com/legal/terms/",
        "privacy": "https://www.mailgun.com/legal/privacy-policy/",
        "statusPage": "https://status.mailgun.com",
        "changelog": "https://documentation.mailgun.com/docs/mailgun/release/release-notes",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The API is served from mailgun.net, not mailgun.com.",
          "The terms name Sinch Email and the entity on the service order rather than a single company."
        ],
        "score": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/mailgun.json",
      "live": {
        "slug": "mailgun",
        "probe": {
          "target": "https://api.mailgun.net/v3",
          "method": "get",
          "lastAt": "2026-10-05T00:57:23.38189897Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 442,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 434,
          "p95ms24h": 517,
          "samples24h": 272,
          "samples30d": 1113,
          "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": 11,
              "ok": 11
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.mailgun.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T00:53:56.176866055Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "mailgun/mailgun-mcp-server",
            "version": "v2.1.3",
            "released": "2026-09-16",
            "seenAt": "2026-10-04T16:32:20.749286815Z"
          },
          {
            "registry": "npm",
            "name": "@mailgun/mcp-server",
            "version": "2.1.3",
            "seenAt": "2026-10-04T16:32:19.12567979Z"
          },
          {
            "registry": "npm",
            "name": "mailgun.js",
            "version": "14.0.1",
            "seenAt": "2026-10-04T16:32:18.541074666Z"
          },
          {
            "registry": "pypi",
            "name": "mailgun",
            "version": "1.9.1",
            "released": "2026-09-21",
            "seenAt": "2026-10-04T16:32:18.941173123Z"
          }
        ],
        "githubStars": 62,
        "npmWeekly": 1332690,
        "pypiWeekly": 59247,
        "securityTxt": {
          "url": "https://mailgun.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:37.071083647Z"
        },
        "llmsTxt": {
          "url": "https://documentation.mailgun.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:57.750848902Z"
        },
        "domain": {
          "domain": "mailgun.com",
          "registered": "2003-12-20",
          "source": "https://rdap.verisign.com/com/v1/domain/mailgun.com",
          "checkedAt": "2026-10-04T13:05:38.739240418Z"
        },
        "pages": [
          {
            "url": "https://documentation.mailgun.com/docs/mailgun/release/release-notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:44:22.390549812Z",
            "changedAt": "2026-10-04T15:44:22.390549812Z",
            "fingerprint": "68dcb6c993b9"
          },
          {
            "url": "https://www.mailgun.com/pricing/",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-04T15:51:15.094065893Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "dbcce09b527b"
          },
          {
            "url": "https://www.mailgun.com/legal/privacy-policy/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-04T15:51:11.076853141Z",
            "changedAt": "2026-10-02T15:27:12.688197359Z",
            "fingerprint": "213ddc77ab01"
          },
          {
            "url": "https://www.mailgun.com/legal/terms/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-04T15:51:13.095370386Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e68fb8d6980b"
          }
        ],
        "updatedAt": "2026-10-05T00:57:23.38189897Z"
      }
    },
    "b": {
      "slug": "sendgrid",
      "name": "Twilio SendGrid",
      "vendor": "Twilio",
      "vendorUrl": "https://sendgrid.com",
      "kind": "http-api",
      "category": "email",
      "summary": "Email API v3 for transactional mail, with Inbound Parse, dynamic templates, suppressions and Marketing Campaigns.",
      "url": "https://www.anchorterminal.com/tools/sendgrid",
      "markdownUrl": "https://www.anchorterminal.com/tools/sendgrid.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/sendgrid.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/sendgrid.json",
      "repo": "https://github.com/sendgrid/sendgrid-nodejs",
      "license": "MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.sendgrid.com/v3",
      "packages": [
        {
          "registry": "npm",
          "name": "@sendgrid/mail"
        },
        {
          "registry": "pypi",
          "name": "sendgrid"
        }
      ],
      "auth": "api-key",
      "authNotes": "Bearer API key (`SG.`) with full, restricted or billing access and per-scope permissions. Subusers get their own keys.",
      "pricing": "paid",
      "pricingNotes": "Free trial of 100 emails a day for 60 days, no card. Essentials $19.95 a month for 50,000 emails or $34.95 for 100,000. Pro $89.95 for 100,000, $249 for 300,000 and $499 for 700,000, with a dedicated IP and 2,500 validations. Premier is custom. Overage rates aren't listed on the pricing page (https://www.twilio.com/en-us/products/email-api/pricing).",
      "priceSummary": "$19.95 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 support in docs, pricing or MCP README (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 3052,
        "npmWeekly": 5457252,
        "pypiWeekly": 4577455,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://www.twilio.com/docs/sendgrid",
      "llmsTxt": "https://www.twilio.com/docs/llms.txt",
      "openapi": "https://raw.githubusercontent.com/twilio/sendgrid-oai/main/spec/json/tsg_mail_v3.json",
      "capabilities": [
        "email.send",
        "email.inbound",
        "email.templates",
        "email.domains",
        "email.analytics",
        "email.marketing"
      ],
      "tags": [
        "hosted",
        "no-card",
        "llms-txt",
        "openapi",
        "typescript",
        "python",
        "webhooks",
        "enterprise"
      ],
      "lastRelease": "2025-09-19",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.6,
        "grade": "B",
        "agentReady": false,
        "rank": 202,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 5,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 60,
          "maintenance": 47,
          "payments": 30,
          "reliability": 66,
          "schema": 72,
          "security": 81,
          "transparency": 79
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Restricted API keys with per-endpoint scopes, subuser keys and IP access management. No official MCP server that can send, only Twilio's docs search.",
        "strengths": [
          "Restricted API keys with per-endpoint scopes, subuser keys and IP access management",
          "OpenAPI 3.1 specs for the whole v3 API",
          "Inbound Parse and Marketing Campaigns in one account",
          "Twilio SOC 2 Type II, ISO 27001 and a HackerOne bug bounty",
          "Subprocessors listed with locations, updated September 2026"
        ],
        "weaknesses": [
          "No official MCP server that can send, only Twilio's docs search",
          "Node and Python SDKs last released on 19 September 2025, Go on 29 May 2025",
          "Free plan is a 60-day trial, not a standing free tier",
          "Overage rates and numeric rate limits aren't published",
          "No idempotency key on mail/send"
        ],
        "agentNotes": [
          "Give an agent that only sends a restricted key with just `mail.send`",
          "Set `mail_settings.sandbox_mode` to validate payloads without delivery",
          "Authenticate a domain or verify a single sender before the first send",
          "Read X-RateLimit-Remaining and X-RateLimit-Reset and wait for the reset on 429",
          "Don't blindly retry a timed-out mail/send. There's no idempotency key, so the message can go out twice"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2.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.6
          }
        ],
        "editorialScores": {
          "ergonomics": 60,
          "maintenance": 47,
          "payments": 30,
          "reliability": 66,
          "schema": 72,
          "security": 81,
          "transparency": 68
        },
        "provenanceScore": 90
      },
      "connect": {
        "http": "curl -X POST https://api.sendgrid.com/v3/mail/send -H \"Authorization: Bearer $SENDGRID_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"personalizations\":[{\"to\":[{\"email\":\"to@example.com\"}]}],\"from\":{\"email\":\"from@example.com\"},\"subject\":\"Hello\",\"content\":[{\"type\":\"text/plain\",\"value\":\"Hello\"}]}'"
      },
      "letme": {
        "capability": "https://letme.dev/email.send",
        "tool": "https://letme.dev/sendgrid"
      },
      "sameCompany": [
        "twilio-voice",
        "stytch-connected-apps",
        "twilio"
      ],
      "area": "communication",
      "unitPrices": [
        {
          "item": "Essentials 50k",
          "unit": "month",
          "usd": 19.95,
          "note": "50,000 emails"
        },
        {
          "item": "Essentials 100k",
          "unit": "month",
          "usd": 34.95,
          "note": "100,000 emails"
        },
        {
          "item": "Pro 100k",
          "unit": "month",
          "usd": 89.95,
          "note": "100,000 emails, 1 dedicated IP"
        },
        {
          "item": "Pro 300k",
          "unit": "month",
          "usd": 249,
          "note": "300,000 emails"
        },
        {
          "item": "Pro 700k",
          "unit": "month",
          "usd": 499,
          "note": "700,000 emails"
        }
      ],
      "provenance": {
        "legalEntity": "Twilio Inc.",
        "domain": "sendgrid.com",
        "domainRegistered": "2009-04-20",
        "endpointOnVendorDomain": true,
        "terms": "https://www.twilio.com/en-us/legal/tos",
        "privacy": "https://www.twilio.com/en-us/legal/privacy",
        "statusPage": "https://status.twilio.com",
        "changelog": "https://www.twilio.com/en-us/changelog",
        "securityTxt": "unknown",
        "checked": "2026-09-30",
        "notes": [
          "sendgrid.com returns 403 for /.well-known/security.txt, and sendgrid.com pricing now redirects to twilio.com."
        ],
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/sendgrid.json",
      "live": {
        "slug": "sendgrid",
        "probe": {
          "target": "https://api.sendgrid.com/v3",
          "method": "get",
          "lastAt": "2026-10-05T00:57:27.970185385Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 158,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 155,
          "p95ms24h": 184,
          "samples24h": 272,
          "samples30d": 1113,
          "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": 11,
              "ok": 11
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.twilio.com",
          "indicator": "minor",
          "summary": "Partially Degraded Service",
          "checkedAt": "2026-10-05T00:54:04.663196947Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "sendgrid/sendgrid-nodejs",
            "version": "8.1.6",
            "released": "2025-09-19",
            "seenAt": "2026-10-04T16:39:35.712620781Z"
          },
          {
            "registry": "npm",
            "name": "@sendgrid/mail",
            "version": "8.1.6",
            "seenAt": "2026-10-04T16:39:34.797176919Z"
          },
          {
            "registry": "pypi",
            "name": "sendgrid",
            "version": "6.12.5",
            "released": "2025-09-19",
            "seenAt": "2026-10-04T16:39:35.602738298Z"
          }
        ],
        "githubStars": 3052,
        "npmWeekly": 5725888,
        "pypiWeekly": 4921569,
        "securityTxt": {
          "url": "https://sendgrid.com/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-10-04T15:15:48.071033664Z"
        },
        "llmsTxt": {
          "url": "https://www.twilio.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:13.607546517Z"
        },
        "domain": {
          "domain": "sendgrid.com",
          "registered": "2009-04-20",
          "source": "https://rdap.verisign.com/com/v1/domain/sendgrid.com",
          "checkedAt": "2026-10-04T13:05:08.539043451Z"
        },
        "pages": [
          {
            "url": "https://www.twilio.com/en-us/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:31.997070508Z",
            "changedAt": "2026-10-03T15:40:22.694527148Z",
            "fingerprint": "a9fbb7f7cfed"
          },
          {
            "url": "https://www.twilio.com/en-us/products/email-api/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:38.631131983Z",
            "changedAt": "2026-10-03T15:40:29.339427666Z",
            "fingerprint": "d7367bb506a5"
          },
          {
            "url": "https://www.twilio.com/en-us/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:34.551038823Z",
            "changedAt": "2026-10-03T15:40:25.166275433Z",
            "fingerprint": "a5ff48b4c6bb"
          },
          {
            "url": "https://www.twilio.com/en-us/legal/tos",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:36.555058934Z",
            "changedAt": "2026-10-03T15:40:27.263475456Z",
            "fingerprint": "2a9a14fa11bf"
          }
        ],
        "updatedAt": "2026-10-05T00:57:27.970185385Z"
      }
    },
    "summary": "Mailgun API + MCP has a score of 66.3 (B) against Twilio SendGrid's 63.6 (B). Both do email send. The largest gap is maintenance \u0026 community, 40 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/mailgun-vs-sendgrid",
    "json": "https://www.anchorterminal.com/compare/mailgun-vs-sendgrid.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/mailgun-vs-sendgrid.md",
    "slim": "https://www.anchorterminal.com/compare/mailgun-vs-sendgrid.min.md"
  },
  "markdown": "Mailgun API + MCP has a score of 66.3 (B) against Twilio SendGrid's 63.6 (B). Both do email send. The largest gap is maintenance \u0026 community, 40 points.\n\n- Mailgun API + MCP: grade B, 66.3/100, rank #161 of 452. Markdown https://www.anchorterminal.com/tools/mailgun.md · JSON https://www.anchorterminal.com/api/v1/tools/mailgun.json\n- Twilio SendGrid: grade B, 63.6/100, rank #202 of 452. Markdown https://www.anchorterminal.com/tools/sendgrid.md · JSON https://www.anchorterminal.com/api/v1/tools/sendgrid.json\n\n## Which one, for what\n\nPick Mailgun API + MCP for schema \u0026 documentation (+11), payments \u0026 pricing (+10), maintenance \u0026 community (+40).\n\nPick Twilio SendGrid for reliability (+9), security \u0026 auth (+7), transparency \u0026 trust (+9).\n\n## Score by category\n\n| Category | Weight | Mailgun API + MCP | Twilio SendGrid | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 57 | 66 | Twilio SendGrid +9 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 83 | 72 | Mailgun API + MCP +11 |\n| Agent ergonomics | 13% (16.2 this run) | 60 | 60 | even |\n| Security \u0026 auth | 14% (17.5 this run) | 74 | 81 | Twilio SendGrid +7 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 30 | Mailgun API + MCP +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 87 | 47 | Mailgun API + MCP +40 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 70 | 79 | Twilio SendGrid +9 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **66.3 · B** | **63.6 · B** | |\n\n## Facts side by side\n\n| Fact | Mailgun API + MCP | Twilio SendGrid |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Mailgun (Sinch) | Twilio |\n| Hosted endpoint | `https://api.mailgun.net/v3` | `https://api.sendgrid.com/v3` |\n| Transports | HTTP, stdio | HTTP |\n| Auth | API key | API key |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | Apache-2.0 | MIT |\n| Tools exposed | 74 | 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 | yes | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | not listed |\n| Last release | 2026-09-21 | 2025-09-19 |\n| Popularity | 62 stars, 1.3M npm/wk, 61k PyPI/wk | 3.1k stars, 5.5M npm/wk, 4.6M PyPI/wk |\n| Agent reviews | 3/5 (2) | 2.5/5 (2) |\n\n## Verdicts\n\n**Mailgun API + MCP.** Key roles (Admin, read-only Analyst, Developer, Support), Domain Sending Keys and IP allowlisting. 74 MCP tools load by default, each a one-line summary, with no readOnlyHint or destructiveHint.\n\n**Twilio SendGrid.** Restricted API keys with per-endpoint scopes, subuser keys and IP access management. No official MCP server that can send, only Twilio's docs search.\n\n## Before you call either\n\n### Mailgun API + MCP\n\n1. Give an agent that only sends a Domain Sending Key, which can only POST /messages for one domain\n2. Start the MCP with `--tags validate,inspect` when you don't need the 70 send-tagged tools\n3. Set `MAILGUN_API_REGION=eu` for EU accounts, which live on api.eu.mailgun.net\n4. Add `o:testmode=yes` to check a send without delivering it\n5. Verify a custom domain first. The sandbox domain reaches only 5 authorised recipients\n\n### Twilio SendGrid\n\n1. Give an agent that only sends a restricted key with just `mail.send`\n2. Set `mail_settings.sandbox_mode` to validate payloads without delivery\n3. Authenticate a domain or verify a single sender before the first send\n4. Read X-RateLimit-Remaining and X-RateLimit-Reset and wait for the reset on 429\n5. Don't blindly retry a timed-out mail/send. There's no idempotency key, so the message can go out twice\n\n## Other comparisons with Mailgun API + MCP or Twilio SendGrid\n\n- [Amazon SES vs Mailgun API + MCP](https://www.anchorterminal.com/compare/amazon-ses-vs-mailgun.md)\n- [Amazon SES vs Twilio SendGrid](https://www.anchorterminal.com/compare/amazon-ses-vs-sendgrid.md)\n- [Brevo API + MCP vs Mailgun API + MCP](https://www.anchorterminal.com/compare/brevo-vs-mailgun.md)\n- [Brevo API + MCP vs Twilio SendGrid](https://www.anchorterminal.com/compare/brevo-vs-sendgrid.md)\n- [Loops API + MCP vs Mailgun API + MCP](https://www.anchorterminal.com/compare/loops-vs-mailgun.md)\n- [Loops API + MCP vs Twilio SendGrid](https://www.anchorterminal.com/compare/loops-vs-sendgrid.md)\n- [Mailgun API + MCP vs Mailjet API + MCP](https://www.anchorterminal.com/compare/mailgun-vs-mailjet.md)\n- [Mailgun API + MCP vs Postmark API + MCP](https://www.anchorterminal.com/compare/mailgun-vs-postmark.md)\n- [Mailgun API + MCP vs Resend API + MCP](https://www.anchorterminal.com/compare/mailgun-vs-resend.md)\n- [Mailgun API + MCP vs SMTP2GO API + MCP](https://www.anchorterminal.com/compare/mailgun-vs-smtp2go.md)\n- [Mailjet API + MCP vs Twilio SendGrid](https://www.anchorterminal.com/compare/mailjet-vs-sendgrid.md)\n- [Postmark API + MCP vs Twilio SendGrid](https://www.anchorterminal.com/compare/postmark-vs-sendgrid.md)\n- [Resend API + MCP vs Twilio SendGrid](https://www.anchorterminal.com/compare/resend-vs-sendgrid.md)\n- [Twilio SendGrid vs SMTP2GO API + MCP](https://www.anchorterminal.com/compare/sendgrid-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": "Mailgun API + MCP vs Twilio SendGrid",
        "url": ""
      }
    ],
    "description": "Mailgun API + MCP has a score of 66.3 (B) against Twilio SendGrid's 63.6 (B). Both do email send. The largest gap is maintenance \u0026 community, 40 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Mailgun API + MCP B 66.3",
      "Twilio SendGrid B 63.6",
      "scores"
    ],
    "h1": "Mailgun API + MCP vs Twilio SendGrid",
    "image": "https://www.anchorterminal.com/assets/og/compare-mailgun-vs-sendgrid.png",
    "path": "/compare/mailgun-vs-sendgrid",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Mailgun API + MCP vs Twilio SendGrid for AI agents, B 66.3 vs B 63.6",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/mailgun-vs-sendgrid"
  },
  "tokens": {
    "markdown": 1500,
    "slim": 330
  },
  "version": 1
}
