Transports
fast-classifier speaks two transports to Fastmail behind one MailProvider interface. Pick with -p jmap / -p mcp on the CLI or provider.type in config.
| JMAP (default) | MCP | |
|---|---|---|
| Token env var | FASTMAIL_API_TOKEN |
FASTMAIL_MCP_TOKEN |
| Endpoint | api.fastmail.com/jmap/session |
api.fastmail.com/mcp (official) |
| Page size | 100 | 50 — server hard cap |
| Keep-list negation | full server-side NOT filter |
-from: literal addresses only; re-checked client-side |
| Label creation | explicit Mailbox/set (nested paths, modal parent) |
no create tool — addLabels auto-creates missing labels |
| Search totals | real totals (calculateTotal) |
none (position-only paging) |
The transport differences are handled automatically — the page-size caps, keep-list re-checks, and label-creation strategies are all encoded in the providers. The full list of server behaviors each transport encodes is in the Fastmail API quirks appendix, and the transport internals are documented as core concepts: the MCP handshake and the JMAP client.