← wiki

thunderbird-mcp

overview

An MCP (Model Context Protocol) server that gives Claude access to Thunderbird — reading and searching email across all connected accounts (including iCloud), looking up contacts, and browsing the unified calendar.

The read path works directly against Thunderbird's local profile files and doesn't require Thunderbird to be running. Sending email and other write operations go through a bundled WebExtension bridge, which does require Thunderbird to be open.

tech stack

Language: JavaScript / Node.js.

Storage access: sqlite3 (not better-sqlite3, for Node v24 compatibility) reading Thunderbird's local mail, contacts, and calendar databases directly.

Write bridge: a local-only HTTP bridge on 127.0.0.1:8084 paired with a Manifest V2 Thunderbird WebExtension, loaded as a temporary add-on. Never tunneled — local only, no network exposure.

status

Email read path (list accounts/folders, search, read full messages), contacts read path, and calendar read path (requires Thunderbird closed) are all working. The send-email bridge, message management (move/delete/mark read/tag), and contact writes are also implemented via the WebExtension.

Calendar writes are not implemented — Thunderbird has no standard browser.calendar WebExtension API. For CalDAV-synced Google calendars, Claude's separate Google Calendar connector can be used instead; changes sync back into Thunderbird. This doesn't help with iCloud-backed calendars, which remain read-only.

tools exposed

list_accounts, list_folders, search_emails, read_email, list_address_books, list_contacts, list_calendars, list_events, bridge_status, send_email, list_tags, move_message, delete_message, set_message_read, update_message_tags, create_contact, update_contact.