{
  "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": 396,
        "ranked": true,
        "rankOf": 1486,
        "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": "EmailEngine scores 68.8 (B) on agent readiness against email-agent-mcp's 65.9 (B), and leads in 5 of 7 scored categories. email-agent-mcp leads on payments \u0026 pricing.",
    "b": {
      "slug": "emailengine",
      "name": "EmailEngine",
      "vendor": "Postal Systems OÜ",
      "vendorUrl": "https://emailengine.app",
      "kind": "http-api",
      "category": "mailbox-access",
      "summary": "EmailEngine is self-hosted software from Postal Systems that puts one REST API over Gmail, Microsoft 365 and IMAP mailboxes, with webhooks for new mail and a beta MCP server. The owner runs it with Redis.",
      "url": "https://www.anchorterminal.com/tools/emailengine",
      "markdownUrl": "https://www.anchorterminal.com/tools/emailengine.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/emailengine.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/emailengine.json",
      "dns": "emailengine.grade.anchorterminal.com",
      "repo": "https://github.com/postalsys/emailengine",
      "license": "Source available under the EmailEngine licence agreement, version 2.1 of 17 October 2023. Not open source. The PHP SDK is MIT",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "emailengine-app"
        },
        {
          "registry": "oci",
          "name": "postalsys/emailengine"
        },
        {
          "registry": "packagist",
          "name": "postalsys/emailengine-php"
        }
      ],
      "auth": "api-key",
      "authNotes": "Access is granted by whoever runs the instance, with no vendor approval or app review. Every request takes a 64-character token as `Authorization: Bearer`, or in the `access_token` query parameter. Tokens are created in the admin interface, with the CLI (`emailengine tokens issue`) or through POST /v1/tokens, which only mints tokens bound to one account or narrowed by a permissions record. A token carries scopes (`*`, api, metrics, smtp, imap-proxy, mcp, mcp-manage), an optional account binding, allowlists of actions (read, write, send, destructive) and groups, an IP allowlist, an expiry and a rate limit. The beta MCP endpoint also has an optional built-in OAuth 2.1 server. Mailboxes are connected with the operator's own Google and Microsoft OAuth2 apps, service accounts or IMAP passwords, which stay inside the instance.",
      "pricing": "paid",
      "pricingNotes": "$1,450 or EUR 1,200 a year, excluding VAT, for unlimited mailboxes, instances and API calls, bought with an account at postalsys.com. Every install can start a 14-day trial with full functionality from its own dashboard, with no sign-up and no card, so an agent's owner can start without a contract. When the trial ends the instance stops processing accounts until a licence key is added. A perpetual licence is sold through sales with no public price. The owner also pays for the server and Redis (https://emailengine.app/, https://postalsys.com/plans, checked 2026-10-08).",
      "priceSummary": "$120.83 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on emailengine.app, in the documentation or in the OpenAPI spec (checked 2026-10-08). Licences are bought by card at postalsys.com, with Stripe named as the payment processor.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 2237,
        "npmWeekly": 388,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://learn.emailengine.app/",
      "llmsTxt": "https://emailengine.app/llms.txt",
      "openapi": "https://go.emailengine.app/swagger.json",
      "capabilities": [
        "mailbox.read",
        "mailbox.search",
        "mailbox.send",
        "mailbox.drafts",
        "mailbox.sync"
      ],
      "tags": [
        "self-hosted",
        "source-available",
        "paid",
        "trial",
        "api-key",
        "openapi",
        "llms-txt",
        "mcp",
        "webhooks",
        "imap",
        "gmail",
        "microsoft-365",
        "docker",
        "nodejs",
        "php"
      ],
      "lastRelease": "2026-10-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 68.8,
        "grade": "B",
        "agentReady": false,
        "rank": 267,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 3,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 81,
          "maintenance": 81,
          "payments": 40,
          "reliability": 79,
          "schema": 91,
          "security": 71,
          "transparency": 75
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-01"
        },
        "negative": -6,
        "negativeNotes": [
          "27 September to 18 October 2026, one term, -3. Breaking changes in patch and minor releases with no earlier notice found. 2.81.2 (27 September), a patch release, removed the `bounces` field from message responses and the messageNew payload, listed under bug fixes. 2.82.0 (1 October) removed the Document Store, announced in July. 2.83.0 (8 October) stopped sending global webhook headers to account-level webhook URLs, so an account that relied on them has to carry its own. 2.84.2 (18 October), a patch release, made IMAP and SMTP connections that start in cleartext fail unless the server supports STARTTLS, with `requireTLS: false` as the opt-out. None is marked breaking. Each names a way out and the last two close security gaps, so one term at the floor for the pattern, as firecrawl-mcp and docker-agent were read (https://github.com/postalsys/emailengine/blob/master/CHANGELOG.md)",
          "8 and 18 October 2026, -3. 2.84.2 fixed a flaw in which any token that could read its own account could, through the server-signatures route's query, run any main-thread command against any account, and closed further paths a bound or narrowed token could use to reach other accounts. 2.83.0 and 2.84.2 also stopped an account-scoped token from redirecting the operator's global webhook headers, usually a bearer credential, to its own host. Fixed and described in the commit messages behind the changelog entries, with no advisory found (GitHub's advisory page couldn't be read), so a reduced deduction, as terraform-mcp took for cross-tenant token reuse and a redirectable bearer token (https://github.com/postalsys/emailengine/commit/c87c8612e41e92bc5abf79c8d3e42978b4d91364, https://github.com/postalsys/emailengine/commit/8b89a612b85f0d645d16fde56452719a4dd68f6a)"
        ],
        "verdict": "A self-hosted REST API over Gmail, Microsoft 365 and IMAP, with a public OpenAPI 3.0 spec and tokens that can be bound to one account, limited by action and group, and rate limited. It needs a server, Redis and a $1,450 yearly licence after a 14-day trial, and breaking changes have shipped in patch releases without notice.",
        "bestFor": "A team that must keep mailbox access on its own infrastructure, has many mailboxes across Gmail, Microsoft 365 and IMAP, and can run a server and Redis.",
        "strengths": [
          "Public OpenAPI 3.0 spec for version 2.87.0 with 100 operations, each described, plus llms.txt on both sites and a capabilities.json manifest",
          "Tokens can be bound to one account, narrowed by action and group, limited by IP range, expiry and rate, and are stored only as SHA-256 hashes",
          "Idempotency-Key header on both send routes, 429 responses carry Retry-After and a ttl field, and every 404 carries a NotFound code",
          "29 releases between 3 August and 29 October 2026, and the release workflow publishes only after the test workflow passes",
          "Written prompt-injection guidance, with MCP mail access set to none by default and message bodies returned as sanitised HTML"
        ],
        "weaknesses": [
          "Not open source. Running it beyond the 14-day trial needs a subscription at $1,450 or EUR 1,200 a year",
          "The owner has to run a server and Redis. There is no hosted service, status page or SLA",
          "Removals and a STARTTLS requirement landed in patch and minor releases between 27 September and 18 October 2026, none marked breaking",
          "2.84.2 fixed cross-account paths for bound tokens, with no advisory found, and security fixes go to the latest release only",
          "A token may also travel in the `access_token` query parameter, and API authentication can be switched off in settings",
          "One maintainer and no guaranteed support response time"
        ],
        "agentNotes": [
          "Ask the operator for a token bound to one account with a permissions record. Mint more with POST /v1/tokens, which refuses instance-wide tokens without one",
          "Send the token in the Authorization header, not the `access_token` query parameter, so it stays out of proxy logs",
          "Page with `cursor` from `nextPageCursor`. `page` works only on IMAP accounts, and search covers one folder unless `path` is `\\All` on Gmail or Microsoft Graph",
          "Set an Idempotency-Key header on POST /v1/account/{account}/submit. A 2xx means queued, so follow the result through the outbox or the messageSent and messageFailed webhooks",
          "Treat message text as untrusted. For MCP, the operator must enable the endpoint first and mail access starts at none",
          "Check the instance runs 2.84.2 or later before relying on account-bound tokens, since earlier versions let a bound token reach other accounts"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 68.8
          }
        ],
        "editorialScores": {
          "ergonomics": 81,
          "maintenance": 81,
          "payments": 40,
          "reliability": 79,
          "schema": 91,
          "security": 71,
          "transparency": 70
        },
        "provenanceScore": 80,
        "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-11-01",
          "oldest": "2026-11-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "curl -LO https://go.emailengine.app/docker-compose.yml\ndocker compose up -d",
        "http": "curl \"https://emailengine.example.com/v1/account/user@example.com/messages?path=INBOX\u0026page=0\u0026pageSize=50\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"",
        "claudeCode": "claude mcp add --transport http emailengine https://emailengine.example.com/mcp \\\n  --header \"Authorization: Bearer YOUR_ACCESS_TOKEN\"",
        "config": {
          "mcpServers": {
            "emailengine": {
              "headers": {
                "Authorization": "Bearer YOUR_ACCESS_TOKEN"
              },
              "type": "http",
              "url": "https://emailengine.example.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/mailbox.read",
        "tool": "https://letme.dev/emailengine"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "EmailEngine subscription, $1,450 billed yearly",
          "unit": "month",
          "usd": 120.83,
          "note": "unlimited mailboxes, instances and API calls, VAT excluded, 14-day trial without a card"
        }
      ],
      "provenance": {
        "legalEntity": "Postal Systems OÜ, Narva mnt 5, 10117 Tallinn, Estonia, registry code 14971894",
        "domain": "emailengine.app",
        "domainRegistered": "2021-07-28",
        "endpointOnVendorDomain": null,
        "terms": "https://postalsys.com/tos",
        "privacy": "https://emailengine.app/privacy-policy",
        "statusPage": "",
        "changelog": "https://github.com/postalsys/emailengine/blob/master/CHANGELOG.md",
        "securityTxt": "valid",
        "checked": "2026-11-01",
        "notes": [
          "The about page names Postal Systems OÜ at Narva mnt 5, 10117 Tallinn, with registry code 14971894 and VAT number EE102255902, and says the company is run by one person.",
          "RDAP for emailengine.app shows registration on 28 July 2021 through Namecheap.",
          "emailengine.app/.well-known/security.txt is PGP-signed, expires on 1 June 2027 and points to GitHub private advisories and SECURITY.md (re-read on 1 November 2026). postalsys.com has its own security.txt with no Expires field.",
          "The terms of service at postalsys.com/tos are dated 14 May 2020 and cover the subscription. The software licence is the EmailEngine licence agreement, version 2.1 of 17 October 2023, governed by Estonian law.",
          "The privacy policy at emailengine.app/privacy-policy has an effective date of 29 July 2026 and covers the website and the licence account, with Stripe named for payments.",
          "The API runs on the owner's instance, so there is no vendor endpoint and no status page."
        ],
        "score": 80
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/emailengine.json",
      "live": {
        "slug": "emailengine",
        "versions": [
          {
            "registry": "github",
            "name": "postalsys/emailengine",
            "version": "v2.87.2",
            "released": "2026-11-05",
            "seenAt": "2026-11-06T23:24:00.647086437Z"
          },
          {
            "registry": "npm",
            "name": "emailengine-app",
            "version": "2.87.2",
            "seenAt": "2026-11-06T23:24:00.397367418Z"
          }
        ],
        "githubStars": 2247,
        "npmWeekly": 608,
        "securityTxt": {
          "url": "https://emailengine.app/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-06-01T00:00:00.000Z",
          "checkedAt": "2026-11-07T16:00:19.95634791Z"
        },
        "llmsTxt": {
          "url": "https://emailengine.app/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:23.081082295Z"
        },
        "domain": {
          "domain": "emailengine.app",
          "registered": "2021-07-28",
          "source": "https://pubapi.registry.google/rdap/domain/emailengine.app",
          "checkedAt": "2026-11-01T14:15:23.701577852Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/postalsys/emailengine/master/CHANGELOG.md",
            "kind": "deprecations",
            "status": 304,
            "checkedAt": "2026-11-07T14:22:59.227515583Z",
            "changedAt": "2026-11-06T13:43:59.100813827Z",
            "fingerprint": "6a30ab231f41"
          },
          {
            "url": "https://emailengine.app/privacy-policy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-11-07T14:09:12.259995409Z",
            "changedAt": "2026-10-28T04:17:31.674005042Z",
            "fingerprint": "4345c2b48e8f"
          },
          {
            "url": "https://postalsys.com/tos",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-11-07T14:17:06.157293644Z",
            "changedAt": "2026-10-28T04:41:06.392435781Z",
            "fingerprint": "ae35c706d5a7"
          }
        ],
        "github": {
          "repo": "postalsys/emailengine",
          "checkedAt": "2026-11-02T09:17:53.96265013Z",
          "stars": 2245,
          "archived": false,
          "issuesEnabled": false,
          "pushedAt": "2026-11-02T08:10:51Z",
          "openIssues": 0,
          "openPRs": 3,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 46,
          "ci": {
            "branch": "master",
            "runs": 50,
            "success": 46,
            "failure": 0,
            "other": 4,
            "latest": "success",
            "latestAt": "2026-10-29T14:59:19Z"
          }
        },
        "updatedAt": "2026-11-07T16:00:19.95634791Z"
      }
    },
    "edges": [
      {
        "by": 33,
        "category": "transparency",
        "leads": "emailengine",
        "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. The source is public and readable under the EmailEngine licence agreement 2.1, a proprietary licence with clear terms on trial, keys, resale and source changes. It is not an OSI licence, and the vendor says so (20 of 30). The security page and the compliance page list what Redis holds, state that message bodies are not stored, and list every outbound connection. Postal Systems says it is neither controller nor processor for mailbox data. The website privacy policy gives no retention periods, and the security page still calls error reporting opt-in while the licensing page says a trial switches it on (20 of 30). No written deprecation policy was found. Since 2.86.0 (22 October 2026) the pre-2.79 token endpoints answer with `Deprecation`, `Sunset` and `Link` headers, and the changelog dates their removal and that of eight leftover request fields to after 1 January 2027, after the Document Store removal of 1 October was announced in July. But 2.84.2 made STARTTLS required in a patch release with no notice, and security fixes go to the latest release only (14 of 20, as hyperbolic's dated Sunset headers without a written policy). The licence check, feature summary, update check and Sentry reporting are all disclosed, with EENGINE_BEACON_DISABLED and EENGINE_UPDATE_CHECK_DISABLED as opt-outs. The licence check can't be turned off on a subscription (16 of 20). The provenance half is computed from the provenance block."
        },
        "scores": {
          "a": 42,
          "b": 75
        }
      },
      {
        "by": 29,
        "category": "reliability",
        "leads": "emailengine",
        "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": "Read with the local-software lines, since the owner runs EmailEngine and Postal Systems hosts nothing an agent calls. Graded on the REST API. Official npm package emailengine-app, 2.87.0 in the repository on 29 October 2026, declares Node.js 20.19.0 or later, with a Docker image, an installer script and binaries for macOS, Linux and Windows (20). The test workflow runs lint, a licence check, unit tests, live Dovecot tests and Playwright end-to-end tests, and the release workflow waits for it to pass on the same commit before publishing to npm or Docker. The last eight runs on master to 8 October 2026 passed per the GitHub API; run status wasn't readable on 1 November (25, per the 8 October check). Open crash and regression issues couldn't be counted, because the GitHub API reported issues as disabled on the repository. The changelog shows steady fixes (12 of 25, unchecked). Releases follow conventional commits with a dated changelog, but 2.81.2, a patch release, removed the `bounces` field, 2.82.0, a minor release, removed the Document Store, 2.83.0 moved global webhook headers off account-level targets and 2.84.2, a patch release, made STARTTLS required by default, none marked as breaking (7 of 15). Version 2.87.0, past 1.0 (15). No status page or SLA applies to software the owner runs."
        },
        "scores": {
          "a": 50,
          "b": 79
        }
      },
      {
        "by": 20,
        "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": "Read with the self-hosted rule, scoring the paid option, because the software needs a licence after the trial. No x402, MPP or L402 (0 of 40). The price is public without a login, $1,450 or EUR 1,200 a year flat, with no per-call or per-mailbox unit, read as plan pricing (10 of 20). A 14-day trial with full functionality starts from the instance's own dashboard with no sign-up and no card (20). No vendor account is needed for the trial and the CLI can issue tokens, but the trial starts with a button in the admin interface and a licence is bought through a browser sign-up at postalsys.com. The line has no middle step, and 10 is our judgement call for a route that needs one click and no account (10 of 20)."
        },
        "scores": {
          "a": 60,
          "b": 40
        }
      },
      {
        "by": 12,
        "category": "schema",
        "leads": "emailengine",
        "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 REST API. A public OpenAPI 3.0 spec for 2.87.0 at go.emailengine.app/swagger.json with 74 paths and 100 operations, read on 1 November 2026 (25). llms.txt on emailengine.app and learn.emailengine.app, an LLM context page and a capabilities.json manifest (10). All 100 operations carry a description, several with usage guidance such as preferring cursors over page numbers, the note that a 2xx on submit means queued, and a page on when to use MCP or REST. Limits of search by folder are stated in one sentence (16 of 20). Parameters are typed with defaults, minimums, maximums and 121 enum declarations, though account and gateway settings accept wide objects (12 of 15). Every operation documents 401, 403, 429 and 500, an error-codes page lists codes with a retryable flag, and examples come in curl, JavaScript, Python and PHP. Gmail API errors pass through without a code (13 of 15). The API is versioned at /v1 and CHANGELOG.md has 192 dated releases (15)."
        },
        "scores": {
          "a": 79,
          "b": 91
        }
      }
    ],
    "facts": [
      {
        "a": "MCP server",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "UseJunior",
        "b": "Postal Systems OÜ",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0",
        "b": "Source available under the EmailEngine licence agreement, version 2.1 of 17 October 2023. Not open source. The PHP SDK is MIT",
        "name": "Licence"
      },
      {
        "a": "27",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "io.github.UseJunior/email-agent-mcp",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-11-05",
        "b": "2026-10-29",
        "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": "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": "yes",
        "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": "2.2k stars, 388 npm/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.3/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "EmailEngine scores 68.8 (B) on agent readiness against email-agent-mcp's 65.9 (B), and leads in 5 of 7 scored categories. email-agent-mcp leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, email-agent-mcp or EmailEngine?"
      },
      {
        "answer": "email-agent-mcp uses an OAuth sign-in. EmailEngine needs an API key.",
        "question": "Do email-agent-mcp and EmailEngine need an API key?"
      },
      {
        "answer": "email-agent-mcp runs on your own machine, with no hosted endpoint listed. No hosted endpoint is listed for EmailEngine.",
        "question": "Can an agent call email-agent-mcp and EmailEngine without installing anything?"
      },
      {
        "answer": "email-agent-mcp is open source (Apache-2.0). No open-source release is listed for EmailEngine.",
        "question": "Are email-agent-mcp and EmailEngine open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Payments \u0026 pricing, 60 against 40"
        ],
        "also": [
          "Runs on your own machine",
          "Open source",
          "No incidents deducted, where EmailEngine loses 6 points for them"
        ],
        "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, 79 against 50",
          "Schema \u0026 documentation, 91 against 79",
          "Transparency \u0026 trust, 75 against 42"
        ],
        "also": null,
        "goodFor": "A team that must keep mailbox access on its own infrastructure, has many mailboxes across Gmail, Microsoft 365 and IMAP, and can run a server and Redis.",
        "slug": "emailengine",
        "watchFor": "Not open source. Running it beyond the 14-day trial needs a subscription at $1,450 or EUR 1,200 a year"
      }
    ],
    "history": {
      "email-agent-mcp": null,
      "emailengine": [
        {
          "causes": [
            "product",
            "event"
          ],
          "date": "2026-11-01",
          "delta": -2.8,
          "from": 71.6,
          "fromGrade": "BB",
          "to": 68.8,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.2,
          "from": 71.4,
          "fromGrade": "BB",
          "to": 71.6,
          "toGrade": "BB"
        }
      ]
    },
    "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-emailengine.json",
        "title": "Aurinko Email API vs EmailEngine",
        "url": "https://www.anchorterminal.com/compare/aurinko-email-vs-emailengine"
      },
      {
        "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-emailengine.json",
        "title": "CloudPost vs EmailEngine",
        "url": "https://www.anchorterminal.com/compare/cloudpost-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-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/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/emailengine-vs-himalaya.json",
        "title": "EmailEngine vs Himalaya",
        "url": "https://www.anchorterminal.com/compare/emailengine-vs-himalaya"
      },
      {
        "json": "https://www.anchorterminal.com/compare/emailengine-vs-nylas-email.json",
        "title": "EmailEngine vs Nylas Email API",
        "url": "https://www.anchorterminal.com/compare/emailengine-vs-nylas-email"
      },
      {
        "json": "https://www.anchorterminal.com/compare/emailengine-vs-outlook-mail-graph.json",
        "title": "EmailEngine vs Outlook Mail (Microsoft Graph)",
        "url": "https://www.anchorterminal.com/compare/emailengine-vs-outlook-mail-graph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/emailengine-vs-unipile.json",
        "title": "EmailEngine vs Unipile",
        "url": "https://www.anchorterminal.com/compare/emailengine-vs-unipile"
      },
      {
        "json": "https://www.anchorterminal.com/compare/emailengine-vs-zoho-mail.json",
        "title": "EmailEngine vs Zoho Mail API",
        "url": "https://www.anchorterminal.com/compare/emailengine-vs-zoho-mail"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 29,
        "edge": "emailengine",
        "email-agent-mcp": 50,
        "emailengine": 79,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 12,
        "edge": "emailengine",
        "email-agent-mcp": 79,
        "emailengine": 91,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 2,
        "edge": "emailengine",
        "email-agent-mcp": 79,
        "emailengine": 81,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 4,
        "edge": "emailengine",
        "email-agent-mcp": 67,
        "emailengine": 71,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 20,
        "edge": "email-agent-mcp",
        "email-agent-mcp": 60,
        "emailengine": 40,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 3,
        "edge": "email-agent-mcp",
        "email-agent-mcp": 84,
        "emailengine": 81,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 33,
        "edge": "emailengine",
        "email-agent-mcp": 42,
        "emailengine": 75,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "EmailEngine scores 68.8 (B) on agent readiness against email-agent-mcp's 65.9 (B), and leads in 5 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.",
      "emailengine": "A self-hosted REST API over Gmail, Microsoft 365 and IMAP, with a public OpenAPI 3.0 spec and tokens that can be bound to one account, limited by action and group, and rate limited. It needs a server, Redis and a $1,450 yearly licence after a 14-day trial, and breaking changes have shipped in patch releases without notice."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-emailengine",
    "json": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-emailengine.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-emailengine.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-emailengine.min.md"
  },
  "markdown": "EmailEngine scores 68.8 (B) on agent readiness against email-agent-mcp's 65.9 (B), and leads in 5 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 #396 of 1486. Markdown https://www.anchorterminal.com/tools/email-agent-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/email-agent-mcp.json\n- EmailEngine: grade B, 68.8/100, rank #267 of 1486. Markdown https://www.anchorterminal.com/tools/emailengine.md · JSON https://www.anchorterminal.com/api/v1/tools/emailengine.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 40\n\nAlso in its favour:\n- Runs on your own machine\n- Open source\n- No incidents deducted, where EmailEngine loses 6 points for them\n\nWatch for: Pre-1.0, and every commit is by one maintainer\n\n### EmailEngine (B)\n\nGood for: A team that must keep mailbox access on its own infrastructure, has many mailboxes across Gmail, Microsoft 365 and IMAP, and can run a server and Redis.\n\nAhead on:\n- Reliability, 79 against 50\n- Schema \u0026 documentation, 91 against 79\n- Transparency \u0026 trust, 75 against 42\n\nWatch for: Not open source. Running it beyond the 14-day trial needs a subscription at $1,450 or EUR 1,200 a year\n\n\n## Why the edge\n\n### Transparency \u0026 trust: EmailEngine +33\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- EmailEngine (75): The editorial half. The source is public and readable under the EmailEngine licence agreement 2.1, a proprietary licence with clear terms on trial, keys, resale and source changes. It is not an OSI licence, and the vendor says so (20 of 30). The security page and the compliance page list what Redis holds, state that message bodies are not stored, and list every outbound connection. Postal Systems says it is neither controller nor processor for mailbox data. The website privacy policy gives no retention periods, and the security page still calls error reporting opt-in while the licensing page says a trial switches it on (20 of 30). No written deprecation policy was found. Since 2.86.0 (22 October 2026) the pre-2.79 token endpoints answer with `Deprecation`, `Sunset` and `Link` headers, and the changelog dates their removal and that of eight leftover request fields to after 1 January 2027, after the Document Store removal of 1 October was announced in July. But 2.84.2 made STARTTLS required in a patch release with no notice, and security fixes go to the latest release only (14 of 20, as hyperbolic's dated Sunset headers without a written policy). The licence check, feature summary, update check and Sentry reporting are all disclosed, with EENGINE_BEACON_DISABLED and EENGINE_UPDATE_CHECK_DISABLED as opt-outs. The licence check can't be turned off on a subscription (16 of 20). The provenance half is computed from the provenance block.\n\n### Reliability: EmailEngine +29\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- EmailEngine (79): Read with the local-software lines, since the owner runs EmailEngine and Postal Systems hosts nothing an agent calls. Graded on the REST API. Official npm package emailengine-app, 2.87.0 in the repository on 29 October 2026, declares Node.js 20.19.0 or later, with a Docker image, an installer script and binaries for macOS, Linux and Windows (20). The test workflow runs lint, a licence check, unit tests, live Dovecot tests and Playwright end-to-end tests, and the release workflow waits for it to pass on the same commit before publishing to npm or Docker. The last eight runs on master to 8 October 2026 passed per the GitHub API; run status wasn't readable on 1 November (25, per the 8 October check). Open crash and regression issues couldn't be counted, because the GitHub API reported issues as disabled on the repository. The changelog shows steady fixes (12 of 25, unchecked). Releases follow conventional commits with a dated changelog, but 2.81.2, a patch release, removed the `bounces` field, 2.82.0, a minor release, removed the Document Store, 2.83.0 moved global webhook headers off account-level targets and 2.84.2, a patch release, made STARTTLS required by default, none marked as breaking (7 of 15). Version 2.87.0, past 1.0 (15). No status page or SLA applies to software the owner runs.\n\n### Payments \u0026 pricing: email-agent-mcp +20\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- EmailEngine (40): Read with the self-hosted rule, scoring the paid option, because the software needs a licence after the trial. No x402, MPP or L402 (0 of 40). The price is public without a login, $1,450 or EUR 1,200 a year flat, with no per-call or per-mailbox unit, read as plan pricing (10 of 20). A 14-day trial with full functionality starts from the instance's own dashboard with no sign-up and no card (20). No vendor account is needed for the trial and the CLI can issue tokens, but the trial starts with a button in the admin interface and a licence is bought through a browser sign-up at postalsys.com. The line has no middle step, and 10 is our judgement call for a route that needs one click and no account (10 of 20).\n\n### Schema \u0026 documentation: EmailEngine +12\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- EmailEngine (91): Graded on the REST API. A public OpenAPI 3.0 spec for 2.87.0 at go.emailengine.app/swagger.json with 74 paths and 100 operations, read on 1 November 2026 (25). llms.txt on emailengine.app and learn.emailengine.app, an LLM context page and a capabilities.json manifest (10). All 100 operations carry a description, several with usage guidance such as preferring cursors over page numbers, the note that a 2xx on submit means queued, and a page on when to use MCP or REST. Limits of search by folder are stated in one sentence (16 of 20). Parameters are typed with defaults, minimums, maximums and 121 enum declarations, though account and gateway settings accept wide objects (12 of 15). Every operation documents 401, 403, 429 and 500, an error-codes page lists codes with a retryable flag, and examples come in curl, JavaScript, Python and PHP. Gmail API errors pass through without a code (13 of 15). The API is versioned at /v1 and CHANGELOG.md has 192 dated releases (15).\n\n## Score by category\n\n| Category | Weight | email-agent-mcp | EmailEngine | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 50 | 79 | EmailEngine +29 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 79 | 91 | EmailEngine +12 |\n| Agent ergonomics | 13% (16.2 this run) | 79 | 81 | EmailEngine +2 |\n| Security \u0026 auth | 14% (17.5 this run) | 67 | 71 | EmailEngine +4 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 40 | email-agent-mcp +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 84 | 81 | email-agent-mcp +3 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 42 | 75 | EmailEngine +33 |\n| Negative events | ≤15 | 0 | -6 | |\n| **Total** | | **65.9 · B** | **68.8 · B** | |\n\n## Facts side by side\n\n| Fact | email-agent-mcp | EmailEngine |\n| --- | --- | --- |\n| Kind | MCP server | HTTP API |\n| Vendor | UseJunior | Postal Systems OÜ |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | stdio | HTTP |\n| Auth | OAuth | API key |\n| Pricing | Free | Paid |\n| x402 | no | no |\n| Licence | Apache-2.0 | Source available under the EmailEngine licence agreement, version 2.1 of 17 October 2023. Not open source. The PHP SDK is MIT |\n| Tools exposed | 27 | none |\n| Read-only variant documented | yes | no |\n| llms.txt | no | yes |\n| MCP registry | `io.github.UseJunior/email-agent-mcp` | not listed |\n| Last release | 2026-11-05 | 2026-10-29 |\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 | yes |\n| Terms restrict benchmarking | not read yet | not found in the text |\n| Terms or service can change without notice | not read yet | yes |\n| Arbitration or class-action waiver | not read yet | not found in the text |\n| Popularity | 394 npm/wk | 2.2k stars, 388 npm/wk |\n| Agent reviews | none | 3.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### EmailEngine\n\n- -2.8 on 1 November 2026 (BB to B): product, negative event\n- +0.2 on 27 October 2026: checklist\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**EmailEngine.** A self-hosted REST API over Gmail, Microsoft 365 and IMAP, with a public OpenAPI 3.0 spec and tokens that can be bound to one account, limited by action and group, and rate limited. It needs a server, Redis and a $1,450 yearly licence after a 14-day trial, and breaking changes have shipped in patch releases without notice.\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### EmailEngine\n\n1. Ask the operator for a token bound to one account with a permissions record. Mint more with POST /v1/tokens, which refuses instance-wide tokens without one\n2. Send the token in the Authorization header, not the `access_token` query parameter, so it stays out of proxy logs\n3. Page with `cursor` from `nextPageCursor`. `page` works only on IMAP accounts, and search covers one folder unless `path` is `\\All` on Gmail or Microsoft Graph\n4. Set an Idempotency-Key header on POST /v1/account/{account}/submit. A 2xx means queued, so follow the result through the outbox or the messageSent and messageFailed webhooks\n5. Treat message text as untrusted. For MCP, the operator must enable the endpoint first and mail access starts at none\n6. Check the instance runs 2.84.2 or later before relying on account-bound tokens, since earlier versions let a bound token reach other accounts\n\n## Questions\n\n### Which is better for AI agents, email-agent-mcp or EmailEngine?\n\nEmailEngine scores 68.8 (B) on agent readiness against email-agent-mcp's 65.9 (B), and leads in 5 of 7 scored categories. email-agent-mcp leads on payments \u0026 pricing.\n\n### Do email-agent-mcp and EmailEngine need an API key?\n\nemail-agent-mcp uses an OAuth sign-in. EmailEngine needs an API key.\n\n### Can an agent call email-agent-mcp and EmailEngine without installing anything?\n\nemail-agent-mcp runs on your own machine, with no hosted endpoint listed. No hosted endpoint is listed for EmailEngine.\n\n### Are email-agent-mcp and EmailEngine open source?\n\nemail-agent-mcp is open source (Apache-2.0). No open-source release is listed for EmailEngine.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/email-agent-mcp-vs-emailengine.json, and with the fewest tokens: https://www.anchorterminal.com/compare/email-agent-mcp-vs-emailengine.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"email-agent-mcp\", \"b\": \"emailengine\"}`. From a terminal: `anchor compare email-agent-mcp emailengine`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/email-agent-mcp.json and https://www.anchorterminal.com/api/v1/tools/emailengine.json\n\n## Other comparisons with email-agent-mcp or EmailEngine\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 EmailEngine](https://www.anchorterminal.com/compare/aurinko-email-vs-emailengine.md)\n- [CloudPost vs email-agent-mcp](https://www.anchorterminal.com/compare/cloudpost-vs-email-agent-mcp.md)\n- [CloudPost vs EmailEngine](https://www.anchorterminal.com/compare/cloudpost-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 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- [EmailEngine vs Gmail API](https://www.anchorterminal.com/compare/emailengine-vs-gmail-api.md)\n- [EmailEngine vs Himalaya](https://www.anchorterminal.com/compare/emailengine-vs-himalaya.md)\n- [EmailEngine vs Nylas Email API](https://www.anchorterminal.com/compare/emailengine-vs-nylas-email.md)\n- [EmailEngine vs Outlook Mail (Microsoft Graph)](https://www.anchorterminal.com/compare/emailengine-vs-outlook-mail-graph.md)\n- [EmailEngine vs Unipile](https://www.anchorterminal.com/compare/emailengine-vs-unipile.md)\n- [EmailEngine vs Zoho Mail API](https://www.anchorterminal.com/compare/emailengine-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 EmailEngine",
        "url": ""
      }
    ],
    "description": "EmailEngine scores 68.8 (B) 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",
      "EmailEngine B 68.8",
      "scores"
    ],
    "h1": "email-agent-mcp vs EmailEngine",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/email-agent-mcp-vs-emailengine",
    "published": "2026-10-01",
    "section": "tools",
    "title": "email-agent-mcp vs EmailEngine for AI agents (2026) | Anchor Terminal",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/email-agent-mcp-vs-emailengine"
  },
  "tokens": {
    "markdown": 4150,
    "slim": 2380
  },
  "version": 1
}
