Repository navigation
v0.0.13
Key takeaways
- [Feature] [Security] Choose who may use MailCellar: In the new Admin sidebar group (People, Invites, Permissions, Audit log), visible only to admins, you can now invite people by email or single-use link, give or remove their access, and review an audit log of changes.
- [Feature] Ask Claude about your mail, read-only: Claude can now connect to your mailbox through the new
/mcpendpoint to search messages, read them, open threads and attachments, and answer "how many" questions with counts grouped by month, sender, domain, recipient and more, without changing anything. - [Fix] [Security] Connecting Gmail works again: On the Accounts page, connecting or reconnecting a Gmail account no longer fails with Cloudflare Error 1101, and Google now asks only for MailCellar's own permissions (sign-in, email and Gmail).
- [Fix] New mailboxes show up on Backfill: On the Backfill page, a mailbox you just added, removed or uploaded as an mbox archive now appears right away instead of "No Gmail accounts" until you reload.
- [Fix] Month map counts are accurate: On the month map, the copied count for a month no longer shows 1–2 short, for both older months and the month new mail is arriving in.
App
- New Admin sidebar group with People, Invites, Permissions and Audit log, shown only to admins.
- Invite links open a page where the invited person accepts. If email sending isn't set up, each invite gives you a link to send by hand.
- Anyone not on the list sees "You're not on the list" instead of the app.
- Removing someone from the list keeps their mail.
- Without admin emails configured, there is no list and Cloudflare Access alone decides, so self-hosted setups are unchanged.
- MailCellar can optionally join a suite of apps: the sidebar brand becomes an app switcher and theme mode carries across the suite. With nothing configured, nothing changes.
- The Lumen UI kit is updated.
- Backfill refreshes itself whenever your list of mailboxes changes.
Gmail
- Connecting or reconnecting an account no longer crashes. The crash came from the new mbox import columns.
- Google no longer folds earlier grants (such as Drive) into MailCellar's consent screen.
Search
- New
count_messagestool answers "how many" in one count instead of paging through results. It takes the usual search filters and can group by month, year, sender, domain, label or mailbox. - Counts can be broken down a second time, for example month then domain. Any two of month, year, sender, domain, label, recipient and mailbox can be combined.
- You can now filter by recipient (
to) in both counts and searches, and group counts by recipient. - While older mail's recipients are still being read, counts say so.
- The first page of search results now includes a total.
- Searches stop reporting "more to page through" once the total is reached, and the "keep searching" note only appears when there is more.
- Tool descriptions now point Claude to counting for "how many" questions.
Sync
- Live sync now sets the copied count for each month new mail lands in from what the mailbox actually holds, so it matches Gmail's own listing.
- Six older months were recounted by re-running their index check against the whole mailbox. No mail was missing and nothing was re-copied.
- A background pass fills in recipients (To, Cc, Bcc) for mail copied earlier. It reads only message headers and stops at the daily write limit.
- New mail and mbox imports record recipients as they are copied, at no extra write cost.
Storage
- Messages now store their recipients, in lower case, for recipient searches and counts.
- A new thread index is built gradually, once the day's write budget has room.
- A read-only report shows how a mailbox database splits its bytes.
- The README now has a table of Durable Object writes per message (about 7.5) and what it means for backfills on the Free plan.
Infra
- The
/mcpendpoint has its own Cloudflare Access app with Managed OAuth. It answers 503 until its audience variable is set, and it refuses cross-site browser requests. - Setup guide: new step for the MCP Access app, plus documentation for the suite variables.
- Invite email is sent over SMTP with STARTTLS from the Worker, using the new
SMTP_HOST,SMTP_PORTandMAIL_FROMvariables and theSMTP_USERandSMTP_PASSWORDsecrets. - The new optional suite variables are
SUITE_LIST_URL,SUITE_PREFS_COOKIEandSUITE_PREFS_DOMAIN. - The people list is checked on every
/api/*and/mcprequest and cached for 60 seconds per Worker.
Pull requests (10)
- #130 Admin > People: who may use MailCellar, on Lumen's people kit (@bchoor)
- #134 feat: join the hub's app switcher and shared theme when SUITE_* is set (@bchoor)
- #132 Sync: count new mail's month against Gmail's list, not message date (@bchoor)
- #131 Accounts: fix Gmail connect crash; ask only for MailCellar's scopes (@bchoor)
- #129 MCP: two-level counts and recipients (@bchoor)
- #128 MCP: no keep-searching note once a search is done (@bchoor)
- #127 MCP: search stops paging once its total is reached (@bchoor)
- #126 MCP: count_messages and search totals (@bchoor)
- #125 MCP server: read-only /mcp for Claude (@bchoor)
- #124 Backfill: show a new mailbox without a reload (@bchoor)
Full changelog: v0.0.12...v0.0.13