CCM
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Skill index
  • MCP index
  • Marketplace index
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by mertbuilds.com

Independent project, not affiliated with Anthropic
tkasperczyk avatar

Thunderbird

tkasperczyk/thunderbird-mcp
109
Summary

Bridges Claude to your local Thunderbird install via HTTP, exposing 35+ tools across mail, compose, filters, contacts, and calendar. You get full-text search with Gloda integration, threaded reply composition, filter management that persists immediately, and calendar event creation with recurring support. All compose operations open a review window by default unless you pass skipReview. The extension runs a localhost-only HTTP server with session tokens, and the Node bridge handles MCP stdio translation plus lifecycle methods so clients connect even before Thunderbird finishes loading. Account access is user-controlled through the extension settings page, not exposed to MCP. Nothing sends without your approval, and you can block skipReview entirely if needed.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
inference shell
inference shell
create and run specialised agents in minutes
build now →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
inference shell
inference shell
create and run specialised agents in minutes
build now →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →

Thunderbird MCP

CI Tools Localhost Only Thunderbird License: MIT

Give your AI assistant full access to Thunderbird -- search mail, compose messages, manage filters, and organize your inbox. All through the Model Context Protocol.

Thunderbird MCP Demo

Inspired by bb1/thunderbird-mcp. Rewritten from scratch with a bundled HTTP server, proper MIME decoding, and UTF-8 handling throughout.


Why?

Thunderbird has no official API for AI tools. Your AI assistant can't read your email, can't help you draft replies, can't organize your inbox. This extension fixes that -- it exposes 40 tools over MCP so any compatible AI (Claude, GPT, local models) can work with your mail the way you'd expect.

Mail sends and event/task creation require review by default because Block skipReview starts enabled. skipReview: true is honored only after you explicitly disable that safety setting. By default, nothing is sent or created without your review.


How it works

                    stdio              HTTP (localhost:8765-8774)
  MCP Client  <----------->  Bridge  <--------------------->  Thunderbird
  (Claude, etc.)           mcp-bridge.cjs                    Extension + HTTP Server

The Thunderbird extension embeds a local HTTP server with session-scoped auth tokens. The Node.js bridge translates between MCP's stdio protocol and HTTP, discovering the port and token automatically via a connection file. The bridge handles MCP lifecycle methods (initialize, ping) locally, so clients can connect even before Thunderbird is fully loaded.


What you can do

Mail

ToolDescription
listAccountsList all email accounts and their identities
listFoldersBrowse folder tree with message counts -- filter by account or subtree
searchMessagesSearch by subject, sender, recipient, body preview, date range, or tags. Multi-word queries are AND-of-tokens (every word must appear somewhere). Prefix with from:, subject:, to:, or cc: to restrict to one field. Set searchBody: true for full-text body search via Thunderbird's Gloda index. Supports includeSubfolders, countOnly, and offset-based pagination. Results include threadId and preview snippet. By default, dedupByMessageId collapses the same RFC Message-ID found in multiple folders/labels into one row and reports the other folder paths in dupLocations; set dedupByMessageId: false to return every location.
getMessageRead full email content -- bodyFormat: markdown (default), text, or html. Set rawSource: true for the complete RFC 2822 source (all headers + MIME parts). Optional attachment saving. Set includeInlineImages: true to append supported inline CID images as MCP image blocks (PNG, JPEG, GIF, or WebP; max 1 MiB base64 per image and 4 MiB total). Skipped images are reported in attachment metadata.
getMessagesRead full email content for up to the configured batch limit in one call (default 10, max 20). Uses the same bodyFormat, rawSource, and attachment options as getMessage; each item supplies messageId and folderPath.
getRecentMessagesGet recent messages with date, unread, and tag filtering. Supports pagination. Results include threadId and preview.
displayMessageOpen a message in Thunderbird's GUI -- 3pane (default), tab, or window mode
updateMessageMark read/unread, flag/unflag, add/remove tags, move between folders, or trash -- supports bulk via messageIds
deleteMessagesDelete messages -- drafts are safely moved to Trash
createFolderCreate new subfolders to organize your mail
renameFolderRename an existing mail folder
deleteFolderDelete a folder (moves to Trash, or permanently deletes if already in Trash)
moveFolderMove a folder to a new parent within the same account
emptyTrashPermanently delete all messages in Trash (including subfolders)
emptyJunkPermanently delete all messages in Junk/Spam (including subfolders)

Compose

ToolDescription
sendMailCompose a new email -- opens a review window; direct sending requires explicitly disabling the skipReview safety block
replyToMessageReply with quoted original and proper threading -- skipReview is subject to the same safety block
forwardMessageForward with all original attachments preserved -- skipReview is subject to the same safety block

All compose tools open a window for you to review and edit before sending by default. The Block skipReview preference is on by default, so skipReview: true is rejected until you explicitly disable the preference; only then can it send directly. Attachments can be file paths or inline base64 objects.

Compose tools validate the from identity strictly -- if the specified sender doesn't match any configured Thunderbird identity, the tool returns an error instead of silently substituting another account.

