bb1/thunderbird-mcp
If you are the rightful owner of thunderbird-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
This repository contains a Thunderbird extension that exposes experimental APIs for accessing the Thunderbird search index, managing the calendar, searching contacts, and sending mail through a Model Context Protocol (MCP) server.
thunderbird-mcp
This repository contains a Thunderbird extension that exposes experimental APIs for accessing the Thunderbird search index, managing the calendar, searching contacts, and sending mail. The extension also starts a small HTTP server (referred to as the MCP server) that exposes these capabilities using JSON-RPC 2.0 messages. MCP stands for Model Context Protocol; see https://modelcontextprotocol.io/specification/2025-06-18 for the specification.
Extension contents
extension/
├── background.js - Starts the MCP server
├── manifest.json - Extension manifest
├── search_index/
│ ├── api.mjs
│ └── schema.json
├── calendar/
│ ├── api.mjs
│ └── schema.json
└── contacts/
├── api.mjs
└── schema.json
The experimental APIs integrate with Thunderbird's search index and calendar services and are usable from other scripts via the MCP server. They enable the following MCP tools:
searchMessages– search the message indexsendMail– compose and dispatch a maillistCalendars– list available calendarssearchContacts– look up contacts the user interacted with
Loading the extension in Thunderbird
- Open Thunderbird and navigate to
Add-ons and Themes. - Use
Debug Add-onsto load theextensiondirectory as a temporary add-on. - The extension will start the MCP server on
http://localhost:8765. Send JSON-RPC requests viaPOST /.tools/listreturns available toolstools/callinvokes one of the tools with arguments
The extension requires Thunderbird 102 or later.
Running tests
The repository includes a small test runner. After installing development dependencies, run:
npm test
The script downloads Thunderbird, launches the extension in headless mode
using web-ext, and checks that the MCP server responds to tools/list.