{
  "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": "email-agent-mcp scores 65.9 (B) on agent readiness against Fastmail API (JMAP)'s 54.9 (C), and leads in 5 of 7 scored categories. Fastmail API (JMAP) leads on reliability and transparency \u0026 trust.",
    "b": {
      "slug": "fastmail",
      "name": "Fastmail API (JMAP)",
      "vendor": "Fastmail Pty Ltd",
      "vendorUrl": "https://www.fastmail.com",
      "kind": "http-api",
      "category": "mailbox-access",
      "summary": "Fastmail is a paid email, calendar and contacts host from Fastmail Pty Ltd in Melbourne. Agents reach a customer's mailbox through JMAP at api.fastmail.com, the open IETF protocol, or through the company's own MCP server.",
      "url": "https://www.anchorterminal.com/tools/fastmail",
      "markdownUrl": "https://www.anchorterminal.com/tools/fastmail.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/fastmail.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/fastmail.json",
      "dns": "fastmail.grade.anchorterminal.com",
      "repo": "https://github.com/fastmail/JMAP-Samples",
      "license": "Proprietary service under Fastmail's API Terms of Service and API Developer Policy. JMAP is an open IETF standard, and the sample code on GitHub is MIT",
      "transports": [
        "http"
      ],
      "packages": [],
      "auth": "mixed",
      "authNotes": "Access is self-serve for the account owner. An API token is made in Settings, Privacy \u0026 Security, Manage API tokens, as type JMAP or MCP, with scopes for read-only access, Email, Email submission, Contacts and Masked Email, and is sent as `Authorization: Bearer`. Tokens are not available on Basic plans. An app distributed to other users needs OAuth 2.0 (authorisation code grant, PKCE S256, rotating refresh tokens), and the developer page says clients are registered by hand through the partnerships team. The MCP server takes OAuth or an MCP-type token, and the authorisation server metadata lists a registration endpoint.",
      "pricing": "paid",
      "pricingNotes": "API access is part of a mailbox plan, with no per-call charge. Individual is $6 a month or $60 a year, Business Standard $6 a user a month and Professional $10. Basic, at $4, has no API tokens. A trial of up to 30 days needs no card, so an agent's owner can start without a contract, with sending capped at 120 messages a day (https://www.fastmail.com/pricing/us/, checked 2026-10-08).",
      "priceSummary": "$6 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the developer page or the pricing page (checked 2026-11-04).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 123,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://www.fastmail.com/dev/",
      "capabilities": [
        "mailbox.read",
        "mailbox.search",
        "mailbox.send",
        "mailbox.drafts",
        "mailbox.sync"
      ],
      "tags": [
        "hosted",
        "paid",
        "trial",
        "jmap",
        "open-standard",
        "oauth",
        "api-key",
        "mcp",
        "email",
        "contacts",
        "masked-email",
        "status-page",
        "bug-bounty",
        "eu-data-residency"
      ],
      "lastRelease": "2026-04-22",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 54.9,
        "grade": "C",
        "agentReady": false,
        "rank": 892,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 8,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 73,
          "maintenance": 16,
          "payments": 30,
          "reliability": 59,
          "schema": 52,
          "security": 64,
          "transparency": 74
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-04"
        },
        "negative": 0,
        "verdict": "A mailbox API built on the open JMAP standard, with read-only tokens, six OAuth scopes and an MCP server that separates read, write and send access. Fastmail publishes no OpenAPI file, SDK, API changelog, request rate limit or SLA, and its customer terms forbid programmatically generated email to addresses outside the account.",
        "bestFor": "An agent working in its owner's own Fastmail mailbox, where JMAP gives batched reads, structured search and state-based sync on an open standard, and MCP gives a ready connection with read, write and send levels.",
        "strengths": [
          "JMAP is an IETF standard (RFC 8620, 8621 and 9610), so requests, types and errors are specified in public and not tied to one vendor",
          "API tokens can be read-only or limited to mail, sending, contacts or Masked Email, and are revocable in settings",
          "OAuth 2.0 requires PKCE with S256, rotates refresh tokens on every use and revokes the grant if an old one is replayed",
          "The MCP server at `https://api.fastmail.com/mcp`, launched 22 April 2026, has separate read, write and send levels chosen on the consent screen",
          "`properties`, `limit`, `bodyProperties` and `maxBodyValueBytes` size responses, and several calls batch into one request with back-references",
          "30-day trial with no card, a privacy policy with stated retention periods and a published list of 36 subprocessors"
        ],
        "weaknesses": [
          "The customer terms forbid programmatically generated email to addresses outside the account, and say the service is not for machine-to-machine workflows",
          "No OpenAPI file, llms.txt, official SDK or API changelog. The developer page points to the RFCs and four sample scripts",
          "No dated change to the JMAP API or MCP server since the MCP launch on 22 April 2026",
          "No request rate limit, Retry-After guidance or SLA was found, and the API terms allow backwards-incompatible changes with notice only promised as an attempt",
          "Partial outages on 25 August, 4 September and 7 October 2026 blocked access for some users for 8 hours 17 minutes, 1 hour 8 minutes and 5 hours 23 minutes",
          "API tokens are not available on Basic plans, and the developer page says OAuth clients are registered by hand through the partnerships team",
          "No idempotency key on `EmailSubmission/set`, no confirmation step for delete or send, and no per-call access log"
        ],
        "agentNotes": [
          "Fetch `https://api.fastmail.com/jmap/session` with `Authorization: Bearer \u003ctoken\u003e` first. It returns the API URL, account IDs and the request limits to stay under",
          "Ask the owner for a read-only token unless the task writes. Sending needs both the Email and Email submission scopes",
          "Request only the `properties` you need. Body text is not returned unless `fetchTextBodyValues` is set, and `maxBodyValueBytes` caps it",
          "Sync with `Email/changes` from a stored state. On `cannotCalculateChanges`, fetch again from scratch",
          "Do not send generated mail to outside recipients without the owner's review. The customer terms forbid it, and trial accounts stop at 120 messages a day"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 54.9
          }
        ],
        "editorialScores": {
          "ergonomics": 73,
          "maintenance": 16,
          "payments": 30,
          "reliability": 59,
          "schema": 52,
          "security": 64,
          "transparency": 62
        },
        "provenanceScore": 86,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-11-04",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl https://api.fastmail.com/jmap/session \\\n  -H \"Authorization: Bearer YOUR_API_TOKEN\""
      },
      "letme": {
        "capability": "https://letme.dev/mailbox.read",
        "tool": "https://letme.dev/fastmail"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "Individual plan, billed monthly",
          "unit": "month",
          "usd": 6,
          "note": "one mailbox, API tokens included, 30-day trial without a card"
        },
        {
          "item": "Individual plan, $60 billed yearly",
          "unit": "month",
          "usd": 5,
          "note": "one mailbox, API tokens included"
        },
        {
          "item": "Business Standard, billed monthly",
          "unit": "seat-month",
          "usd": 6,
          "note": "per user, API tokens included. Basic at $4 has none"
        }
      ],
      "provenance": {
        "legalEntity": "Fastmail Pty Ltd, ACN 142 646 580, PO Box 234, Collins Street West, VIC 8007, Australia",
        "domain": "fastmail.com",
        "domainRegistered": "1994-12-09",
        "endpointOnVendorDomain": true,
        "terms": "https://www.fastmail.com/policies/api-terms-of-service/",
        "privacy": "https://www.fastmail.com/policies/privacy/",
        "statusPage": "https://fastmailstatus.com/",
        "changelog": "",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The privacy policy names Fastmail Pty Ltd with ABN 31 142 646 580, and the terms of service give ACN 142 646 580, both at PO Box 234, Collins Street West, VIC 8007.",
          "RDAP for fastmail.com shows registration on 9 December 1994 and expiry on 8 December 2034.",
          "www.fastmail.com/.well-known/security.txt expires on 24 June 2027 and points to the bug bounty page for contact and policy.",
          "The API Terms of Service and the API Developer Policy together form the contract for API use, governed by the law of Victoria, Australia. The customer Terms of Service, last changed 10 October 2025 per its version list, govern the account the API reaches.",
          "The privacy policy lists versions back to 25 May 2020, the latest dated 2 July 2026.",
          "JMAP, OAuth and MCP all answer on api.fastmail.com. The status page is on fastmailstatus.com, hosted by Instatus.",
          "No API changelog was found."
        ],
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/fastmail.json",
      "live": {
        "slug": "fastmail",
        "vendorStatus": {
          "page": "https://fastmailstatus.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:47:45.958992681Z"
        },
        "githubStars": 123,
        "securityTxt": {
          "url": "https://fastmail.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-06-24T00:00:00.000Z",
          "checkedAt": "2026-11-07T16:02:01.275272216Z"
        },
        "domain": {
          "domain": "fastmail.com",
          "registered": "1994-12-09",
          "source": "https://rdap.verisign.com/com/v1/domain/fastmail.com",
          "checkedAt": "2026-11-01T14:28:07.494194121Z"
        },
        "pages": [
          {
            "url": "https://www.fastmail.com/pricing/us/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:28:35.936600232Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f82655a263b3"
          },
          {
            "url": "https://www.fastmail.com/policies/privacy/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-11-07T14:28:31.747113285Z",
            "changedAt": "2026-10-13T20:27:51.708936562Z",
            "fingerprint": "eba901cc7ab3"
          },
          {
            "url": "https://www.fastmail.com/policies/api-terms-of-service/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-11-07T14:28:29.661652735Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f73a69f7e8ec"
          }
        ],
        "github": {
          "repo": "fastmail/jmap-samples",
          "checkedAt": "2026-11-02T08:48:04.357394098Z",
          "stars": 123,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-04-06T14:24:26Z",
          "openIssues": 1,
          "openPRs": 0,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 0,
          "replies": {
            "sampled": 19,
            "unanswered": 0,
            "medianDays": 1.2
          }
        },
        "updatedAt": "2026-11-07T16:02:01.275272216Z"
      }
    },
    "edges": [
      {
        "by": 68,
        "category": "maintenance",
        "leads": "email-agent-mcp",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "v0.5.0 was tagged and published on 5 November 2026 (30). Nine npm releases in the 90 days from 8 August, v0.3.0 to v0.5.0 (20). Pull requests up to #234 merged in the history, all by the one maintainer; issue responses couldn't be read through GitHub's API that day (10 of 25). io.github.UseJunior/email-agent-mcp is in the official MCP registry with 0.5.0 marked latest (15). CI, commitlint, semgrep and Codecov workflows (9 of 10). Total 84.",
          "b": "Fastmail keeps no API changelog, so recency rests on what we could date. The last dated change to the API or MCP server is the MCP launch on 22 April 2026, 196 days before this check. The 29 October 2026 blog post announces a Dynamic DNS API on api.fastmail.com with its own token type, which isn't part of the JMAP mailbox API graded here, and the JMAP section of the developer page carries no date (0 of 30). No dated API entries in the 90 days from 6 August; the blog's posts in that window cover the EU data region, a data recovery, a mailbox view, calendar time zones and Dynamic DNS (0 of 20). Support answers by email and form around the clock with a stated 24-hour reply target, per the 8 October check, and fastmail/JMAP-Samples has a last commit on 6 April 2026. No developer forum was found (9 of 15 for a closed service). No official SDK. The MCP registry wasn't searched, since its API is barred to us (3 of 15). The samples repository takes dependency updates and has no CI (4 of 10). 0 + 0 + 9 + 3 + 4 = 16."
        },
        "scores": {
          "a": 84,
          "b": 16
        }
      },
      {
        "by": 32,
        "category": "transparency",
        "leads": "fastmail",
        "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": "The editorial half. A closed service with API Terms of Service and an API Developer Policy that state the grant, the limits and the governing law (Victoria, Australia). The protocol is an open IETF standard and the sample code is MIT (15 of 30). The privacy policy, updated 2 July 2026, names retention periods (IP logs up to one year, the address up to twelve months after closure, account data deleted within seven days of closure) and says customer data is not used to train AI. The DPA is public in five sections and three annexes, a transparency report counts law-enforcement requests by year, and the data residency page says backups, logs and debug systems stay in the US for EU accounts. No retention period for backups beyond the seven-day minimum was found (26 of 30). No deprecation policy. The API terms say Fastmail may make backwards-incompatible changes and will try to give notice (4 of 20). DPA Annex 3 names 36 subprocessors with the purpose of each, without a country for each, and the security help page names data centres in Philadelphia, St. Louis and Amsterdam (17 of 20). The provenance half is computed from the provenance block."
        },
        "scores": {
          "a": 42,
          "b": 74
        }
      },
      {
        "by": 30,
        "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 on the developer page or the pricing page (0 of 40). Plan prices are public without a login, $6 a month or $60 a year for Individual and $6 a user a month for Business Standard, with API access included and no per-call price (10 of 20). A trial of up to 30 days needs no card, though Fastmail may ask for a mobile number, and the trial page doesn't say whether API tokens work during it (20). A person signs up in a browser and creates a token in settings, or consents on an OAuth screen (0 of 20)."
        },
        "scores": {
          "a": 60,
          "b": 30
        }
      },
      {
        "by": 27,
        "category": "schema",
        "leads": "email-agent-mcp",
        "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": "Graded on the JMAP API. Fastmail publishes no OpenAPI or similar file. The contract is the IETF text (RFC 8620, 8621 and 9610) plus a session object that lists capabilities and limits for a signed-in caller, which is machine-readable discovery but not a full schema. The MCP server's tool definitions sit behind sign-in and were not read (10 of 25). `www.fastmail.com/llms.txt` returned 404 on 8 October 2026 (0). The RFCs state the purpose, arguments, defaults and error cases of every method, and Fastmail's own page documents the scopes and the Masked Email extension. Nothing says when to prefer JMAP, IMAP or MCP (14 of 20). Arguments are typed in the RFCs with defaults and required fields, and filters are structured objects, with no schema file to validate against (12 of 15). The RFCs carry worked requests and error lists, and fastmail/JMAP-Samples has scripts in JavaScript, Python, Perl and Lua. Fastmail documents no errors of its own beyond `rateLimit` on Masked Email (11 of 15). Capability URIs version the protocol, but no API changelog was found. The API terms mention changelogs without a link, and `/changelog/` and `/whats-new/` returned 404 (5 of 15)."
        },
        "scores": {
          "a": 79,
          "b": 52
        }
      },
      {
        "by": 9,
        "category": "reliability",
        "leads": "fastmail",
        "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 JMAP API with the hosted lines. fastmailstatus.com, run on Instatus, lists ten components with notice history, though none is named for JMAP or the API, so 15 as for other vendor pages with no component for the listed product. In the 90 days from 6 August 2026 the history shows partial outages that stopped some users reaching the service, 8 hours 17 minutes from 25 August (Login \u0026 sessions, 'a small number of users'), 1 hour 8 minutes on 4 September ('some users') and 5 hours 23 minutes on 7 October (one server, users with a full stop in the username), plus 11 hours 13 minutes of bounced replies from masked addresses from 23 September. Three support-ticket incidents (5 October, 14 October, 29 October) don't touch the API. Each incident touched a subset of users, so all are partial and read as minor (20). Sending limits are published per plan (8,000 messages a day on Individual and Standard, 120 on a trial, 500 logins per ten minutes), but no API request rate was found (8 of 15, a partial kept under the in-between rule). RFC 8620 defines the `urn:ietf:params:jmap:error:limit` problem type and a `rateLimit` error, and the developer page says Masked Email creation returns a `rateLimit` SetError. No Retry-After or backoff guidance was found, and `EmailSubmission/set` has no idempotency key (6 of 15, a partial kept). No SLA was found in the terms of service, the API terms or the pricing page, and the API terms say the APIs come as is (0). JMAP access with an API token carries no beta or preview label (10). 15 + 20 + 8 + 6 + 0 + 10 = 59."
        },
        "scores": {
          "a": 50,
          "b": 59
        }
      },
      {
        "by": 6,
        "category": "ergonomics",
        "leads": "email-agent-mcp",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "27 tools in the full profile, the 11 to 30 band, plus the `observe` profile as a read-only subset (20 of 25). List and search tools filter and page; we read the tool table, not every parameter (16 of 20). Errors are sanitised and use stable reasons such as NOT_SUPPORTED, failing closed before a Gmail mutation (15 of 20). readOnlyHint and destructiveHint on the tools in source; sends take no idempotency key (16 of 20). One npx command and a setup wizard for OAuth and mailbox choice; TypeScript only (12 of 15). Total 79.",
          "b": "Graded on the JMAP API as RFC 8620 and 8621 specify it. Every `/get` call takes a `properties` list, `Email/get` returns no body text unless `fetchTextBodyValues` is set, `maxBodyValueBytes` caps it, and method calls batch into one request with back-references, so a search and a fetch cost one round trip. The MCP tool count was not read (22 of 25). `/query` takes a structured filter, sort, `position`, `anchor`, `limit` and `collapseThreads`, with `/changes` and `/queryChanges` for sync (20). Errors are typed at three levels, request problem details, method errors such as `invalidArguments` and per-object SetErrors such as `tooManyRecipients` and `forbiddenFrom`. Fastmail adds no error guide of its own (17 of 20). `ifInState` makes a write conditional on the state the client last saw, and creation IDs tie results to requests, but there is no idempotency key for sending. MCP annotations were not read (9 of 20). Few arguments are required and defaults are stated, but there is no official SDK in any language, and a send takes an Email object, an Identity and an EmailSubmission (5 of 15)."
        },
        "scores": {
          "a": 79,
          "b": 73
        }
      }
    ],
    "facts": [
      {
        "a": "MCP server",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "UseJunior",
        "b": "Fastmail Pty Ltd",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0",
        "b": "Proprietary service under Fastmail's API Terms of Service and API Developer Policy. JMAP is an open IETF standard, and the sample code on GitHub is MIT",
        "name": "Licence"
      },
      {
        "a": "27",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "yes",
        "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-04-22",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "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": "123 stars",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "email-agent-mcp scores 65.9 (B) on agent readiness against Fastmail API (JMAP)'s 54.9 (C), and leads in 5 of 7 scored categories. Fastmail API (JMAP) leads on reliability and transparency \u0026 trust.",
        "question": "Which is better for AI agents, email-agent-mcp or Fastmail API (JMAP)?"
      },
      {
        "answer": "email-agent-mcp uses an OAuth sign-in. Fastmail API (JMAP) takes an API key or an OAuth sign-in.",
        "question": "Do email-agent-mcp and Fastmail API (JMAP) need an API key?"
      },
      {
        "answer": "email-agent-mcp runs on your own machine, with no hosted endpoint listed. No hosted endpoint is listed for Fastmail API (JMAP).",
        "question": "Can an agent call email-agent-mcp and Fastmail API (JMAP) without installing anything?"
      },
      {
        "answer": "email-agent-mcp is open source (Apache-2.0). No open-source release is listed for Fastmail API (JMAP).",
        "question": "Are email-agent-mcp and Fastmail API (JMAP) open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 79 against 52",
          "Agent ergonomics, 79 against 73",
          "Payments \u0026 pricing, 60 against 30",
          "Maintenance \u0026 community, 84 against 16"
        ],
        "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, 59 against 50",
          "Transparency \u0026 trust, 74 against 42"
        ],
        "also": null,
        "goodFor": "An agent working in its owner's own Fastmail mailbox, where JMAP gives batched reads, structured search and state-based sync on an open standard, and MCP gives a ready connection with read, write and send levels.",
        "slug": "fastmail",
        "watchFor": "The customer terms forbid programmatically generated email to addresses outside the account, and say the service is not for machine-to-machine workflows"
      }
    ],
    "history": {
      "email-agent-mcp": null,
      "fastmail": [
        {
          "causes": [
            "correction",
            "time"
          ],
          "date": "2026-11-04",
          "delta": 0.8,
          "from": 54.1,
          "fromGrade": "C",
          "to": 54.9,
          "toGrade": "C"
        }
      ]
    },
    "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-fastmail.json",
        "title": "Aurinko Email API vs Fastmail API (JMAP)",
        "url": "https://www.anchorterminal.com/compare/aurinko-email-vs-fastmail"
      },
      {
        "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-fastmail.json",
        "title": "CloudPost vs Fastmail API (JMAP)",
        "url": "https://www.anchorterminal.com/compare/cloudpost-vs-fastmail"
      },
      {
        "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-gmail-api.json",
        "title": "email-agent-mcp vs Gmail API",
        "url": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-gmail-api"
      },
      {
        "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-fastmail.json",
        "title": "EmailEngine vs Fastmail API (JMAP)",
        "url": "https://www.anchorterminal.com/compare/emailengine-vs-fastmail"
      },
      {
        "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/fastmail-vs-himalaya.json",
        "title": "Fastmail API (JMAP) vs Himalaya",
        "url": "https://www.anchorterminal.com/compare/fastmail-vs-himalaya"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fastmail-vs-nylas-email.json",
        "title": "Fastmail API (JMAP) vs Nylas Email API",
        "url": "https://www.anchorterminal.com/compare/fastmail-vs-nylas-email"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fastmail-vs-outlook-mail-graph.json",
        "title": "Fastmail API (JMAP) vs Outlook Mail (Microsoft Graph)",
        "url": "https://www.anchorterminal.com/compare/fastmail-vs-outlook-mail-graph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fastmail-vs-unipile.json",
        "title": "Fastmail API (JMAP) vs Unipile",
        "url": "https://www.anchorterminal.com/compare/fastmail-vs-unipile"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fastmail-vs-zoho-mail.json",
        "title": "Fastmail API (JMAP) vs Zoho Mail API",
        "url": "https://www.anchorterminal.com/compare/fastmail-vs-zoho-mail"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 9,
        "edge": "fastmail",
        "email-agent-mcp": 50,
        "fastmail": 59,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 27,
        "edge": "email-agent-mcp",
        "email-agent-mcp": 79,
        "fastmail": 52,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 6,
        "edge": "email-agent-mcp",
        "email-agent-mcp": 79,
        "fastmail": 73,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 3,
        "edge": "email-agent-mcp",
        "email-agent-mcp": 67,
        "fastmail": 64,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 30,
        "edge": "email-agent-mcp",
        "email-agent-mcp": 60,
        "fastmail": 30,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 68,
        "edge": "email-agent-mcp",
        "email-agent-mcp": 84,
        "fastmail": 16,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 32,
        "edge": "fastmail",
        "email-agent-mcp": 42,
        "fastmail": 74,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "email-agent-mcp scores 65.9 (B) on agent readiness against Fastmail API (JMAP)'s 54.9 (C), and leads in 5 of 7 scored categories. Fastmail API (JMAP) leads on reliability and transparency \u0026 trust. 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.",
      "fastmail": "A mailbox API built on the open JMAP standard, with read-only tokens, six OAuth scopes and an MCP server that separates read, write and send access. Fastmail publishes no OpenAPI file, SDK, API changelog, request rate limit or SLA, and its customer terms forbid programmatically generated email to addresses outside the account."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-fastmail",
    "json": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-fastmail.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-fastmail.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-fastmail.min.md"
  },
  "markdown": "email-agent-mcp scores 65.9 (B) on agent readiness against Fastmail API (JMAP)'s 54.9 (C), and leads in 5 of 7 scored categories. Fastmail API (JMAP) leads on reliability and transparency \u0026 trust. 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- Fastmail API (JMAP): grade C, 54.9/100, rank #892 of 1510. Markdown https://www.anchorterminal.com/tools/fastmail.md · JSON https://www.anchorterminal.com/api/v1/tools/fastmail.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- Schema \u0026 documentation, 79 against 52\n- Agent ergonomics, 79 against 73\n- Payments \u0026 pricing, 60 against 30\n- Maintenance \u0026 community, 84 against 16\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### Fastmail API (JMAP) (C)\n\nGood for: An agent working in its owner's own Fastmail mailbox, where JMAP gives batched reads, structured search and state-based sync on an open standard, and MCP gives a ready connection with read, write and send levels.\n\nAhead on:\n- Reliability, 59 against 50\n- Transparency \u0026 trust, 74 against 42\n\nWatch for: The customer terms forbid programmatically generated email to addresses outside the account, and say the service is not for machine-to-machine workflows\n\n\n## Why the edge\n\n### Maintenance \u0026 community: email-agent-mcp +68\n\n- email-agent-mcp (84): v0.5.0 was tagged and published on 5 November 2026 (30). Nine npm releases in the 90 days from 8 August, v0.3.0 to v0.5.0 (20). Pull requests up to #234 merged in the history, all by the one maintainer; issue responses couldn't be read through GitHub's API that day (10 of 25). io.github.UseJunior/email-agent-mcp is in the official MCP registry with 0.5.0 marked latest (15). CI, commitlint, semgrep and Codecov workflows (9 of 10). Total 84.\n- Fastmail API (JMAP) (16): Fastmail keeps no API changelog, so recency rests on what we could date. The last dated change to the API or MCP server is the MCP launch on 22 April 2026, 196 days before this check. The 29 October 2026 blog post announces a Dynamic DNS API on api.fastmail.com with its own token type, which isn't part of the JMAP mailbox API graded here, and the JMAP section of the developer page carries no date (0 of 30). No dated API entries in the 90 days from 6 August; the blog's posts in that window cover the EU data region, a data recovery, a mailbox view, calendar time zones and Dynamic DNS (0 of 20). Support answers by email and form around the clock with a stated 24-hour reply target, per the 8 October check, and fastmail/JMAP-Samples has a last commit on 6 April 2026. No developer forum was found (9 of 15 for a closed service). No official SDK. The MCP registry wasn't searched, since its API is barred to us (3 of 15). The samples repository takes dependency updates and has no CI (4 of 10). 0 + 0 + 9 + 3 + 4 = 16.\n\n### Transparency \u0026 trust: Fastmail API (JMAP) +32\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- Fastmail API (JMAP) (74): The editorial half. A closed service with API Terms of Service and an API Developer Policy that state the grant, the limits and the governing law (Victoria, Australia). The protocol is an open IETF standard and the sample code is MIT (15 of 30). The privacy policy, updated 2 July 2026, names retention periods (IP logs up to one year, the address up to twelve months after closure, account data deleted within seven days of closure) and says customer data is not used to train AI. The DPA is public in five sections and three annexes, a transparency report counts law-enforcement requests by year, and the data residency page says backups, logs and debug systems stay in the US for EU accounts. No retention period for backups beyond the seven-day minimum was found (26 of 30). No deprecation policy. The API terms say Fastmail may make backwards-incompatible changes and will try to give notice (4 of 20). DPA Annex 3 names 36 subprocessors with the purpose of each, without a country for each, and the security help page names data centres in Philadelphia, St. Louis and Amsterdam (17 of 20). The provenance half is computed from the provenance block.\n\n### Payments \u0026 pricing: email-agent-mcp +30\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- Fastmail API (JMAP) (30): No x402, MPP or L402 on the developer page or the pricing page (0 of 40). Plan prices are public without a login, $6 a month or $60 a year for Individual and $6 a user a month for Business Standard, with API access included and no per-call price (10 of 20). A trial of up to 30 days needs no card, though Fastmail may ask for a mobile number, and the trial page doesn't say whether API tokens work during it (20). A person signs up in a browser and creates a token in settings, or consents on an OAuth screen (0 of 20).\n\n### Schema \u0026 documentation: email-agent-mcp +27\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- Fastmail API (JMAP) (52): Graded on the JMAP API. Fastmail publishes no OpenAPI or similar file. The contract is the IETF text (RFC 8620, 8621 and 9610) plus a session object that lists capabilities and limits for a signed-in caller, which is machine-readable discovery but not a full schema. The MCP server's tool definitions sit behind sign-in and were not read (10 of 25). `www.fastmail.com/llms.txt` returned 404 on 8 October 2026 (0). The RFCs state the purpose, arguments, defaults and error cases of every method, and Fastmail's own page documents the scopes and the Masked Email extension. Nothing says when to prefer JMAP, IMAP or MCP (14 of 20). Arguments are typed in the RFCs with defaults and required fields, and filters are structured objects, with no schema file to validate against (12 of 15). The RFCs carry worked requests and error lists, and fastmail/JMAP-Samples has scripts in JavaScript, Python, Perl and Lua. Fastmail documents no errors of its own beyond `rateLimit` on Masked Email (11 of 15). Capability URIs version the protocol, but no API changelog was found. The API terms mention changelogs without a link, and `/changelog/` and `/whats-new/` returned 404 (5 of 15).\n\n### Reliability: Fastmail API (JMAP) +9\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- Fastmail API (JMAP) (59): Graded on the JMAP API with the hosted lines. fastmailstatus.com, run on Instatus, lists ten components with notice history, though none is named for JMAP or the API, so 15 as for other vendor pages with no component for the listed product. In the 90 days from 6 August 2026 the history shows partial outages that stopped some users reaching the service, 8 hours 17 minutes from 25 August (Login \u0026 sessions, 'a small number of users'), 1 hour 8 minutes on 4 September ('some users') and 5 hours 23 minutes on 7 October (one server, users with a full stop in the username), plus 11 hours 13 minutes of bounced replies from masked addresses from 23 September. Three support-ticket incidents (5 October, 14 October, 29 October) don't touch the API. Each incident touched a subset of users, so all are partial and read as minor (20). Sending limits are published per plan (8,000 messages a day on Individual and Standard, 120 on a trial, 500 logins per ten minutes), but no API request rate was found (8 of 15, a partial kept under the in-between rule). RFC 8620 defines the `urn:ietf:params:jmap:error:limit` problem type and a `rateLimit` error, and the developer page says Masked Email creation returns a `rateLimit` SetError. No Retry-After or backoff guidance was found, and `EmailSubmission/set` has no idempotency key (6 of 15, a partial kept). No SLA was found in the terms of service, the API terms or the pricing page, and the API terms say the APIs come as is (0). JMAP access with an API token carries no beta or preview label (10). 15 + 20 + 8 + 6 + 0 + 10 = 59.\n\n### Agent ergonomics: email-agent-mcp +6\n\n- email-agent-mcp (79): 27 tools in the full profile, the 11 to 30 band, plus the `observe` profile as a read-only subset (20 of 25). List and search tools filter and page; we read the tool table, not every parameter (16 of 20). Errors are sanitised and use stable reasons such as NOT_SUPPORTED, failing closed before a Gmail mutation (15 of 20). readOnlyHint and destructiveHint on the tools in source; sends take no idempotency key (16 of 20). One npx command and a setup wizard for OAuth and mailbox choice; TypeScript only (12 of 15). Total 79.\n- Fastmail API (JMAP) (73): Graded on the JMAP API as RFC 8620 and 8621 specify it. Every `/get` call takes a `properties` list, `Email/get` returns no body text unless `fetchTextBodyValues` is set, `maxBodyValueBytes` caps it, and method calls batch into one request with back-references, so a search and a fetch cost one round trip. The MCP tool count was not read (22 of 25). `/query` takes a structured filter, sort, `position`, `anchor`, `limit` and `collapseThreads`, with `/changes` and `/queryChanges` for sync (20). Errors are typed at three levels, request problem details, method errors such as `invalidArguments` and per-object SetErrors such as `tooManyRecipients` and `forbiddenFrom`. Fastmail adds no error guide of its own (17 of 20). `ifInState` makes a write conditional on the state the client last saw, and creation IDs tie results to requests, but there is no idempotency key for sending. MCP annotations were not read (9 of 20). Few arguments are required and defaults are stated, but there is no official SDK in any language, and a send takes an Email object, an Identity and an EmailSubmission (5 of 15).\n\n## Score by category\n\n| Category | Weight | email-agent-mcp | Fastmail API (JMAP) | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 50 | 59 | Fastmail API (JMAP) +9 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 79 | 52 | email-agent-mcp +27 |\n| Agent ergonomics | 13% (16.2 this run) | 79 | 73 | email-agent-mcp +6 |\n| Security \u0026 auth | 14% (17.5 this run) | 67 | 64 | email-agent-mcp +3 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 30 | email-agent-mcp +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 84 | 16 | email-agent-mcp +68 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 42 | 74 | Fastmail API (JMAP) +32 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **65.9 · B** | **54.9 · C** | |\n\n## Facts side by side\n\n| Fact | email-agent-mcp | Fastmail API (JMAP) |\n| --- | --- | --- |\n| Kind | MCP server | HTTP API |\n| Vendor | UseJunior | Fastmail Pty Ltd |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | stdio | HTTP |\n| Auth | OAuth | OAuth or key |\n| Pricing | Free | Paid |\n| x402 | no | no |\n| Licence | Apache-2.0 | Proprietary service under Fastmail's API Terms of Service and API Developer Policy. JMAP is an open IETF standard, and the sample code on GitHub is MIT |\n| Tools exposed | 27 | none |\n| Read-only variant documented | yes | yes |\n| llms.txt | no | no |\n| MCP registry | `io.github.UseJunior/email-agent-mcp` | not listed |\n| Last release | 2026-11-05 | 2026-04-22 |\n| Terms last updated | no document linked | no date given |\n| Privacy policy last updated | no document linked | no date given |\n| Customer content may train models | not read yet | not found in the text |\n| Terms restrict automated access | not read yet | not found in the text |\n| Terms restrict benchmarking | not read yet | yes |\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 | 123 stars |\n\n## How the scores have moved\n\n### email-agent-mcp\n\nNo score change since it was listed.\n\n### Fastmail API (JMAP)\n\n- +0.8 on 4 November 2026: correction, time\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**Fastmail API (JMAP).** A mailbox API built on the open JMAP standard, with read-only tokens, six OAuth scopes and an MCP server that separates read, write and send access. Fastmail publishes no OpenAPI file, SDK, API changelog, request rate limit or SLA, and its customer terms forbid programmatically generated email to addresses outside the account.\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### Fastmail API (JMAP)\n\n1. Fetch `https://api.fastmail.com/jmap/session` with `Authorization: Bearer \u003ctoken\u003e` first. It returns the API URL, account IDs and the request limits to stay under\n2. Ask the owner for a read-only token unless the task writes. Sending needs both the Email and Email submission scopes\n3. Request only the `properties` you need. Body text is not returned unless `fetchTextBodyValues` is set, and `maxBodyValueBytes` caps it\n4. Sync with `Email/changes` from a stored state. On `cannotCalculateChanges`, fetch again from scratch\n5. Do not send generated mail to outside recipients without the owner's review. The customer terms forbid it, and trial accounts stop at 120 messages a day\n\n## Questions\n\n### Which is better for AI agents, email-agent-mcp or Fastmail API (JMAP)?\n\nemail-agent-mcp scores 65.9 (B) on agent readiness against Fastmail API (JMAP)'s 54.9 (C), and leads in 5 of 7 scored categories. Fastmail API (JMAP) leads on reliability and transparency \u0026 trust.\n\n### Do email-agent-mcp and Fastmail API (JMAP) need an API key?\n\nemail-agent-mcp uses an OAuth sign-in. Fastmail API (JMAP) takes an API key or an OAuth sign-in.\n\n### Can an agent call email-agent-mcp and Fastmail API (JMAP) without installing anything?\n\nemail-agent-mcp runs on your own machine, with no hosted endpoint listed. No hosted endpoint is listed for Fastmail API (JMAP).\n\n### Are email-agent-mcp and Fastmail API (JMAP) open source?\n\nemail-agent-mcp is open source (Apache-2.0). No open-source release is listed for Fastmail API (JMAP).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/email-agent-mcp-vs-fastmail.json, and with the fewest tokens: https://www.anchorterminal.com/compare/email-agent-mcp-vs-fastmail.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"email-agent-mcp\", \"b\": \"fastmail\"}`. From a terminal: `anchor compare email-agent-mcp fastmail`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/email-agent-mcp.json and https://www.anchorterminal.com/api/v1/tools/fastmail.json\n\n## Other comparisons with email-agent-mcp or Fastmail API (JMAP)\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 Fastmail API (JMAP)](https://www.anchorterminal.com/compare/aurinko-email-vs-fastmail.md)\n- [CloudPost vs email-agent-mcp](https://www.anchorterminal.com/compare/cloudpost-vs-email-agent-mcp.md)\n- [CloudPost vs Fastmail API (JMAP)](https://www.anchorterminal.com/compare/cloudpost-vs-fastmail.md)\n- [email-agent-mcp vs EmailEngine](https://www.anchorterminal.com/compare/email-agent-mcp-vs-emailengine.md)\n- [email-agent-mcp vs Gmail API](https://www.anchorterminal.com/compare/email-agent-mcp-vs-gmail-api.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 Fastmail API (JMAP)](https://www.anchorterminal.com/compare/emailengine-vs-fastmail.md)\n- [Fastmail API (JMAP) vs Gmail API](https://www.anchorterminal.com/compare/fastmail-vs-gmail-api.md)\n- [Fastmail API (JMAP) vs Himalaya](https://www.anchorterminal.com/compare/fastmail-vs-himalaya.md)\n- [Fastmail API (JMAP) vs Nylas Email API](https://www.anchorterminal.com/compare/fastmail-vs-nylas-email.md)\n- [Fastmail API (JMAP) vs Outlook Mail (Microsoft Graph)](https://www.anchorterminal.com/compare/fastmail-vs-outlook-mail-graph.md)\n- [Fastmail API (JMAP) vs Unipile](https://www.anchorterminal.com/compare/fastmail-vs-unipile.md)\n- [Fastmail API (JMAP) vs Zoho Mail API](https://www.anchorterminal.com/compare/fastmail-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 Fastmail API (JMAP)",
        "url": ""
      }
    ],
    "description": "email-agent-mcp scores 65.9 (B) to Fastmail's 54.9 (C) for mailbox access. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "email-agent-mcp B 65.9",
      "Fastmail API (JMAP) C 54.9",
      "scores"
    ],
    "h1": "email-agent-mcp vs Fastmail API (JMAP)",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/email-agent-mcp-vs-fastmail",
    "published": "2026-10-01",
    "section": "tools",
    "title": "email-agent-mcp vs Fastmail for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-fastmail"
  },
  "tokens": {
    "markdown": 5000,
    "slim": 3230
  },
  "version": 1
}