Filters

ToolDescription
listFiltersList all filter rules with human-readable conditions and actions
createFilterCreate filters with structured conditions (from, subject, date...) and actions (move, tag, flag...)
updateFilterModify a filter's name, enabled state, conditions, or actions
deleteFilterRemove a filter by index
reorderFiltersChange filter execution priority
applyFiltersRun filters on a folder on demand -- let your AI organize your inbox

Full control over Thunderbird's message filters. Changes persist immediately. Your AI can create sorting rules, adjust priorities, and run them on existing mail.

Contacts

ToolDescription
searchContactsSearch contacts across all address books by email or name and return full contact details. Supports maxResults.
getContactRead full contact details by UID
createContactCreate a contact with optional email/name, phones, postal addresses, organization, title, note, and birthday. Phone-only contacts are supported.
updateContactUpdate contact fields; omitted fields stay unchanged, while empty phone/address arrays clear those collections
deleteContactDelete a contact by UID

Calendar

ToolDescription
listCalendarsList all calendars with read-only, event, and task support flags
createEventCreate a calendar event -- opens a review dialog; direct creation via skipReview requires explicitly disabling the default safety block. Accepts status: tentative | confirmed | cancelled (VEVENT STATUS per iCal RFC 5545).
listEventsQuery events by date range with recurring event expansion. Returns status on each event.
updateEventModify an event's title, dates, location, description, or status
deleteEventDelete a calendar event by ID
createTaskOpen a pre-filled task dialog for review; direct creation via skipReview requires explicitly disabling the default safety block
listTasksList tasks/to-dos from calendars -- filter by completion status, due date, or calendar
updateTaskUpdate a task's title, due date, description, priority, completion status, or percent complete

Access Control

ToolDescription
getAccountAccessView which accounts the MCP server can access

Account and tool access are configured via the extension settings page (Tools > Add-ons > Thunderbird MCP > Options). Access control is not MCP-exposed -- only the user can change it.

The same settings page has a "Send Safety" section. Block skipReview is enabled by default and rejects skipReview: true for sendMail, replyToMessage, forwardMessage, createEvent, and createTask; their review window or dialog still opens normally. skipReview is honored only after you explicitly disable this preference.


Setup

1. Install the extension

git clone https://github.com/TKasperczyk/thunderbird-mcp.git

Install dist/thunderbird-mcp.xpi in Thunderbird (Tools > Add-ons > Install from File), then restart. A pre-built XPI is included in the repo -- no build step needed.

Automatic updates: From v0.7.3 on, the add-on auto-updates through Thunderbird's add-on update check. Thunderbird downloads updates in the background and applies them on the next restart; because this add-on uses an experiment API, updates are not live hot-swapped. v0.7.3 is the last build you need to install by hand because older builds have no update_url and cannot auto-discover it. Thunderbird ships with xpinstall.signatures.required=false, so unsigned auto-updates work out of the box; a profile hardened to require signatures blocks both manual and automatic installs. If updates do not arrive, check the Add-ons gear menu and make sure Update Add-ons Automatically is enabled.

2. Configure your MCP client

Add to your MCP client config (e.g. ~/.claude.json for Claude Code):

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

Sandbox-aware connection discovery

