Thunderbird

Install Thunderbird and the curated extension policy through the thunderbird role, then configure accounts and profile data manually.

ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags thunderbird

TODO: test on second laptop

If you restore the Thunderbird profile path from a previous installation, the manual account and workflow setup below should usually not be necessary. Restore profile data only from trusted backups and prefer normal account sign-in when possible.

đź”§ Manual setup and configuration

  • Run the thunderbird role before configuring Thunderbird accounts.
  • Add institutional and project email accounts through Thunderbird account setup.
  • Restore profile data only from a trusted backup, and prefer fresh account sign-in when possible.
  • Review extension permissions before enabling extensions, especially extensions that can read messages or connect Thunderbird to AI assistants.
  • Create a folder named Waiting for or Waiting-for if you use the waiting-for workflow.
  • When sending a message that requires follow-up, add your own address in Cc.
  • Add an automatic copy or filter rule that moves self-cc messages into the waiting-for folder.

The thunderbird role installs the following extensions through Thunderbird Enterprise Policies. They use installation_mode: normal_installed, so Thunderbird installs them automatically but users can still disable extensions they do not need.

Extension Why install it
AI Grammar Checker & Paraphraser – LanguageTool Adds grammar, spelling, punctuation, and style checks while composing email. Use it with the local LanguageTool setup when possible.
FiltaQuilla Extends Thunderbird message filters with extra actions and search terms. Use it for workflow rules that Thunderbird cannot express by default.
mailmindr Moves messages out of the inbox when you cannot currently act on them, then reminds you when follow-up is due. Use it for time-bound replies, delegated work, and review tasks.
Move Mail Shortcuts Adds keyboard shortcuts for moving and copying mail to folders. Use it to file messages quickly without interrupting reading flow.
Owl for Exchange Connects Thunderbird to Exchange and Microsoft 365 accounts through Outlook Web Access when standard IMAP/SMTP or OAuth setup is not sufficient. Check license terms before relying on it.
Thunderbird MCP Exposes Thunderbird mail, contacts, calendars, filters, and message-management operations to local AI assistants through MCP. Treat it as sensitive access: disable it unless needed and review its configuration carefully.

Thunderbird MCP bridge

The thunderbird role can install Thunderbird MCP reproducibly when thunderbird_mcp_enabled is true. The role installs the extension through Enterprise Policies and clones the Node.js bridge to /opt/thunderbird-mcp.

The default bootstrap release is pinned to v0.7.4 instead of an uncontrolled latest URL. Releases from v0.7.3 onward support subsequent automatic extension updates through Thunderbird. Automatic updates still depend on Thunderbird’s add-on update settings and continued trust in the upstream update channel.

The bridge command for MCP clients is:

node /opt/thunderbird-mcp/mcp-bridge.cjs

The role does not copy session tokens or connection.json. The bridge discovers the current Thunderbird extension connection dynamically, so Thunderbird must be running for bridge calls to reach the extension.

đź”§ Manual setup and configuration

  • Restart Thunderbird after the initial extension-policy installation.
  • Review Thunderbird MCP account access, enabled tools, and send-safety settings inside Thunderbird before connecting an MCP client.
  • Treat Thunderbird MCP as sensitive access to email, contacts, calendars, filters, and message-management operations.
  • Leave thunderbird_mcp_enabled: false if this workstation should not expose Thunderbird through MCP.

Optional MCP client fragment

The role does not modify ~/.claude.json, Codex configuration, or another MCP client’s live configuration automatically. To generate a fragment that users can merge manually, set:

thunderbird_mcp_write_client_fragment: true

The fragment is written with user ownership and restrictive permissions under:

~/.config/workstation-setup/mcp/thunderbird-mail.json

It contains the configured bridge path:

{
  "mcpServers": {
    "thunderbird-mail": {
      "command": "node",
      "args": ["/opt/thunderbird-mcp/mcp-bridge.cjs"]
    }
  }
}

Merge the mcpServers.thunderbird-mail entry into the configuration used by your MCP client, then restart or reload that client.

Email workflow best practices

Use Thunderbird as a working queue, not as long-term visible clutter.

Keep the inbox empty

  • Treat the inbox as an action list.
  • Decide each message once: reply, delegate, file, convert to a task, or delete.
  • Move reference messages out of the inbox after reading.
  • Use the waiting-for folder for delegated or pending replies instead of leaving sent follow-ups in the inbox.

Use a waiting-for rule

Use a dedicated waiting-for workflow for messages where you need a reply or external action.

  • Create a folder named Waiting for or Waiting-for.
  • When sending a message that requires follow-up, add your own address in Cc.
  • Add an automatic copy or filter rule that moves self-cc messages into the waiting-for folder.
  • Use mailmindr for dated reminders when a response is needed by a specific deadline.
  • Review the waiting-for folder during daily or weekly email triage, then archive completed threads.

Archive email deliberately

  • Archive messages that are complete but may be useful later.
  • Keep folder names practical and stable; avoid over-classifying messages into many rarely used folders.
  • Prefer Thunderbird search for retrieval instead of maintaining a complex folder hierarchy.
  • Do not archive messages that contain credentials or unnecessary sensitive data; delete those when retention is not required.