MCP server for Thunderbird - enables AI assistants to access email, contacts, and calendars
Thunderbird MCP has 11 tools with complete input schemas and descriptions. Naming follows verb_noun convention (listAccounts, searchMessages, sendMail). Descriptions are present (avg ~100 chars) but lack actionable context for LLM selection, they state WHAT but not WHEN or WHY to use each tool. Parameters have types and descriptions, but lack constraints (enums, ranges, patterns). Output schemas are not documented. Error handling and recovery guidance are absent. No tool annotations (readOnlyHint/destructiveHint). Security: sendMail, replyToMessage, forwardMessage accept file paths as attachments without validation, risking path traversal. No audit logging visible.
Open a pre-filled event dialog in Thunderbird for user review before saving
Open a forward compose window for a message with attachments preserved
Read the full content of an email message by its ID
Get recent messages from a specific folder or all folders, with date and unread filtering
List all email accounts and their identities
Return the user's calendars
List all mail folders with URIs and message counts
Output schemas not documented. LLMs cannot infer what fields searchMessages, getMessage, or listFolders return, forcing them to guess at field names for downstream tool calls.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). sendMail, replyToMessage, forwardMessage, createEvent are write operations but lack destructiveHint. Agents cannot distinguish safe reads from irreversible writes.
Path traversal vulnerability in sendMail, replyToMessage, forwardMessage. attachments parameter accepts file paths without validation. Malicious input could read/attach arbitrary files outside intended directory.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Open a reply compose window for a specific message with proper threading
Find contacts the user interacted with
Search message headers and return IDs/folder paths you can use with getMessage to read full email content
Open a compose window with pre-filled recipient, subject, and body for user review before sending
No error recovery guidance. Tools lack descriptions of failure modes, retryability, or next steps. E.g., searchMessages could fail if folder doesn't exist, but no guidance on how to recover.
Parameter constraints missing. maxResults accepts 1 - 200 but description lacks min/max. sortOrder accepts 'asc'/'desc' but no enum constraint. LLMs may pass invalid values.