The bridge re-discovers connection.json on every cache miss. It tries these locations in order:

  1. THUNDERBIRD_MCP_CONNECTION_FILE, if set
  2. Native temp dir: <os.tmpdir()>/thunderbird-mcp/connection.json
  3. macOS fallback: /var/folders/*/*/T/thunderbird-mcp/connection.json owned by the current user
  4. Linux Snap: Thunderbird's live TMPDIR from /proc/<pid>/environ, plus the official snap fallback under ~/Downloads/thunderbird.tmp
  5. Linux Flatpak / Betterbird Flatpak: $XDG_RUNTIME_DIR/app/*/thunderbird-mcp/connection.json

This covers native installs, the official Thunderbird snap, Thunderbird Flatpak, Thunderbird Beta Flatpak, and Betterbird Flatpak without changing the extension side. If multiple sandbox candidates exist at once, the bridge tries the newest file first. Set THUNDERBIRD_MCP_CONNECTION_FILE to force a single explicit path.

Example override:

{
  "mcpServers": {
    "thunderbird-mail": {
      "command": "node",
      "args": ["/absolute/path/to/thunderbird-mcp/mcp-bridge.cjs"],
      "env": {
        "THUNDERBIRD_MCP_CONNECTION_FILE": "/absolute/path/to/connection.json"
      }
    }
  }
}

That's it. Your AI can now access Thunderbird.


Security

  • Auth tokens: The HTTP server requires a session-scoped bearer token. Generated on startup, written to <TmpD>/thunderbird-mcp/connection.json with 0600 permissions. The bridge re-discovers that file automatically across native installs, Snap, Flatpak, Betterbird Flatpak, and macOS temp directories.
  • Dynamic port: Tries ports 8765-8774, records the actual port in the connection file. No hardcoded port dependency.
  • Account access control: Restrict which email accounts are visible to MCP clients via the settings page. Changes take effect immediately.
  • Tool access control: Disable specific tools via the settings page. Disabled tools are hidden from tools/list and blocked at dispatch.
  • Localhost only: By default, the server binds to localhost only. The "Listen on all interfaces" option in settings binds to all IPv4 interfaces for WSL, Docker, or remote access. This exposes the MCP server to every device on your local network. Only enable on trusted networks. Auth token is always required.
  • Auto-update integrity: Auto-update is a code-delivery channel whose integrity depends on continued control of the GitHub repository, the GitHub Actions token, and the tomaszkasperczyk.name registration.

Troubleshooting

ProblemFix
Extension not loadingCheck Tools > Add-ons and Themes. Errors: Tools > Developer Tools > Error Console
Connection refusedMake sure Thunderbird is running and the extension is enabled
Bridge can't find connection.jsonSet THUNDERBIRD_MCP_CONNECTION_FILE explicitly if your environment uses a non-standard temp/runtime path
Missing recent emailsIMAP folders can be stale. Click the folder in Thunderbird to sync, or right-click > Properties > Repair Folder
Tool not found after updateReconnect MCP (/mcp in Claude Code) to pick up new tools
searchBody returns no resultsIMAP accounts need offline sync enabled for Gloda to index message bodies
rawSource fails on IMAPRequires local/offline message copy. Enable offline sync or click the message first to cache it.

Development

# Build the extension
./scripts/build.sh

# Test via the bridge (handles auth automatically)
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | node mcp-bridge.cjs

# Test the HTTP API directly.
# On Snap / Flatpak / Betterbird Flatpak / macOS, point CONN_FILE at the
# real file or export THUNDERBIRD_MCP_CONNECTION_FILE first.
CONN_FILE="${THUNDERBIRD_MCP_CONNECTION_FILE:-/tmp/thunderbird-mcp/connection.json}"
TOKEN=$(jq -r .token "$CONN_FILE")
PORT=$(jq -r .port "$CONN_FILE")
curl -X POST http://127.0.0.1:$PORT \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Dev-only extension reload: After changing extension source locally, remove the add-on from Thunderbird, restart, reinstall the XPI, and restart again. Thunderbird caches aggressively. Regular users should install v0.7.3 once and let auto-update handle later releases.


Project structure

thunderbird-mcp/
├── mcp-bridge.cjs              # stdio <-> HTTP bridge (auth, port discovery)
├── extension/
│   ├── manifest.json
│   ├── background.js           # Extension entry point
│   ├── httpd.sys.mjs           # Embedded HTTP server (Mozilla)
│   ├── options.html            # Settings page UI
│   ├── options.js              # Settings page logic
│   ├── icons/                  # Extension icons
│   └── mcp_server/
│       ├── api.js              # All 40 MCP tools + auth + access control
│       └── schema.json
├── test/                       # Test suite (node:test, zero dependencies)
└── scripts/
    ├── build.sh
    └── install.sh

Known issues

  • IMAP folder databases can be stale until you click on them in Thunderbird
  • HTML-only emails are converted to plain text (original formatting is lost)
  • Recurring calendar event CRUD operates on the series, not individual occurrences
  • IMAP folder operations (rename, delete, move) are async -- verify with listFolders after
  • Combining tags with move/trash on IMAP may not preserve tags on the moved copy -- use separate calls
  • Pre-existing Thunderbird filters with cross-account move/copy targets are not restricted by account access control
  • searchBody on IMAP without offline sync only searches headers (Gloda limitation)
  • rawSource requires offline message copy for IMAP -- online-only messages will error

License

MIT. The bundled httpd.sys.mjs is from Mozilla and licensed under MPL-2.0.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
inference shell
inference shell
create and run specialised agents in minutes
build now →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Categories
Sales & MarketingSearch & Web CrawlingProductivity & Office
UpdatedDec 18, 2025
View on GitHub

Related Sales & Marketing MCP Servers

View all →
kesslerio avatar
Attio MCP Server

kesslerio/attio-mcp-server

AI-powered Attio CRM access. Manage contacts, companies, deals, tasks, notes and workflows.
68
licinexus avatar
Mcp

io.github.licinexus/mcp

Brazilian public procurement (PNCP) and Federal Revenue CNPJ data — 16 tools, 4 prompts.
62
zenml-io avatar
Mcp Zenml

zenml-io/mcp-zenml

MCP server for ZenML - browse stacks, pipelines, runs, artifacts & trigger pipeline runs via API
45
markifact avatar
Markifact: AI Performance Marketing

com.markifact/mcp

AI marketing agent for Google Ads, Meta, GA4, TikTok, LinkedIn, Shopify, HubSpot and more.
39
taurgis avatar
Sfcc Dev Mcp

taurgis/sfcc-dev-mcp

MCP server for Salesforce B2C Commerce Cloud development assistance
27
stanfrbd avatar
Cyberbro MCP Server

stanfrbd/mcp-cyberbro

MCP server for Cyberbro IOC extraction, enrichment and reputation analysis.
19