{
  "data": {
    "a": {
      "slug": "email-agent-mcp",
      "name": "email-agent-mcp",
      "vendor": "UseJunior",
      "vendorUrl": "https://github.com/UseJunior/email-agent-mcp",
      "kind": "mcp",
      "category": "mailbox-access",
      "summary": "email-agent-mcp is an open-source local MCP server from UseJunior that lets an agent read, search, draft, send and file mail in a person's own Microsoft 365 or Gmail mailbox, with allowlists and delete disabled by default.",
      "url": "https://www.anchorterminal.com/tools/email-agent-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/email-agent-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/email-agent-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/email-agent-mcp.json",
      "dns": "email-agent-mcp.grade.anchorterminal.com",
      "repo": "https://github.com/UseJunior/email-agent-mcp",
      "license": "Apache-2.0",
      "transports": [
        "stdio"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "email-agent-mcp"
        }
      ],
      "auth": "oauth",
      "authNotes": "Signs in to the person's own mailbox with OAuth: Microsoft delegated scopes through MSAL, or Gmail `gmail.readonly` and `gmail.compose`. Tokens are kept in the OS keychain and local files under `~/.email-agent-mcp/`. For Gmail, a UseJunior-run broker on Vercel holds the OAuth client secret and relays code exchange and token refresh; mail itself goes straight to Google.",
      "pricing": "free",
      "pricingNotes": "Free, Apache-2.0 software run locally with npx. It uses the person's existing Microsoft 365 or Gmail account; there is nothing to buy from UseJunior.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the repository or README (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": 27,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 394,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://github.com/UseJunior/email-agent-mcp#readme",
      "registryName": "io.github.UseJunior/email-agent-mcp",
      "capabilities": [
        "mailbox.read",
        "mailbox.search",
        "mailbox.send",
        "mailbox.drafts"
      ],
      "tags": [
        "open-source",
        "local",
        "mcp",
        "mcp-registry",
        "oauth",
        "microsoft-graph",
        "gmail",
        "typescript",
        "approvals",
        "pre-1.0"
      ],
      "lastRelease": "2026-11-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 65.9,
        "grade": "B",
        "agentReady": false,
        "rank": 397,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 4,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 79,
          "maintenance": 84,
          "payments": 60,
          "reliability": 50,
          "schema": 79,
          "security": 67,
          "transparency": 42
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "A local MCP server for a person's own Outlook or Gmail mailbox with careful defaults, a read-only scope profile, send allowlists, gated deletes and annotated tools, released weekly under Apache-2.0. It is pre-1.0 from one maintainer, Gmail lacks label and move support, and Gmail sign-in relies on UseJunior's hosted broker.",
        "bestFor": "A person who wants an agent working in their own Outlook mailbox, or reading and drafting in Gmail, with guardrails.",
        "strengths": [
          "The `observe` profile requests read-only Microsoft scopes and drops every write tool",
          "Send allowlists, delete disabled by default and sanitised errors that strip keys and paths",
          "Tools carry readOnlyHint and destructiveHint annotations and are typed",
          "Apache-2.0, CI with tests and coverage, semgrep and semver tags with GitHub Releases",
          "Listed in the official MCP registry as io.github.UseJunior/email-agent-mcp, current at 0.5.0"
        ],
        "weaknesses": [
          "Pre-1.0, and every commit is by one maintainer",
          "On Gmail, labelling, flagging, marking read and moving return NOT_SUPPORTED",
          "Gmail sign-in and token refresh pass through a UseJunior-hosted broker that holds the client secret",
          "No audit log of what the agent did beyond the mailbox's own history",
          "Changing from `full` to `observe` on an existing mailbox doesn't shrink the OAuth token's scopes"
        ],
        "agentNotes": [
          "Start with `get_mailbox_status`, then `list_emails` or `search_emails` before reading whole threads",
          "Ask the person to set the send allowlist before planning any `send_email` or `reply_to_email`",
          "Prefer `create_draft` and let the person send, unless they asked for sending",
          "Expect NOT_SUPPORTED for label, flag, mark-read and move on Gmail, and don't request `gmail.modify` to work around it",
          "Don't plan deletes; they need an operator environment variable and a caller flag"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 65.9
          }
        ],
        "editorialScores": {
          "ergonomics": 79,
          "maintenance": 84,
          "payments": 60,
          "reliability": 50,
          "schema": 79,
          "security": 67,
          "transparency": 62
        },
        "provenanceScore": 22,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npx -y email-agent-mcp",
        "claudeCode": "claude mcp add email-agent-mcp -- npx -y email-agent-mcp",
        "config": {
          "mcpServers": {
            "email-agent-mcp": {
              "args": [
                "-y",
                "email-agent-mcp"
              ],
              "command": "npx",
              "type": "stdio"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/mailbox.read",
        "tool": "https://letme.dev/email-agent-mcp"
      },
      "area": "communication",
      "provenance": {
        "legalEntity": "",
        "domain": "usejunior.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": false,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/UseJunior/email-agent-mcp/releases",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "Published by UseJunior; the README links usejunior.com, and SECURITY.md asks for reports to the maintainer's usejunior.com address with acknowledgement within 3 business days.",
          "No terms or privacy policy apply to the local server; the Gmail OAuth broker is a UseJunior-hosted service whose own terms weren't found.",
          "The repository's CHANGELOG.md points to GitHub Releases as the canonical changelog.",
          "GitHub's API refused our requests for its rate limit on 6 November 2026, so stars, issues and release pages weren't read; history and tags come from a shallow clone."
        ],
        "score": 22
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/email-agent-mcp.json",
      "live": {
        "slug": "email-agent-mcp",
        "versions": [
          {
            "registry": "github",
            "name": "UseJunior/email-agent-mcp",
            "version": "v0.5.0",
            "released": "2026-11-05",
            "seenAt": "2026-11-06T23:23:57.05382018Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.UseJunior/email-agent-mcp",
            "version": "0.5.0",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          },
          {
            "registry": "npm",
            "name": "email-agent-mcp",
            "version": "0.5.0",
            "seenAt": "2026-11-06T23:23:56.286985184Z"
          }
        ],
        "githubStars": 7,
        "npmWeekly": 394,
        "securityTxt": {
          "url": "https://usejunior.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:16.157898877Z"
        },
        "updatedAt": "2026-11-07T18:16:28.95801333Z"
      }
    },
    "answer": "Gmail API scores 78.6 (A) on agent readiness against email-agent-mcp's 65.9 (B), and leads in 6 of 7 scored categories. email-agent-mcp leads on payments \u0026 pricing.",
    "b": {
      "slug": "gmail-api",
      "name": "Gmail API",
      "vendor": "Google",
      "vendorUrl": "https://developers.google.com/workspace/gmail",
      "kind": "http-api",
      "category": "mailbox-access",
      "summary": "Google's REST API for Gmail mailboxes. It searches and reads messages and threads, writes drafts, sends mail, manages labels and settings, and reports mailbox changes through history records and Cloud Pub/Sub push notifications. Access is by OAuth 2.0.",
      "url": "https://www.anchorterminal.com/tools/gmail-api",
      "markdownUrl": "https://www.anchorterminal.com/tools/gmail-api.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/gmail-api.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/gmail-api.json",
      "dns": "gmail-api.grade.anchorterminal.com",
      "repo": "https://github.com/googleapis/google-api-nodejs-client",
      "license": "Apache-2.0 (client libraries)",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://gmail.googleapis.com/gmail/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "@googleapis/gmail"
        },
        {
          "registry": "pypi",
          "name": "google-api-python-client"
        }
      ],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 access token as a Bearer header, from a Google Cloud project with the Gmail API enabled and an OAuth consent screen. Self-serve for personal use, testing and apps internal to one Workspace organisation. A public app that requests any of the eight restricted scopes, which include `gmail.readonly` and `gmail.metadata`, needs Google's restricted-scope verification, and a CASA security assessment every 12 months if it reaches the data from or through a server. Workspace domains can use a service account with domain-wide delegation. The MCP server needs your own OAuth client ID and secret marked as 'Use this client for an AI-powered agent', the `gmail.readonly` and `gmail.compose` scopes, and Developer Preview Programme membership. From 11 November 2026 Workspace MCP servers reject clients not marked that way.",
      "pricing": "free",
      "pricingNotes": "All standard use is at no extra cost, and a free Google account and Cloud project are enough to start, with no card or contract. Limits are 1,200,000 quota units a minute per project, 6,000 a minute per user and a daily threshold of 80,000,000 units per project. Google says use above the daily threshold is planned to be charged to the Cloud billing account later in 2026, with details and at least 90 days' notice still to come (https://developers.google.com/workspace/gmail/api/reference/quota). A security assessment for restricted scopes is paid to a third-party assessor, at a cost Google's pages don't state.",
      "priceSummary": "Free",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Gmail API guides, the quota page or the discovery document (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 23,
      "popularity": {
        "githubStars": 12262,
        "npmWeekly": 1091106,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developers.google.com/workspace/gmail/api/guides",
      "capabilities": [
        "mailbox.read",
        "mailbox.search",
        "mailbox.send",
        "mailbox.drafts",
        "mailbox.sync"
      ],
      "tags": [
        "hosted",
        "official",
        "free-tier",
        "mcp",
        "webhooks",
        "oauth",
        "typescript",
        "python",
        "enterprise"
      ],
      "lastRelease": "2026-10-14",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 78.6,
        "grade": "A",
        "agentReady": true,
        "rank": 21,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 2,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 82,
          "maintenance": 85,
          "payments": 35,
          "reliability": 90,
          "schema": 87,
          "security": 81,
          "transparency": 82
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-01"
        },
        "negative": 0,
        "verdict": "Fourteen OAuth scopes separate labels, sending, metadata and read-only access, and the quota page gives every method a unit cost. Eight of the scopes are restricted, read-only and metadata among them, so a public app that reads mail needs Google's verification and an annual third-party security assessment. Gmail mailboxes only.",
        "bestFor": "An agent working in a Gmail or Google Workspace user's own mailbox, with search, threads, drafts, labels and incremental sync at no per-account fee.",
        "strengths": [
          "14 OAuth scopes, with `gmail.labels` non-sensitive, `gmail.send` sensitive and permanent delete reserved for the full `https://mail.google.com/` scope",
          "Quota published per method, 5 units for `messages.list`, 20 for `messages.get` and 100 for `messages.send`, against 6,000 units a minute per user",
          "`history.list` and Pub/Sub push notifications give incremental sync from a stored `historyId`",
          "`format=metadata`, `metadataHeaders`, `maxResults` and `fields` keep responses small",
          "No charge for standard use, up to 80,000,000 quota units a day per project"
        ],
        "weaknesses": [
          "Eight restricted scopes, including `gmail.readonly` and `gmail.metadata`, need restricted-scope verification for a public app",
          "An app that stores or transmits restricted data on servers needs a security assessment by a Google-approved assessor every 12 months",
          "No idempotency key on `messages.send`, and the error guide says a 200 response doesn't confirm the mail was sent",
          "MCP server limited to the Developer Preview Programme, with no send tool, and from 11 November 2026 only for OAuth clients marked as AI agents",
          "Price for use above the daily quota not yet published"
        ],
        "agentNotes": [
          "Ask for the narrowest scope. `gmail.labels` is non-sensitive and `gmail.send` is sensitive, while every scope that reads mail is restricted",
          "List with `messages.list` and `q` in Gmail search syntax, then fetch each ID with `format=metadata` or `full`. List calls return IDs only",
          "Send by posting an RFC 2822 message, base64url encoded, in `raw`. Set `threadId` and matching reply headers to stay in a thread",
          "Store the `historyId` and call `history.list`. On a 404, run a full sync. Call `watch` again at least every 7 days",
          "Back off exponentially on 403 and 429 rate errors, and keep batches to 50 requests or fewer"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "A",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 78.6
          }
        ],
        "editorialScores": {
          "ergonomics": 82,
          "maintenance": 85,
          "payments": 35,
          "reliability": 90,
          "schema": 87,
          "security": 81,
          "transparency": 69
        },
        "provenanceScore": 95,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-01",
            "maintenance": "2026-11-01",
            "payments": "2026-11-01",
            "reliability": "2026-11-01",
            "schema": "2026-11-01",
            "security": "2026-11-01",
            "transparency": "2026-11-01"
          },
          "last": "2026-11-01",
          "lastMoved": "2026-10-17",
          "oldest": "2026-11-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl \"https://gmail.googleapis.com/gmail/v1/users/me/messages?q=is:unread\u0026maxResults=5\" \\\n  -H \"Authorization: Bearer $GOOGLE_ACCESS_TOKEN\"",
        "config": {
          "mcpServers": {
            "gmail": {
              "oauth": {
                "clientId": "OAUTH_CLIENT_ID",
                "clientSecret": "OAUTH_CLIENT_SECRET"
              },
              "serverUrl": "https://gmailmcp.googleapis.com/mcp/v1"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/mailbox.read",
        "tool": "https://letme.dev/gmail-api"
      },
      "sameCompany": [
        "gemini-api",
        "vertex-ai",
        "gemini-embedding",
        "vertex-ai-tuning",
        "cloud-run-gpus",
        "google-model-armor",
        "google-imagen",
        "google-veo",
        "google-lyria",
        "google-speech-to-text",
        "google-cloud-tts",
        "gemini-live",
        "google-adk",
        "google-memory-bank",
        "google-secret-manager",
        "google-cloud-document-ai",
        "google-weather-api",
        "chrome-devtools-mcp",
        "google-maps-platform",
        "google-cloud-translation",
        "google-calendar-api",
        "firebase-cloud-messaging",
        "google-cloud-storage",
        "google-drive-api",
        "gemini-enterprise",
        "gemini-cli",
        "google-search-console",
        "google-ads-api",
        "google-forms",
        "google-sheets-api",
        "google-people-api"
      ],
      "area": "communication",
      "provenance": {
        "legalEntity": "Google LLC",
        "domain": "google.com",
        "domainRegistered": "1997-09-15",
        "domainNote": "The endpoint is on gmail.googleapis.com, Google's API domain. google.com was registered in 1997.",
        "endpointOnVendorDomain": true,
        "terms": "https://developers.google.com/terms",
        "privacy": "https://policies.google.com/privacy",
        "statusPage": "https://www.google.com/appsstatus/dashboard/",
        "changelog": "https://developers.google.com/workspace/gmail/release-notes",
        "securityTxt": "valid",
        "checked": "2026-11-01",
        "notes": [
          "The Google APIs Terms of Service (last modified 9 November 2021) name Google LLC, 1600 Amphitheatre Parkway, Mountain View, per the 8 October check.",
          "RDAP for google.com gives a registration date of 1997-09-15.",
          "www.google.com/.well-known/security.txt expires on 1 April 2030 and lists a contact and the vulnerability reward policy, re-read on 2026-11-01.",
          "The release notes page's newest entry is still 12 October 2026 on 1 November.",
          "Google publishes a discovery document for the API, not an OpenAPI spec.",
          "The Workspace status dashboard tracks the Gmail product, not the API on its own."
        ],
        "score": 95
      },
      "requirements": {
        "setupChecked": true,
        "complianceChecked": true,
        "card": "no",
        "freeTier": true,
        "minutes": 15,
        "credential": "oauth",
        "hosting": [
          "global",
          "US",
          "EU"
        ],
        "euResidency": "enterprise",
        "trainsOnData": "no",
        "zeroRetention": "no",
        "certifications": [
          "SOC 2 Type II",
          "ISO 27001",
          "ISO 27701",
          "HIPAA (BAA available)",
          "GDPR"
        ],
        "dpa": true,
        "selfHost": "no"
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/gmail-api.json",
      "live": {
        "slug": "gmail-api",
        "probe": {
          "target": "https://gmail.googleapis.com/gmail/v1",
          "method": "get",
          "lastAt": "2026-11-07T19:22:08.960415351Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 36,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 37,
          "p95ms24h": 105,
          "samples24h": 238,
          "samples30d": 7473,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 93,
              "ok": 93
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.google.com/appsstatus/dashboard",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:47:51.019107417Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "googleapis/google-api-nodejs-client",
            "version": "curationpartners-v3.1.0",
            "released": "2026-10-30",
            "seenAt": "2026-11-06T23:28:47.150138177Z"
          },
          {
            "registry": "npm",
            "name": "@googleapis/gmail",
            "version": "22.0.2",
            "seenAt": "2026-11-06T23:28:46.694055616Z"
          },
          {
            "registry": "pypi",
            "name": "google-api-python-client",
            "version": "2.201.0",
            "released": "2026-09-30",
            "seenAt": "2026-11-06T23:28:46.981941932Z"
          }
        ],
        "githubStars": 12287,
        "npmWeekly": 1604363,
        "pypiWeekly": 33118233,
        "securityTxt": {
          "url": "https://google.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2030-04-01T00:00:00z",
          "checkedAt": "2026-11-07T16:01:22.068349931Z"
        },
        "domain": {
          "domain": "google.com",
          "registered": "1997-09-15",
          "source": "https://rdap.verisign.com/com/v1/domain/google.com",
          "checkedAt": "2026-11-01T14:17:18.719851913Z"
        },
        "pages": [
          {
            "url": "https://developers.google.com/workspace/gmail/release-notes",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-11-07T14:04:29.762125175Z",
            "changedAt": "2026-11-02T07:12:53.475850219Z",
            "fingerprint": "be53d28f232a"
          },
          {
            "url": "https://developers.google.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:49.55137795Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2eb11136bf24"
          }
        ],
        "github": {
          "repo": "googleapis/google-api-nodejs-client",
          "checkedAt": "2026-11-02T08:52:10.522231186Z",
          "stars": 12283,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-30T15:41:41Z",
          "openIssues": 209,
          "openPRs": 15,
          "issuesOpened90d": 0,
          "issuesClosed90d": 2,
          "prsMerged90d": 72,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 50,
            "failure": 0,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-10-30T15:43:54Z"
          },
          "replies": {
            "sampled": 25,
            "unanswered": 8,
            "medianDays": 8.2
          }
        },
        "updatedAt": "2026-11-07T19:22:08.960415351Z"
      }
    },
    "edges": [
      {
        "by": 40,
        "category": "reliability",
        "leads": "gmail-api",
        "name": "Reliability",
        "reasons": {
          "a": "Graded with the lines for local packages and stdio MCP servers. Installs from the official npm package `email-agent-mcp` with npx, CI runs on Node 20 (20). A CI workflow with Vitest tests, Codecov and a spec-coverage gate; the run results weren't readable through GitHub's API that day, so partial (20 of 25). Open crash and regression issues couldn't be read because GitHub's API refused our requests for its rate limit (0, unchecked). Semver tags from v0.1.7 to v0.5.0 and auto-categorised GitHub Releases as the changelog, with no breaking changes marked in what we read (10 of 15). Pre-1.0 (0). Total 50.",
          "b": "Graded on the REST API with the hosted lines. The Google Workspace Status Dashboard lists Gmail with an incidents feed that goes back to October 2025 (20). In the 90 days to 1 November 2026 the feed, re-read that day, has one Gmail entry, a low-severity notice from 18 to 24 September about the Gmail Android app, with no entry that touches the service or the API, and its newest entry for any product began on 25 September. The last service disruption for Gmail was 56 minutes on 31 May 2026, across several Workspace products. The dashboard tracks the Gmail product, not the API alone (30). 1,200,000 quota units a minute per project, 6,000 a minute per user and 80,000,000 a day per project, with a unit cost for every method, re-read on 1 November (15). 403 and 429 rate errors with a truncated exponential backoff formula, and 429s for sending and bandwidth limits that carry a retry time. `messages.send` has no idempotency key, and the error guide says a 200 response doesn't mean the mail was sent (10). The Workspace SLA (last modified 31 August 2026, re-read on 1 November) covers Gmail at 99.9 per cent but measures downtime in the user web interface and doesn't name the API, read the same way as for Drive (5). The REST API is GA. The MCP server is a developer preview (10)."
        },
        "scores": {
          "a": 50,
          "b": 90
        }
      },
      {
        "by": 40,
        "category": "transparency",
        "leads": "gmail-api",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Apache-2.0 with a LICENSE file (30). SECURITY.md says tokens and mail are handled locally over stdio with no network listener, and the broker README says mail never reaches the broker and refresh tokens aren't stored. The broker has no published privacy policy (22 of 30). No deprecation policy (0). No telemetry was found in the README or package manifests, and none is stated either way (10 of 20). Total 62.",
          "b": "Closed service under the Google APIs Terms of Service (last modified 9 November 2021), with Apache-2.0 client libraries (15). The Cloud Data Processing Addendum commits Google to delete Workspace customer data within a maximum of 180 days of a deletion, and the Workspace developer policy limits what third-party apps may do with Gmail data, including no transfer for advertising and no training of general models. We found no retention statement for personal accounts' data reached through the API, and didn't read the privacy policy text, per the 8 October check (20). Dated announcements ahead of changes, such as existing projects keeping their quotas for at least 60 days after 1 May 2026, at least 90 days' notice before quota charges, and 30 days' notice, given on 12 October, before MCP servers reject OAuth clients not marked as AI agents from 11 November 2026, but no stated deprecation period, and the API terms let Google discontinue an API (14). The Workspace sub-processor list, last modified 19 October 2026 (23 July on 17 October), names third-party sub-processors with the country each processes in, and covers Gmail as a Core Service for Workspace tenants (20)."
        },
        "scores": {
          "a": 42,
          "b": 82
        }
      },
      {
        "by": 25,
        "category": "payments",
        "leads": "email-agent-mcp",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "Free, Apache-2.0 software with nothing to buy, scored 20 + 20 + 20 by the self-hosted rule. No payment protocol (0 of 40). Total 60.",
          "b": "No x402, MPP or L402 (0). Free within published quotas, with a unit cost for every method, but the price for use above 80,000,000 units a day, planned for later in 2026, isn't published on the quota page on 1 November, which still promises at least 90 days' notice (15). No charge for standard use and no card needed to enable the API (20). A person creates a Cloud project and an OAuth consent screen, a user consents in a browser, and a public app with restricted scopes goes through verification and a security assessment (0)."
        },
        "scores": {
          "a": 60,
          "b": 35
        }
      },
      {
        "by": 14,
        "category": "security",
        "leads": "gmail-api",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "OAuth to the person's own provider with the scopes each profile needs, tokens in the OS keychain, and an `observe` profile with Microsoft read scopes only. Gmail uses `gmail.readonly` and `gmail.compose`, and its code exchange and refreshes relay through a UseJunior-hosted broker that holds the client secret and says it stores no refresh tokens (25 of 30). Send allowlists, delete off by default behind an operator variable and a caller flag, inbox rules that block forwarding and deletion, and protected system folders (20). Receive allowlists limit whose mail the agent acts on; no guidance on treating message bodies as untrusted was found (9 of 15). No log of tool calls beyond the mailbox's own history (3 of 15). SECURITY.md with private reporting and acknowledgement within 3 business days, semgrep in CI; no bug bounty or advisories (10 of 20). Total 67.",
          "b": "OAuth 2.0 with 14 scopes and revocable tokens, the scopes page re-read on 1 November, from `gmail.labels` and `gmail.send` up to the full `https://mail.google.com/` scope. The discovery document, revision 20261026, still lists `access_token` and `oauth_token` as query parameters, and Google's OAuth guide, re-read on 1 November, shows the query string as an alternative while calling the header preferable, so the checklist's 10-point deduction applies (30 less 10, 20). `gmail.readonly`, `gmail.metadata` (headers and labels, no bodies), `gmail.labels` and `gmail.send` for least privilege, and permanent delete only under the full scope. Nothing in the API confirms a send or a delete, and every scope that reads mail is restricted (17). The MCP guide warns about indirect prompt injection through email, requires screening of prompts and responses with Model Armor or a documented alternative, and tells operators to review actions. The REST guides say nothing on it (12). Workspace OAuth log events record the API name, method, OAuth client ID and scopes, with the investigation tool limited to higher editions, and no per-call log for personal accounts was found (12). security.txt valid to 2030 with the Google VRP, and the Google Workspace SOC 2 Type II reports, issued quarterly, list Gmail and the Gmail REST API in scope. Apps holding restricted data must pass a CASA assessment every 12 months (20)."
        },
        "scores": {
          "a": 67,
          "b": 81
        }
      },
      {
        "by": 8,
        "category": "schema",
        "leads": "gmail-api",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "Tools are defined with typed input schemas that the MCP SDK publishes as JSON Schema (25). README in five languages, AGENTS.md, CLAUDE.md and GEMINI.md; no llms.txt, which a local server doesn't need (5 of 10). The README's tool table marks each tool read, write or destructive and states provider limits, such as Gmail deletes removing drafts only (15 of 20). Typed inputs with options such as `list_style` (12 of 15). Setup examples per client and documented error behaviour, such as NOT_SUPPORTED on Gmail and sanitised errors (10 of 15). Semver tags and GitHub Releases (12 of 15). Total 79.",
          "b": "Google publishes a discovery document, not OpenAPI, which is a machine-readable contract all the same, at revision 20261026 with 79 methods on 1 November. The preview MCP server's 23 tools each carry typed input and output schemas (25). No llms.txt, and developers.google.com/llms.txt, /workspace/llms.txt and /workspace/gmail/llms.txt returned 404 on 17 October, but doc pages return Markdown (the quota, scopes, release notes and error pages did on 1 November) when `.md.txt` is appended to the URL, which we found no index or link advertising, read as for Drive, Sheets and Forms (5 of 10). Method descriptions say what each call does and sometimes what to call in its place, such as `messages.delete` pointing to `messages.trash`, and the MCP tool descriptions name the tool to use first (16). Typed parameters with enums such as `format` and defaults such as `userId=me`, but a sent message is one base64url RFC 2822 string in `raw` and search is one free-text `q` string (11). An error guide with a JSON sample and a fix for each reason, and code samples across the guides (15). v1 in the path and dated release notes, though the last entry for the core API is 1 May 2026, the 12 October entry concerns the MCP server, and the growth of the MCP server from 10 tools to 23 isn't recorded there (15)."
        },
        "scores": {
          "a": 79,
          "b": 87
        }
      }
    ],
    "facts": [
      {
        "a": "MCP server",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "UseJunior",
        "b": "Google",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://gmail.googleapis.com/gmail/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "stdio",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0",
        "b": "Apache-2.0 (client libraries)",
        "name": "Licence"
      },
      {
        "a": "27",
        "b": "23",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "io.github.UseJunior/email-agent-mcp",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-11-05",
        "b": "2026-10-14",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "2021-11-09",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2026-10-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "394 npm/wk",
        "b": "12k stars, 1.1M npm/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Gmail API scores 78.6 (A) on agent readiness against email-agent-mcp's 65.9 (B), and leads in 6 of 7 scored categories. email-agent-mcp leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, email-agent-mcp or Gmail API?"
      },
      {
        "answer": "Both use an OAuth sign-in.",
        "question": "Do email-agent-mcp and Gmail API need an API key?"
      },
      {
        "answer": "email-agent-mcp runs on your own machine, with no hosted endpoint listed. Gmail API has a hosted endpoint at https://gmail.googleapis.com/gmail/v1.",
        "question": "Can an agent call email-agent-mcp and Gmail API without installing anything?"
      },
      {
        "answer": "email-agent-mcp is open source (Apache-2.0). No open-source release is listed for Gmail API.",
        "question": "Are email-agent-mcp and Gmail API open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Payments \u0026 pricing, 60 against 35"
        ],
        "also": [
          "Runs on your own machine",
          "Open source"
        ],
        "goodFor": "A person who wants an agent working in their own Outlook mailbox, or reading and drafting in Gmail, with guardrails.",
        "slug": "email-agent-mcp",
        "watchFor": "Pre-1.0, and every commit is by one maintainer"
      },
      {
        "aheadOn": [
          "Reliability, 90 against 50",
          "Schema \u0026 documentation, 87 against 79",
          "Security \u0026 auth, 81 against 67",
          "Transparency \u0026 trust, 82 against 42"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "An agent working in a Gmail or Google Workspace user's own mailbox, with search, threads, drafts, labels and incremental sync at no per-account fee.",
        "slug": "gmail-api",
        "watchFor": "Eight restricted scopes, including `gmail.readonly` and `gmail.metadata`, need restricted-scope verification for a public app"
      }
    ],
    "history": {
      "email-agent-mcp": null,
      "gmail-api": [
        {
          "causes": [
            "correction"
          ],
          "date": "2026-10-17",
          "delta": 0.8,
          "from": 77.8,
          "fromGrade": "BB",
          "to": 78.6,
          "toGrade": "A"
        }
      ]
    },
    "job": {
      "capability": "mailbox.read",
      "name": "Mailbox access"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/aurinko-email-vs-email-agent-mcp.json",
        "title": "Aurinko Email API vs email-agent-mcp",
        "url": "https://www.anchorterminal.com/compare/aurinko-email-vs-email-agent-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aurinko-email-vs-gmail-api.json",
        "title": "Aurinko Email API vs Gmail API",
        "url": "https://www.anchorterminal.com/compare/aurinko-email-vs-gmail-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudpost-vs-email-agent-mcp.json",
        "title": "CloudPost vs email-agent-mcp",
        "url": "https://www.anchorterminal.com/compare/cloudpost-vs-email-agent-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudpost-vs-gmail-api.json",
        "title": "CloudPost vs Gmail API",
        "url": "https://www.anchorterminal.com/compare/cloudpost-vs-gmail-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-emailengine.json",
        "title": "email-agent-mcp vs EmailEngine",
        "url": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-emailengine"
      },
      {
        "json": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-fastmail.json",
        "title": "email-agent-mcp vs Fastmail API (JMAP)",
        "url": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-fastmail"
      },
      {
        "json": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-himalaya.json",
        "title": "email-agent-mcp vs Himalaya",
        "url": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-himalaya"
      },
      {
        "json": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-nylas-email.json",
        "title": "email-agent-mcp vs Nylas Email API",
        "url": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-nylas-email"
      },
      {
        "json": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-outlook-mail-graph.json",
        "title": "email-agent-mcp vs Outlook Mail (Microsoft Graph)",
        "url": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-outlook-mail-graph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-unipile.json",
        "title": "email-agent-mcp vs Unipile",
        "url": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-unipile"
      },
      {
        "json": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-zoho-mail.json",
        "title": "email-agent-mcp vs Zoho Mail API",
        "url": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-zoho-mail"
      },
      {
        "json": "https://www.anchorterminal.com/compare/emailengine-vs-gmail-api.json",
        "title": "EmailEngine vs Gmail API",
        "url": "https://www.anchorterminal.com/compare/emailengine-vs-gmail-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fastmail-vs-gmail-api.json",
        "title": "Fastmail API (JMAP) vs Gmail API",
        "url": "https://www.anchorterminal.com/compare/fastmail-vs-gmail-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gmail-api-vs-himalaya.json",
        "title": "Gmail API vs Himalaya",
        "url": "https://www.anchorterminal.com/compare/gmail-api-vs-himalaya"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gmail-api-vs-nylas-email.json",
        "title": "Gmail API vs Nylas Email API",
        "url": "https://www.anchorterminal.com/compare/gmail-api-vs-nylas-email"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gmail-api-vs-outlook-mail-graph.json",
        "title": "Gmail API vs Outlook Mail (Microsoft Graph)",
        "url": "https://www.anchorterminal.com/compare/gmail-api-vs-outlook-mail-graph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gmail-api-vs-unipile.json",
        "title": "Gmail API vs Unipile",
        "url": "https://www.anchorterminal.com/compare/gmail-api-vs-unipile"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gmail-api-vs-zoho-mail.json",
        "title": "Gmail API vs Zoho Mail API",
        "url": "https://www.anchorterminal.com/compare/gmail-api-vs-zoho-mail"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 40,
        "edge": "gmail-api",
        "email-agent-mcp": 50,
        "gmail-api": 90,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 8,
        "edge": "gmail-api",
        "email-agent-mcp": 79,
        "gmail-api": 87,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 3,
        "edge": "gmail-api",
        "email-agent-mcp": 79,
        "gmail-api": 82,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 14,
        "edge": "gmail-api",
        "email-agent-mcp": 67,
        "gmail-api": 81,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 25,
        "edge": "email-agent-mcp",
        "email-agent-mcp": 60,
        "gmail-api": 35,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 1,
        "edge": "gmail-api",
        "email-agent-mcp": 84,
        "gmail-api": 85,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 40,
        "edge": "gmail-api",
        "email-agent-mcp": 42,
        "gmail-api": 82,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Gmail API scores 78.6 (A) on agent readiness against email-agent-mcp's 65.9 (B), and leads in 6 of 7 scored categories. email-agent-mcp leads on payments \u0026 pricing. Both do mailbox access.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "email-agent-mcp": "A local MCP server for a person's own Outlook or Gmail mailbox with careful defaults, a read-only scope profile, send allowlists, gated deletes and annotated tools, released weekly under Apache-2.0. It is pre-1.0 from one maintainer, Gmail lacks label and move support, and Gmail sign-in relies on UseJunior's hosted broker.",
      "gmail-api": "Fourteen OAuth scopes separate labels, sending, metadata and read-only access, and the quota page gives every method a unit cost. Eight of the scopes are restricted, read-only and metadata among them, so a public app that reads mail needs Google's verification and an annual third-party security assessment. Gmail mailboxes only."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-gmail-api",
    "json": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-gmail-api.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-gmail-api.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-gmail-api.min.md"
  },
  "markdown": "Gmail API scores 78.6 (A) on agent readiness against email-agent-mcp's 65.9 (B), and leads in 6 of 7 scored categories. email-agent-mcp leads on payments \u0026 pricing. Both do mailbox access.\n\n- email-agent-mcp: grade B, 65.9/100, rank #397 of 1510. Markdown https://www.anchorterminal.com/tools/email-agent-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/email-agent-mcp.json\n- Gmail API: grade A, 78.6/100, rank #21 of 1510. Markdown https://www.anchorterminal.com/tools/gmail-api.md · JSON https://www.anchorterminal.com/api/v1/tools/gmail-api.json\n- Best mailbox access APIs for AI agents: https://www.anchorterminal.com/best/mailbox-access/index.md\n- All 55 mailboxes comparisons: https://www.anchorterminal.com/compare/mailbox-access/index.md\n\n## Which one, for what\n\n### email-agent-mcp (B)\n\nGood for: A person who wants an agent working in their own Outlook mailbox, or reading and drafting in Gmail, with guardrails.\n\nAhead on:\n- Payments \u0026 pricing, 60 against 35\n\nAlso in its favour:\n- Runs on your own machine\n- Open source\n\nWatch for: Pre-1.0, and every commit is by one maintainer\n\n### Gmail API (A)\n\nGood for: An agent working in a Gmail or Google Workspace user's own mailbox, with search, threads, drafts, labels and incremental sync at no per-account fee.\n\nAhead on:\n- Reliability, 90 against 50\n- Schema \u0026 documentation, 87 against 79\n- Security \u0026 auth, 81 against 67\n- Transparency \u0026 trust, 82 against 42\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- A hosted endpoint, with nothing to install\n\nWatch for: Eight restricted scopes, including `gmail.readonly` and `gmail.metadata`, need restricted-scope verification for a public app\n\n\n## Why the edge\n\n### Reliability: Gmail API +40\n\n- email-agent-mcp (50): Graded with the lines for local packages and stdio MCP servers. Installs from the official npm package `email-agent-mcp` with npx, CI runs on Node 20 (20). A CI workflow with Vitest tests, Codecov and a spec-coverage gate; the run results weren't readable through GitHub's API that day, so partial (20 of 25). Open crash and regression issues couldn't be read because GitHub's API refused our requests for its rate limit (0, unchecked). Semver tags from v0.1.7 to v0.5.0 and auto-categorised GitHub Releases as the changelog, with no breaking changes marked in what we read (10 of 15). Pre-1.0 (0). Total 50.\n- Gmail API (90): Graded on the REST API with the hosted lines. The Google Workspace Status Dashboard lists Gmail with an incidents feed that goes back to October 2025 (20). In the 90 days to 1 November 2026 the feed, re-read that day, has one Gmail entry, a low-severity notice from 18 to 24 September about the Gmail Android app, with no entry that touches the service or the API, and its newest entry for any product began on 25 September. The last service disruption for Gmail was 56 minutes on 31 May 2026, across several Workspace products. The dashboard tracks the Gmail product, not the API alone (30). 1,200,000 quota units a minute per project, 6,000 a minute per user and 80,000,000 a day per project, with a unit cost for every method, re-read on 1 November (15). 403 and 429 rate errors with a truncated exponential backoff formula, and 429s for sending and bandwidth limits that carry a retry time. `messages.send` has no idempotency key, and the error guide says a 200 response doesn't mean the mail was sent (10). The Workspace SLA (last modified 31 August 2026, re-read on 1 November) covers Gmail at 99.9 per cent but measures downtime in the user web interface and doesn't name the API, read the same way as for Drive (5). The REST API is GA. The MCP server is a developer preview (10).\n\n### Transparency \u0026 trust: Gmail API +40\n\n- email-agent-mcp (42): Apache-2.0 with a LICENSE file (30). SECURITY.md says tokens and mail are handled locally over stdio with no network listener, and the broker README says mail never reaches the broker and refresh tokens aren't stored. The broker has no published privacy policy (22 of 30). No deprecation policy (0). No telemetry was found in the README or package manifests, and none is stated either way (10 of 20). Total 62.\n- Gmail API (82): Closed service under the Google APIs Terms of Service (last modified 9 November 2021), with Apache-2.0 client libraries (15). The Cloud Data Processing Addendum commits Google to delete Workspace customer data within a maximum of 180 days of a deletion, and the Workspace developer policy limits what third-party apps may do with Gmail data, including no transfer for advertising and no training of general models. We found no retention statement for personal accounts' data reached through the API, and didn't read the privacy policy text, per the 8 October check (20). Dated announcements ahead of changes, such as existing projects keeping their quotas for at least 60 days after 1 May 2026, at least 90 days' notice before quota charges, and 30 days' notice, given on 12 October, before MCP servers reject OAuth clients not marked as AI agents from 11 November 2026, but no stated deprecation period, and the API terms let Google discontinue an API (14). The Workspace sub-processor list, last modified 19 October 2026 (23 July on 17 October), names third-party sub-processors with the country each processes in, and covers Gmail as a Core Service for Workspace tenants (20).\n\n### Payments \u0026 pricing: email-agent-mcp +25\n\n- email-agent-mcp (60): Free, Apache-2.0 software with nothing to buy, scored 20 + 20 + 20 by the self-hosted rule. No payment protocol (0 of 40). Total 60.\n- Gmail API (35): No x402, MPP or L402 (0). Free within published quotas, with a unit cost for every method, but the price for use above 80,000,000 units a day, planned for later in 2026, isn't published on the quota page on 1 November, which still promises at least 90 days' notice (15). No charge for standard use and no card needed to enable the API (20). A person creates a Cloud project and an OAuth consent screen, a user consents in a browser, and a public app with restricted scopes goes through verification and a security assessment (0).\n\n### Security \u0026 auth: Gmail API +14\n\n- email-agent-mcp (67): OAuth to the person's own provider with the scopes each profile needs, tokens in the OS keychain, and an `observe` profile with Microsoft read scopes only. Gmail uses `gmail.readonly` and `gmail.compose`, and its code exchange and refreshes relay through a UseJunior-hosted broker that holds the client secret and says it stores no refresh tokens (25 of 30). Send allowlists, delete off by default behind an operator variable and a caller flag, inbox rules that block forwarding and deletion, and protected system folders (20). Receive allowlists limit whose mail the agent acts on; no guidance on treating message bodies as untrusted was found (9 of 15). No log of tool calls beyond the mailbox's own history (3 of 15). SECURITY.md with private reporting and acknowledgement within 3 business days, semgrep in CI; no bug bounty or advisories (10 of 20). Total 67.\n- Gmail API (81): OAuth 2.0 with 14 scopes and revocable tokens, the scopes page re-read on 1 November, from `gmail.labels` and `gmail.send` up to the full `https://mail.google.com/` scope. The discovery document, revision 20261026, still lists `access_token` and `oauth_token` as query parameters, and Google's OAuth guide, re-read on 1 November, shows the query string as an alternative while calling the header preferable, so the checklist's 10-point deduction applies (30 less 10, 20). `gmail.readonly`, `gmail.metadata` (headers and labels, no bodies), `gmail.labels` and `gmail.send` for least privilege, and permanent delete only under the full scope. Nothing in the API confirms a send or a delete, and every scope that reads mail is restricted (17). The MCP guide warns about indirect prompt injection through email, requires screening of prompts and responses with Model Armor or a documented alternative, and tells operators to review actions. The REST guides say nothing on it (12). Workspace OAuth log events record the API name, method, OAuth client ID and scopes, with the investigation tool limited to higher editions, and no per-call log for personal accounts was found (12). security.txt valid to 2030 with the Google VRP, and the Google Workspace SOC 2 Type II reports, issued quarterly, list Gmail and the Gmail REST API in scope. Apps holding restricted data must pass a CASA assessment every 12 months (20).\n\n### Schema \u0026 documentation: Gmail API +8\n\n- email-agent-mcp (79): Tools are defined with typed input schemas that the MCP SDK publishes as JSON Schema (25). README in five languages, AGENTS.md, CLAUDE.md and GEMINI.md; no llms.txt, which a local server doesn't need (5 of 10). The README's tool table marks each tool read, write or destructive and states provider limits, such as Gmail deletes removing drafts only (15 of 20). Typed inputs with options such as `list_style` (12 of 15). Setup examples per client and documented error behaviour, such as NOT_SUPPORTED on Gmail and sanitised errors (10 of 15). Semver tags and GitHub Releases (12 of 15). Total 79.\n- Gmail API (87): Google publishes a discovery document, not OpenAPI, which is a machine-readable contract all the same, at revision 20261026 with 79 methods on 1 November. The preview MCP server's 23 tools each carry typed input and output schemas (25). No llms.txt, and developers.google.com/llms.txt, /workspace/llms.txt and /workspace/gmail/llms.txt returned 404 on 17 October, but doc pages return Markdown (the quota, scopes, release notes and error pages did on 1 November) when `.md.txt` is appended to the URL, which we found no index or link advertising, read as for Drive, Sheets and Forms (5 of 10). Method descriptions say what each call does and sometimes what to call in its place, such as `messages.delete` pointing to `messages.trash`, and the MCP tool descriptions name the tool to use first (16). Typed parameters with enums such as `format` and defaults such as `userId=me`, but a sent message is one base64url RFC 2822 string in `raw` and search is one free-text `q` string (11). An error guide with a JSON sample and a fix for each reason, and code samples across the guides (15). v1 in the path and dated release notes, though the last entry for the core API is 1 May 2026, the 12 October entry concerns the MCP server, and the growth of the MCP server from 10 tools to 23 isn't recorded there (15).\n\n## Score by category\n\n| Category | Weight | email-agent-mcp | Gmail API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 50 | 90 | Gmail API +40 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 79 | 87 | Gmail API +8 |\n| Agent ergonomics | 13% (16.2 this run) | 79 | 82 | Gmail API +3 |\n| Security \u0026 auth | 14% (17.5 this run) | 67 | 81 | Gmail API +14 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 35 | email-agent-mcp +25 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 84 | 85 | Gmail API +1 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 42 | 82 | Gmail API +40 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **65.9 · B** | **78.6 · A** | |\n\n## Facts side by side\n\n| Fact | email-agent-mcp | Gmail API |\n| --- | --- | --- |\n| Kind | MCP server | HTTP API |\n| Vendor | UseJunior | Google |\n| Hosted endpoint | no (local only) | `https://gmail.googleapis.com/gmail/v1` |\n| Transports | stdio | HTTP, Streamable HTTP |\n| Auth | OAuth | OAuth |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | Apache-2.0 | Apache-2.0 (client libraries) |\n| Tools exposed | 27 | 23 |\n| Read-only variant documented | yes | no |\n| llms.txt | no | no |\n| MCP registry | `io.github.UseJunior/email-agent-mcp` | not listed |\n| Last release | 2026-11-05 | 2026-10-14 |\n| Terms last updated | no document linked | 2021-11-09 |\n| Privacy policy last updated | no document linked | 2026-10-01 |\n| Customer content may train models | not read yet | yes |\n| Terms restrict automated access | not read yet | yes |\n| Terms restrict benchmarking | not read yet | not found in the text |\n| Terms or service can change without notice | not read yet | not found in the text |\n| Arbitration or class-action waiver | not read yet | not found in the text |\n| Popularity | 394 npm/wk | 12k stars, 1.1M npm/wk |\n| Agent reviews | none | 3/5 (4) |\n\n## How the scores have moved\n\n### email-agent-mcp\n\nNo score change since it was listed.\n\n### Gmail API\n\n- +0.8 on 17 October 2026 (BB to A): correction\n\n## Verdicts\n\n**email-agent-mcp.** A local MCP server for a person's own Outlook or Gmail mailbox with careful defaults, a read-only scope profile, send allowlists, gated deletes and annotated tools, released weekly under Apache-2.0. It is pre-1.0 from one maintainer, Gmail lacks label and move support, and Gmail sign-in relies on UseJunior's hosted broker.\n\n**Gmail API.** Fourteen OAuth scopes separate labels, sending, metadata and read-only access, and the quota page gives every method a unit cost. Eight of the scopes are restricted, read-only and metadata among them, so a public app that reads mail needs Google's verification and an annual third-party security assessment. Gmail mailboxes only.\n\n## Before you call either\n\n### email-agent-mcp\n\n1. Start with `get_mailbox_status`, then `list_emails` or `search_emails` before reading whole threads\n2. Ask the person to set the send allowlist before planning any `send_email` or `reply_to_email`\n3. Prefer `create_draft` and let the person send, unless they asked for sending\n4. Expect NOT_SUPPORTED for label, flag, mark-read and move on Gmail, and don't request `gmail.modify` to work around it\n5. Don't plan deletes; they need an operator environment variable and a caller flag\n\n### Gmail API\n\n1. Ask for the narrowest scope. `gmail.labels` is non-sensitive and `gmail.send` is sensitive, while every scope that reads mail is restricted\n2. List with `messages.list` and `q` in Gmail search syntax, then fetch each ID with `format=metadata` or `full`. List calls return IDs only\n3. Send by posting an RFC 2822 message, base64url encoded, in `raw`. Set `threadId` and matching reply headers to stay in a thread\n4. Store the `historyId` and call `history.list`. On a 404, run a full sync. Call `watch` again at least every 7 days\n5. Back off exponentially on 403 and 429 rate errors, and keep batches to 50 requests or fewer\n\n## Questions\n\n### Which is better for AI agents, email-agent-mcp or Gmail API?\n\nGmail API scores 78.6 (A) on agent readiness against email-agent-mcp's 65.9 (B), and leads in 6 of 7 scored categories. email-agent-mcp leads on payments \u0026 pricing.\n\n### Do email-agent-mcp and Gmail API need an API key?\n\nBoth use an OAuth sign-in.\n\n### Can an agent call email-agent-mcp and Gmail API without installing anything?\n\nemail-agent-mcp runs on your own machine, with no hosted endpoint listed. Gmail API has a hosted endpoint at https://gmail.googleapis.com/gmail/v1.\n\n### Are email-agent-mcp and Gmail API open source?\n\nemail-agent-mcp is open source (Apache-2.0). No open-source release is listed for Gmail API.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/email-agent-mcp-vs-gmail-api.json, and with the fewest tokens: https://www.anchorterminal.com/compare/email-agent-mcp-vs-gmail-api.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"email-agent-mcp\", \"b\": \"gmail-api\"}`. From a terminal: `anchor compare email-agent-mcp gmail-api`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/email-agent-mcp.json and https://www.anchorterminal.com/api/v1/tools/gmail-api.json\n\n## Other comparisons with email-agent-mcp or Gmail API\n\n- [Aurinko Email API vs email-agent-mcp](https://www.anchorterminal.com/compare/aurinko-email-vs-email-agent-mcp.md)\n- [Aurinko Email API vs Gmail API](https://www.anchorterminal.com/compare/aurinko-email-vs-gmail-api.md)\n- [CloudPost vs email-agent-mcp](https://www.anchorterminal.com/compare/cloudpost-vs-email-agent-mcp.md)\n- [CloudPost vs Gmail API](https://www.anchorterminal.com/compare/cloudpost-vs-gmail-api.md)\n- [email-agent-mcp vs EmailEngine](https://www.anchorterminal.com/compare/email-agent-mcp-vs-emailengine.md)\n- [email-agent-mcp vs Fastmail API (JMAP)](https://www.anchorterminal.com/compare/email-agent-mcp-vs-fastmail.md)\n- [email-agent-mcp vs Himalaya](https://www.anchorterminal.com/compare/email-agent-mcp-vs-himalaya.md)\n- [email-agent-mcp vs Nylas Email API](https://www.anchorterminal.com/compare/email-agent-mcp-vs-nylas-email.md)\n- [email-agent-mcp vs Outlook Mail (Microsoft Graph)](https://www.anchorterminal.com/compare/email-agent-mcp-vs-outlook-mail-graph.md)\n- [email-agent-mcp vs Unipile](https://www.anchorterminal.com/compare/email-agent-mcp-vs-unipile.md)\n- [email-agent-mcp vs Zoho Mail API](https://www.anchorterminal.com/compare/email-agent-mcp-vs-zoho-mail.md)\n- [EmailEngine vs Gmail API](https://www.anchorterminal.com/compare/emailengine-vs-gmail-api.md)\n- [Fastmail API (JMAP) vs Gmail API](https://www.anchorterminal.com/compare/fastmail-vs-gmail-api.md)\n- [Gmail API vs Himalaya](https://www.anchorterminal.com/compare/gmail-api-vs-himalaya.md)\n- [Gmail API vs Nylas Email API](https://www.anchorterminal.com/compare/gmail-api-vs-nylas-email.md)\n- [Gmail API vs Outlook Mail (Microsoft Graph)](https://www.anchorterminal.com/compare/gmail-api-vs-outlook-mail-graph.md)\n- [Gmail API vs Unipile](https://www.anchorterminal.com/compare/gmail-api-vs-unipile.md)\n- [Gmail API vs Zoho Mail API](https://www.anchorterminal.com/compare/gmail-api-vs-zoho-mail.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "email-agent-mcp vs Gmail API",
        "url": ""
      }
    ],
    "description": "Gmail scores 78.6 (A) to email-agent-mcp's 65.9 (B) for mailbox access. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "email-agent-mcp B 65.9",
      "Gmail API A 78.6",
      "scores"
    ],
    "h1": "email-agent-mcp vs Gmail API",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/email-agent-mcp-vs-gmail-api",
    "published": "2026-10-01",
    "section": "tools",
    "title": "email-agent-mcp vs Gmail for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-gmail-api"
  },
  "tokens": {
    "markdown": 4600,
    "slim": 2930
  },
  "version": 1
}
