Commonpost MCP for Thunderbird について
Commonpost MCP for Thunderbird は、Thunderbird のアドオンと Node.js ブリッジで、MCP 対応 AI アシスタントからメールなどのデータを扱えるようにします。アカウントとツールの権限を設定し、送信前の確認を既定で維持したい Thunderbird 利用者向けです。
主な機能
- 01メールの検索と閲覧
- 02メールの作成と整理
- 03連絡先、カレンダー、フィルターの管理
- 04アカウントとツールのアクセス設定
- 05送信前の確認がデフォルトで必須
活用シーン
- 01送信者、件名、日付でメールを検索
- 02会話を読んで返信を下書き
- 03受信トレイのメールやフォルダーを整理
MCP 対応
アドオンが Thunderbird の機能を MCP 経由で公開し、`mcp-bridge.cjs` がクライアントの stdio プロトコルと拡張機能のローカル HTTP サーバーを仲介します。接続した MCP クライアントにツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Thunderbird 用 Commonpost MCP
AI アシスタントに Thunderbird への完全なアクセスを提供し、メールの検索、メッセージの作成、フィルターの管理、受信トレイの整理を可能にします。すべて Model Context Protocol を通じて行えます。
Tomasz Kasperczyk による thunderbird-mcp(MIT)の継続プロジェクトです。 0.7.5 リリースを起点とし、すべての履歴を引き継いでいます。Commonpost コミュニティによる独立したプロジェクトであり、元のプロジェクトではなく、元のプロジェクトからの承認も受けていません。元のプロジェクトと併せてインストールできます(移行を参照)。元の作者がこの成果の一部を引き継ぎたい場合は、提供します。変更内容は MIT ライセンスで公開しており、上流にも提供しています。Thunderbird は Mozilla Foundation の商標です。このプロジェクトは Mozilla または MZLA とは提携していません。
元のプロジェクトは bb1/thunderbird-mcp に着想を得ています。このリリースに含まれる内容は変更履歴に記載されています。
クイックインストール(約3分)
-
拡張機能をインストールします。最新リリースから
commonpost-mcp-v<version>.xpiをダウンロードします。Thunderbirdで、Tools > Add-ons and Themes > 歯車メニュー > Install Add-on From Fileを選択します。Thunderbirdを再起動します。 -
同じリリースから
mcp-bridge.cjsをダウンロードし、~/commonpost-mcp/など、今後も使用するフォルダーに配置します。ブリッジは単一のファイルで、ほかに必要なものはありません。リリースにはpackage.jsonは含まれていません。(ブリッジには独自のバージョンが含まれており、package.jsonは読み込みません。) -
Node.jsを確認します。
node --versionで22以降が表示される必要があります。 -
ブリッジをMCPクライアントに登録します。
-
プラグインを使用するClaude Code(ダウンロードや手動更新が必要なファイルはありません。Claude Codeプラグインを参照):
claude plugin marketplace add commonpost/thunderbird-mcp claude plugin install commonpost-mcp@commonpost -
ファイルを使用するClaude Code(ファイルの絶対パスを指定します):
claude mcp add commonpost-mail -- node /absolute/path/to/mcp-bridge.cjs -
Windows上のClaude Codeの場合(例):
claude mcp add commonpost-mail -- node C:\Users\<you>\commonpost-mcp\mcp-bridge.cjs -
その他のクライアント:次の内容をクライアントのMCP設定に追加します(Claude Desktop、VS Code、Cursor、Codex CLI、Gemini CLIにはそれぞれ独自のファイルと形式があります。その他のMCPクライアントを参照)。JSONでは、Windowsのパスを
/で記述するか、バックスラッシュを2つ重ねて記述します("C:/Users/<you>/commonpost-mcp/mcp-bridge.cjs")。{ "mcpServers": { "commonpost-mail": { "command": "node", "args": ["/absolute/path/to/mcp-bridge.cjs"] } } }
-
-
動作を確認します。Thunderbirdを開いたまま、アシスタントに「Thunderbirdのアカウントを一覧表示して」と尋ねます。
ブリッジは自動更新されず、MCPクライアントごとに個別に使用されます。 ブリッジを置き換える必要がある場合は、拡張機能のツールの結果(アシスタントがその情報を伝えます)とオプションページの「Bridge」セクションに表示されます。このセクションには、接続したブリッジが「最新」「新しいバージョンが利用可能」(動作に問題はなく、更新は任意です)または「更新を推奨」と表示されます。ブリッジを更新する場合、または拡張機能がブリッジを拒否した場合は、Thunderbirdにもシステム通知が表示されます。通知はブリッジごと、Thunderbirdのセッションごとに1回表示されます。非表示の設定extensions.commonpost-mcp.bridgeUpdateAlertをfalseにすると、通知をオフにできます。すべてのリリースページの冒頭には、リリースの内容、ブリッジに変更があるかどうか、手順が記載されています。mcp-bridge.cjsをダウンロードして、手元のファイルと置き換えます(ファイルのパスはクライアントのMCP設定にあります。Claude Codeではclaude mcp get <server name>を実行します)。その後、MCPクライアントを再接続します(Claude Codeでは/mcp)。Claude Desktopでは、.mcpbバンドルを再度インストールします。Claude Codeプラグインを使用している場合は、プラグインを更新します。ブリッジに変更のないリリースにも、同じブリッジが含まれています。拡張機能のバージョンは、Tools > Add-ons and Themesに表示されます。
インストールしたらすぐに、拡張機能のオプションページ(Tools > Add-ons and Themes > Commonpost MCP for Thunderbird > Options)を開き、アシスタントが使用できるアカウントとツールを選択します。選択するまでは、すべてのアカウントとツールがMCPクライアントに表示されます。
Snap、Flatpak、macOSでは、ほとんどの場合、追加の手順は必要ありません。サンドボックス環境を考慮した接続の検出を参照してください。問題が発生した場合は、トラブルシューティングを参照してください。
理由
ThunderbirdにはAIツール向けの公式APIがありません。AIアシスタントはメールを読めず、返信の下書き作成を手伝ったり、受信トレイを整理したりできません。この拡張機能は、MCP経由で40個のツールを公開することでこの問題を解決します。互換性のあるAI(Claude、GPT、ローカルモデル)なら、期待どおりにメールを操作できます。Cursorのサーバーあたり40ツールという上限にも収まります。
メールの送信とイベント/タスクの作成には、デフォルトで確認が必要です。これは**Block skipReview**が有効になっているためです。skipReview: trueが適用されるのは、この安全設定を明示的に無効にした場合のみです。デフォルトでは、確認なしに送信や作成が行われることはありません。
仕組み
stdio HTTP (localhost:8780-8789)
MCP Client <-----------> Bridge <---------------------> Thunderbird
(Claude, etc.) mcp-bridge.cjs Extension + HTTP Server
Thunderbird拡張機能には、セッション単位の認証トークンを使用するローカルHTTPサーバーが組み込まれています。Node.jsブリッジは、MCPのstdioプロトコルとHTTPの間を変換し、接続ファイルからポートとトークンを自動的に検出します。ブリッジはMCPのライフサイクルメソッド(initialize、ping)をローカルで処理するため、Thunderbirdが完全に読み込まれる前でもクライアントは接続できます。
できること
メール
| ツール | 説明 |
|---|---|
listAccounts | すべてのメールアカウントとその ID を一覧表示します |
listFolders | メッセージ数を表示しながらフォルダー階層を参照します。アカウントまたはサブツリーで絞り込めます。savedSearches を指定すると、代わりに保存済み検索が一覧表示されます。folderPath を指定して refresh を実行すると、そのフォルダーの新着メールをメールサーバー(IMAP、Exchange、Graph。ニュースやフィードは対象外)から先に取得し、最大 20 秒待機します |
searchMessages | アカウントを横断してヘッダーを検索します。単語はすべて一致する必要があります(件名、差出人、宛先、CC、プレビュー)。from:、to:、cc:、subject:、participant:(差出人/宛先/CC/BCC。@domain はそのドメイン内のアドレスのみと一致し、カンマで候補を列挙できます:participant:@acme.com,@acme-group.com)などの演算子と引用符で囲んだフレーズを組み合わせられます。例:participant:@acme.com subject:"invoice 42"。groupBy: "sender" | "thread" を指定すると、差出人または会話ごとに 1 行を返します(latestId は下書きではない最新のメッセージです)。threadOf: {messageId, folderPath} を指定すると、フォルダーをまたいだ会話全体(送信済みを含む)を古い順に返します(ヘッダーを最大 10,000 件読み取り、その後 incomplete: true を設定します)。スレッド用ヘッダーなしで送信された Re: メッセージは、差出人が参加していた以前のメッセージに件名で結び付けられます(linkedBy: "subject")。同じメールを複数の相手に個別に送信した場合や、通知が繰り返された場合は、別々のままです。フィルターは会話のリンクを切り離さず、会話内のメッセージを選択します。includeTrash または明示的な folderPath を指定しない限り、ゴミ箱と迷惑メールは除外されます。常に { messages, totalMatches, offset, limit, hasMore } を返します(デフォルトは 20 行、最大 200 行)。format: "table" は { columns, rows } を返し、format: "legacy" は 0.10 以前の出力を返します(非推奨)。CHANGELOG を参照してください。ほかに、countOnly、includeSubfolders、日付範囲、未読/フラグ付き/タグのフィルター、searchBody(Gloda 全文検索。3 文字未満の語は除外され、warning に記載されます。英語の単語は別の語形にも一致し、ロシア語などの言語は完全に同じ語形にのみ一致します)、dedupByMessageId(複数フォルダーにあるコピーを 1 行にまとめ、dupLocations に記載します)も指定できます。attachmentName(ファイル名の一部、大文字小文字は区別しません)および attachmentType(application/pdf、または image/ などのプレフィックス)を指定すると、ほかのフィルターと組み合わせて、一致する添付ファイルがあるメッセージに絞り込めます。各行には一致した添付ファイル(name、contentType、size)が一覧表示されます。Thunderbird が添付ファイルありと判定したメッセージのみをローカルコピーから読み取ります(ダウンロードや復号は行いません)。1 回の呼び出しにつき最大 500 件、各 16 MiB までです。attachmentSearch には、確認した件数と、ほかのメッセージをスキップした理由(encrypted、tooLarge、notOffline、unreadable、limitReached)が示されます。Thunderbird はメッセージの最上位構造に基づいて判定するため、署名付きメッセージ(multipart/signed)、multipart/related メッセージ、または単一パートの添付ファイルは通常、見つかりません。暗号化されたメッセージの読み取りは禁止されていますが、単語を含むクエリでは、添付ファイルオプションを指定しない場合と同様に、暗号化されたエンベロープを持つメッセージが除外されます。attachmentName と attachmentType は searchBody、threadOf、または format: "legacy" と組み合わせることはできません。 |
getMessage | メール本文全体を読み取ります。bodyFormat は markdown(デフォルト)、text、または html を指定します。本文には上限があります(maxBodyChars のデフォルトは 20000)。本文が上限を超えると bodyTruncated と nextBodyOffset が設定されます。残りは bodyOffset を指定して読み取ります。完全な RFC 2822 ソースを取得するには rawSource: true を指定します(同じ上限が適用されます)。有効な場合は UTF-8 としてデコードし、それ以外の場合は最上位、パート、または検出された文字セット(rawCharset)を使用します。パートごとに異なる文字セットが宣言されている場合(rawMixedCharsets に列挙)や、無効な UTF-8 が置換された場合は warning が返されます。本文と同様に非表示文字は除去されます。rawEncoding: "base64" を指定すると、バイト列をそのまま返します。添付ファイルの保存は任意です。includeInlineImages: true を指定すると、対応するインライン CID 画像を MCP 画像ブロックとして追加します(PNG、JPEG、GIF、または WebP。画像ごとに最大 1 MiB の Base64、合計 4 MiB)。スキップされた画像は添付ファイルのメタデータに報告されます。 |
getMessages | 1 回の呼び出しで、設定されたバッチ上限まで(デフォルトは 10 件、最大 20 件)のメール本文全体を読み取ります。getMessage と同じ bodyFormat、rawSource、添付ファイルのオプションを使用します。各項目には messageId と folderPath を指定します。本文にはメッセージごとの上限があります(maxBodyChars のデフォルトは 4000)。headersOnly を指定すると、その上限を問わず最大 200 件について、受信時のヘッダーとフラグのみを返し、本文の解析は行いません。List-Unsubscribe ヘッダーは、読み取り専用の unsubscribe(mailto、https、oneClick)として解析されます。 |
getRecentMessages | すべてのフォルダー(ゴミ箱/迷惑メールは除外)または 1 つのフォルダーから、最近のメッセージを新しい順に取得します。daysBack(デフォルトは 7)、未読/フラグ付きフィルター、includeTrash、ページネーションを指定できます。searchMessages と同じエンベロープ、行、format を使用します。 |
displayMessage | Thunderbird の GUI でメッセージを開きます。モードは 3pane(デフォルト)、tab、または window です |
updateMessage | 既読/未読の切り替え、フラグの設定/解除、タグの追加/削除、フォルダー間の移動、またはゴミ箱への移動を行います。messageIds を使った一括処理に対応しています |
deleteMessages | メッセージを削除します。下書きは安全のためゴミ箱に移動されます |
createFolder | メールを整理するための新しいサブフォルダー、または savedSearch を指定して保存済み検索(仮想フォルダー:メールを移動せず、最新の表示を提供します)を作成します |
renameFolder | 既存のメールフォルダーの名前を変更します。新しい URI を path として返します |
deleteFolder | フォルダーを削除します(ゴミ箱に移動し、すでにゴミ箱にある場合は完全に削除します)。保存済み検索はビューとして削除され、メールは削除されません |
moveFolder | 同じアカウント内の新しい親フォルダーにフォルダーを移動します |
emptyTrash | ゴミ箱内のすべてのメッセージ(サブフォルダーを含む)を完全に削除します |
emptyJunk | 迷惑メール/スパム内のすべてのメッセージ(サブフォルダーを含む)を完全に削除します |
メール作成
| ツール | 説明 |
|---|---|
sendMail | 新しいメールを作成します。確認ウィンドウが開きます。直接送信するには、安全ブロックを無効にするために skipReview を明示的に無効にする必要があります。また、作成ウィンドウと同様に、本人確認情報の署名と自動 Cc/Bcc が追加されます。dryRun は、呼び出しで実行される処理(送信者、宛先、添付ファイル、推定サイズ)または返されるエラーを報告し、何も実行しません |
replyToMessage | 引用した元のメッセージと適切なスレッド情報を含め、Thunderbird が選択する本人確認情報から返信します。mode:window(デフォルト)は確認ウィンドウを開き、draft は Thunderbird の「返信」/「全員に返信」で計算される宛先と、返信ウィンドウで作成される本文(引用行、引用、署名、返信位置)を含む下書きを保存し、send(または skipReview: true)は直接送信します。直接送信には明示的な to と from が必要で、同じ安全ブロックが適用されます。latestInThread: true(window または draft のみ)は、会話の最新メッセージ(送信済みメッセージを含む)に返信し、そのメッセージを repliedTo として返します。結果の threadIncomplete は、大きなメールボックスを部分的に読み込んだため、さらに新しいメッセージが存在する可能性があることを示します |
forwardMessage | Thunderbird が選択する本人確認情報から、元の添付ファイルをすべて保持して転送します。mode は replyToMessage と同様です(draft と send では、Thunderbird の転送ウィンドウで作成される件名と本文(ヘッダーテーブル、元の本文、署名)が使用されます)。send の場合を除き、to は省略できます。send には明示的な to と from が必要です |
saveDraft | Thunderbird の作成ウィンドウと同様に、新しいメッセージを下書きとして保存します(本人確認情報の署名が付きます)。または draftId を指定して既存の下書きを編集します。messageId と folderPath が返されます |
すべてのメール作成ツールは、デフォルトで送信前に確認・編集できるウィンドウを開きます。skipReview のブロック設定はデフォルトでオンになっているため、明示的に設定を無効にするまで、skipReview: true(および mode: "send")は拒否されます。設定を無効にした場合にのみ、直接送信できます。mode: "draft" は下書きを保存するだけなので、設定によってブロックされません(skipReview: true と併用した場合も同様です)。ただし、無効にしたツールは別のツールから利用できないため、設定で saveDraft ツールを有効にする必要があります。添付ファイルには、ファイルパスまたはインラインの base64 オブジェクトを指定できます。
直接送信や下書きの保存(saveDraft、mode: "draft")には時間がかかる場合があります。ブリッジは Thunderbird の処理を最大 180 秒待機します(それ以外の呼び出しは 30 秒)。MCP クライアントにもツール呼び出し独自のタイムアウトが設定されている場合があります。タイムアウトが 180 秒より短いと、Thunderbird が送信または保存を続けている間に、クライアントが処理を諦めることがあります。メッセージを二重に送信したり、下書きを二重に保存したりしないよう、再試行する前に「送信済み」フォルダーと「送信トレイ」(または「下書き」フォルダー)を確認してください。
メール作成ツールは from の本人確認情報を厳密に検証します。指定した送信者が設定済みの Thunderbird の本人確認情報に一致しない場合、別のアカウントに黙って置き換えることなく、ツールはエラーを返します。
フィルター
| ツール | 説明 |
|---|---|
listFilters | 人が読み取れる条件とアクションとともに、すべてのフィルタールールを一覧表示します。confirmation: true を指定すると、代わりに保留中または直近の確認の状態を読み取ります。必要に応じて confirmationId で対象を指定できます(下記参照)。 |
createFilter | 構造化された条件(差出人、件名、日付など)とアクション(移動、タグ付け、フラグ付けなど)を使ってフィルターを作成します |
updateFilter | フィルターの名前、有効状態、条件、またはアクションを変更します |
deleteFilter | インデックスを指定してフィルターを削除します |
reorderFilters | フィルターの実行優先度を変更します |
applyFilters | フォルダーに対してフィルターをオンデマンドで実行します。AI に受信トレイを整理させることができます |
Thunderbird のメッセージフィルターを完全に制御できます。変更はすぐに反映されます。AI は振り分けルールを作成し、優先度を調整して、既存のメールに適用できます。applyFilters は「手動実行」としてマークされた有効なルールのみを実行します(アシスタントが実行してよいルールのフィルターエディターでチェックを入れてください)。また、スキップしたルールも一覧表示します。
転送または返信を行うフィルタールールは、作成ツールで表示される確認ウィンドウなしでメールを送信します。フィルターによる転送/返信をブロックする設定(オプション > 送信時の安全性)は、デフォルトで有効です。有効な間は、そのようなルールを MCP 経由で作成または変更できず、そのルールを含むフィルターリストを applyFilters で実行することもできません。ルールの削除は引き続き可能です。代わりに毎回確認するを選ぶと、その種のリクエストは pending_user_confirmation を返し、Thunderbird にルール、条件、宛先の全情報を表示するダイアログが開きます。そこで確認しない限り、何も書き込まれません。ダイアログを閉じた場合、または 10 分以内に応答しなかった場合も、何も書き込まれません。
暗号化されたメッセージ
OpenPGP および S/MIME メッセージは、デフォルトではアシスタント向けに復号されません。getMessage は内容の代わりにヘッダーと短い通知を返します。searchMessages はクエリに一致したメッセージを結果から除外し、getRecentMessages はワイヤーレベルの件名で一覧表示しますが、プレビューは表示せず、encrypted: true を付けます。threadOf はそれらのメッセージを除外し、件名を使って会話を関連付けることもありません。アシスタントによる暗号化メッセージの読み取りを許可する設定(オプション > 暗号化されたメッセージ)を有効にすると、復号された内容がアシスタント、ひいてはアシスタントを実行するサービスに渡されます。
連絡先
| ツール | 説明 |
|---|---|
searchContacts | すべてのアドレス帳から、メールアドレス、名前、または組織(例:acme や @acme.com)で連絡先を検索します。空のフィールドは省略されます。maxResults と format: "table" をサポートします。 |
getContact | UID を指定して連絡先の詳細をすべて読み取ります。すべてのメールアドレス(emails:アドレス、職場用/自宅用の種別、メインのアドレスを示すフラグを含む)も取得します。保存された値が単一の通常のアドレスではない場合は invalid: true が付きます |
createContact | メールアドレスまたは複数の emails(職場用/自宅用、メインを 1 件指定)、名前、電話番号、住所、組織、役職、メモ、生年月日を任意で指定して連絡先を作成します。電話番号のみの連絡先にも対応しています。 |
updateContact | 連絡先のフィールドを更新します。省略したフィールドは変更されません。emails、電話番号、住所は各リストを置き換えます(空の配列を指定するとクリアされます)。email のみを指定した場合は、メインのアドレスだけが変更されます |
deleteContact | UID を指定して連絡先を削除します |
カレンダー
| ツール | 説明 |
|---|---|
listCalendars | 読み取り専用、無効化、イベント、タスクの各サポートフラグとともに、すべてのカレンダーを一覧表示します |
createEvent | カレンダーイベントを作成します。確認ダイアログが開きます。skipReview による直接作成には、デフォルトの安全ブロックを明示的に無効にする必要があります。status: tentative | confirmed | cancelled(iCal RFC 5545 における VEVENT の STATUS)と、showAs: busy | free(その時間帯を予定ありとしてブロックするかどうか。status は変更しません)を指定できます。reminders は開始前の分数で表示リマインダーを追加します(最大 5 件、0~40320 分)。 |
listEvents | 日付範囲を指定してイベントを検索し、繰り返しイベントを展開します。時刻のない日付は、現地時間での終日を表します。各イベントの status と reminders(開始前の分数で指定する表示リマインダー)を返します。maxResults と format: "table" に対応しています。 |
updateEvent | イベントのタイトル、日付、場所、説明、status、showAs、または reminders を変更します(表示リマインダーを置き換えます。[] を指定すると削除されます。メール、音声、絶対時刻、終了時刻に関連付けられたアラームは保持されます。分数が変わらないリマインダーも保持されます。繰り返しイベントの例外は個別に保持されます) |
deleteEvent | ID を指定してカレンダーイベントを削除します |
createTask | 確認用に入力済みのタスクダイアログを開きます。skipReview による直接作成には、デフォルトの安全ブロックを明示的に無効にする必要があります |
listTasks | カレンダーのタスク/ToDo を一覧表示します。完了状況、期限、またはカレンダーで絞り込めます。maxResults と format: "table" に対応しています。 |
updateTask | タスクのタイトル、期限、説明、優先度、完了状況、または完了率を更新します |
listCategories | Thunderbird で定義されているカレンダーのカテゴリ名を一覧表示します。イベントとタスクでは、名前をそのまま正確に使用してください |
アクセス制御
| ツール | 説明 |
|---|---|
getAccountAccess | MCP サーバーがアクセスできるアカウントを確認します |
アカウントとツールへのアクセスは、拡張機能の設定ページ(Tools > Add-ons > Commonpost MCP for Thunderbird > Options)で設定します。アクセス制御は MCP 経由では公開されておらず、変更できるのはユーザーだけです。
同じ設定ページに「Send Safety」セクションがあります。Block skipReview はデフォルトで有効になっており、sendMail、replyToMessage、forwardMessage、createEvent、createTask に対する skipReview: true(および replyToMessage と forwardMessage に対する mode: "send")を拒否します。確認ウィンドウまたはダイアログは通常どおり開きます。この設定を明示的に無効にした後にのみ、skipReview が有効になります。
セットアップ
1. 拡張機能をインストールする
最新リリースからcommonpost-mcp-v<version>.xpiをダウンロードし、Thunderbirdで「ツール」>「アドオンとテーマ」>歯車メニュー>「ファイルからアドオンをインストール」を選択して、再起動します。各リリースには、XPIとビルドに使用したコミットおよびワークフローを結び付ける来歴証明(*.sigstore.json)も付属しています。gh attestation verify <file>.xpi --repo commonpost/thunderbird-mcpで検証できます。タグ付けされたソースから、node scripts/build-xpi-reproducible.cjsを使ってXPIをバイト単位で同一に再ビルドできます。
MCP ブリッジのmcp-bridge.cjsは、XPIとともに各リリースに添付されています(独自の来歴証明も付属します)。また、git clone --branch v<version> https://github.com/commonpost/thunderbird-mcp.gitを実行してクローン内のファイルを使うこともできます。拡張機能と同じバージョンのブリッジを使用してください。
Thunderbird 140以降と、ブリッジ(mcp-bridge.cjs)用のNode.js 22以降が必要です。Thunderbird 140.16.0esr、153.3.1esr、156.0.1でテスト済みです。
**自動更新:**アドオンは、Thunderbirdのアドオン更新チェックを通じてhttps://commonpost.github.io/thunderbird-mcp/updates.jsonを確認します。このファイルには各リリースのハッシュが記載されています。Thunderbirdはバックグラウンドで更新をダウンロードし、次回の再起動時に適用します。このアドオンはExperiment APIを使用しているため、更新はホットスワップされません。更新が届かない場合は、アドオンの歯車メニューを確認し、アドオンを自動更新が有効になっていることを確かめてください。Thunderbirdの既定の設定xpinstall.signatures.required=falseでは、署名のないアドオンをインストールできます。署名を必須とするよう強化されたプロファイルでは、手動インストールと自動インストールの両方がブロックされます。自動更新チャネルはコード配信チャネルであるため、無効にして(アドオンごとに詳細ページから設定できます)、手動で更新することもできます。**ブリッジは自動更新されません:**新しいリリースのmcp-bridge.cjsまたは.mcpbに置き換えるタイミングは、アドオンがツールの結果とオプションページの「Bridge」セクションで通知します。その後、MCP クライアントを再接続してください。保護機能の一部はブリッジに実装されています。
2. MCP クライアントを設定する
MCP クライアントの設定に追加します(例:Claude Codeの場合は~/.claude.json)。
{
"mcpServers": {
"commonpost-mail": {
"command": "node",
"args": ["/absolute/path/to/commonpost-mcp/mcp-bridge.cjs"]
}
}
}
Claude Code プラグイン
このリポジトリはClaude Codeプラグインマーケットプレイスでもあります。プラグイン
commonpost-mcpはcommonpost-mail MCP サーバーを宣言し、そのリリースのブリッジを同梱しているため、
mcp-bridge.cjsをダウンロードしたり、手動で置き換えたりする必要はありません。
claude plugin marketplace add commonpost/thunderbird-mcp
claude plugin install commonpost-mcp@commonpost
- プラグイン(
plugins/claude-code/)に含まれるのはブリッジのみです。このリポジトリのmcp-bridge.cjsのコピーであり、 バージョンチェックによって常に同一に保たれます。Thunderbird拡張機能は別途インストールしてください(上記の手順1)。Node.js 22以降がPATHに含まれている必要があります。 - 更新:Claude Codeは、設定で有効にしない限り、サードパーティのマーケットプレイスを自動更新しません(
/plugin> Marketplaces > Enable auto-update)。有効にしていない場合は、/plugin marketplace update commonpost(またはclaude plugin update commonpost-mcp@commonpost)を実行し、その後/reload-pluginsを実行してください。各リリースでプラグインのバージョンが上がるため、ブリッジに変更があるかどうかにかかわらず、リリースごとに更新されます。プラグイン内のブリッジは常にそのリリースのものです。 - ツール名にはプラグイン名とサーバー名が含まれます。たとえば、
mcp__plugin_commonpost-mcp_commonpost-mail__searchMessagesのようになります。ファイルから追加したサーバー用に記述した権限ルール(mcp__commonpost-mail__*)は、これらのツールには適用されません。アドオンのオプションページの「Bridge」セクションでは、このブリッジがmcp-bridge.cjsファイルとして表示されます。 - プラグインは、このリポジトリからgit経由で取得されます(
main、またはclaude plugin marketplace add commonpost/thunderbird-mcp#vX.Y.Zで固定したリリースタグ。v0.17.0以降)。署名はされていません。プラグインに含まれるブリッジは、そのコミットのmcp-bridge.cjsであり、各リリースで来歴証明の対象となるものと同じファイルです。
Claude Desktop(ワンクリックバンドル)
macOS と Windows では、Claude Desktop に手動で編集した設定ファイルではなく、.mcpb バンドルを使ってブリッジをインストールできます。最新リリースから commonpost-mcp-v<version>.mcpb をダウンロードして Claude Desktop で開き、インストールを確定してください。ファイルが Claude Desktop で開かない場合(Windows では関連付けられていないことがあります)は、Settings > Extensions > Advanced settings > Install Extension を開き、ファイルを選択してください。
- バンドルに含まれるのはブリッジのみ(
mcp-bridge.cjs)です。Thunderbird 拡張機能は別途インストールしてください(上記の手順 1)。バンドルのバージョンは内部のブリッジのバージョンで、ブリッジに変更があった場合にのみ更新されます。リリースにアドオンより小さい番号のバンドルが含まれる場合もありますが、それが現在のブリッジです。Claude Desktop はファイルからインストールしたバンドルを更新しません。アドオンのツールの結果またはオプションページの Bridge セクションに更新の案内が表示されたら、新しい.mcpbをインストールしてください。 - バンドルはブリッジと同様に、Node.js 22 以降を必要とします。設定はありません。ブリッジが接続ファイルを見つけられない場合は、
COMMONPOST_MCP_CONNECTION_FILEを使ってその他の MCP クライアントの手動設定を行ってください。 - バンドルには署名がありません。各リリースにはバンドルの来歴証明(
*.mcpb.sigstore.json)が含まれています。gh attestation verify <file>.mcpb --repo commonpost/thunderbird-mcpで検証してください。タグ付きソースからnode scripts/build-mcpb-reproducible.cjsを実行すると、バイト単位で同一のものを再ビルドできます。
その他の MCP クライアント
ブリッジは標準的な MCP stdio サーバーであり、特定のクライアントに依存しません。ローカルサーバーを起動できるクライアントなら、どれでも動作します。上記の mcpServers の形式は一般的ですが、すべてのクライアントに共通ではないため、以下のクライアントにはそれぞれ独自のファイルと形式があります。いずれの場合も、mcp-bridge.cjs の絶対パスとサーバー名 commonpost-mail を使用し、クライアントを再起動してください。
Claude Desktop。 claude_desktop_config.json を編集します(Settings > Developer > Edit Config から開けます)。macOS では ~/Library/Application Support/Claude/claude_desktop_config.json、Windows では %APPDATA%\Claude\claude_desktop_config.json にあります。JSON では、Windows のパスのバックスラッシュを二重にしてください。
{
"mcpServers": {
"commonpost-mail": {
"command": "node",
"args": ["C:\\Users\\<you>\\commonpost-mcp\\mcp-bridge.cjs"]
}
}
}
Visual Studio Code。 ワークスペースの .vscode/mcp.json を編集するか、ユーザープロファイルで「MCP: Open User Configuration」を実行します。トップレベルのキーは mcpServers ではなく servers で、stdio サーバーには "type": "stdio" が必要です。
{
"servers": {
"commonpost-mail": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/mcp-bridge.cjs"]
}
}
}
Cursor。 すべてのプロジェクトに適用する場合は ~/.cursor/mcp.json、1 つのプロジェクトに適用する場合は .cursor/mcp.json を編集します。トップレベルのキーは mcpServers です。
{
"mcpServers": {
"commonpost-mail": {
"command": "node",
"args": ["/absolute/path/to/mcp-bridge.cjs"]
}
}
}
OpenAI Codex CLI。 ~/.codex/config.toml(または信頼済みプロジェクト内の .codex/config.toml)を編集します。これは JSON ではなく TOML で、サーバーごとにテーブルを 1 つ指定します。
[mcp_servers.commonpost-mail]
command = "node"
args = ["/absolute/path/to/mcp-bridge.cjs"]
Gemini CLI。 ~/.gemini/settings.json(またはプロジェクト内の .gemini/settings.json)を編集します。トップレベルのキーは mcpServers です。env ブロックは $VAR、${VAR}、および Windows では %VAR% の参照を展開するため、$ または % を含む値は変更されます。
{
"mcpServers": {
"commonpost-mail": {
"command": "node",
"args": ["/absolute/path/to/mcp-bridge.cjs"]
}
}
}
通常、ブリッジは Thunderbird の接続ファイルを自動で見つけるため、環境変数は必要ありません。見つけられない場合に限り、サーバーの環境で COMMONPOST_MCP_CONNECTION_FILE にファイルの実際のパスを設定してください。JSON 形式では args の隣に "env": { ... } オブジェクトを指定し、Codex では [mcp_servers.commonpost-mail.env] テーブルを指定します(サンドボックスを考慮した接続ファイルの検出を参照。Windows ではファイルがブリッジ専用の %TEMP% 配下にある必要があります)。ここで設定したパスは自動検出に優先するため、プレースホルダーを残さないでください。クライアントの形式は変更されることがあります。ここに記載の形式が一致しなくなった場合は、クライアント独自の MCP ドキュメントに従い、同じコマンドと引数を使用してください。
別のコンピューターから(SSH)
別のコンピューター上の MCP クライアントから Thunderbird を使用するには、Thunderbird が動作しているコンピューターでブリッジを実行し、 標準入力と標準出力を SSH 経由で転送します。アドオンは引き続き localhost のみで待ち受け、メールは暗号化された SSH 接続内を通ります。
{
"mcpServers": {
"commonpost-mail": {
"command": "ssh",
"args": ["-o", "BatchMode=yes", "you@thunderbird-host", "node", "/absolute/path/to/mcp-bridge.cjs"]
}
}
}
SSH ログインは、プロンプトなしで実行できる必要があります(鍵を使用し、ホストがすでに known_hosts に登録されている状態)。クライアントはプロンプトに応答できず、BatchMode=yes を指定すると、待機せずにすぐ失敗します。そのコンピューターでは、非対話型の SSH セッションで node が PATH 上にある必要があります。対象のコンピューターは、Linux や macOS だけでなく、Windows(OpenSSH Server)でもかまいません。トークンとメールが暗号化されていない HTTP としてネットワーク上を流れる「すべてのインターフェイスで待ち受ける」設定よりも、この方法をおすすめします。
サンドボックスを考慮した接続先の検出
ブリッジはキャッシュミスのたびに connection.json を再検出します。次の場所を順に試します。
- 設定されている場合は
COMMONPOST_MCP_CONNECTION_FILE - ネイティブの一時ディレクトリ:
<os.tmpdir()>/commonpost-mcp/connection.json - macOS のフォールバック:現在のユーザーが所有する
/var/folders/*/*/T/commonpost-mcp/connection.json - Linux Snap:実際に制限付きの Thunderbird snap であるプロセス(
/proc/<pid>/exeが/snap/thunderbird/配下を指し、その環境にSNAP_NAME=thunderbirdが含まれる場合)からのみ、そのプロセスの実際のTMPDIRを読み取ります。公式 snap の~/Downloads/thunderbird.tmpへのフォールバックは、そのようなプロセスが実際に確認された場合にのみ試します - Linux Flatpak/Betterbird Flatpak:実際の
/run/user/<uid>(lstatで検証し、$XDG_RUNTIME_DIRの値は信頼しません)内の、限定されたアプリ ID(org.mozilla.thunderbird、org.mozilla.thunderbird_esr、org.mozilla.Thunderbird、eu.betterbird.Betterbird)
これにより、ネイティブインストール、公式の Thunderbird snap、Thunderbird Flatpak(別のリモートからインストールされ、同じアプリ ID を共有するベータチャンネルを含む)、Betterbird Flatpak に対応できます。拡張機能側を変更する必要はありません。サンドボックス内の候補が複数ある場合、ブリッジは更新日時が最も新しいファイルから試します。単一のパスを明示的に指定するには、COMMONPOST_MCP_CONNECTION_FILE を設定してください。
上書きの例:
{
"mcpServers": {
"commonpost-mail": {
"command": "node",
"args": ["/absolute/path/to/commonpost-mcp/mcp-bridge.cjs"],
"env": {
"COMMONPOST_MCP_CONNECTION_FILE": "/absolute/path/to/connection.json"
}
}
}
}
これで完了です。AI から Thunderbird にアクセスできるようになります。
thunderbird-mcp からの移行
両方のアドオンを同時にインストールできます。ID、設定、ポート(こちらは 8780-8789、あちらは 8765-8774)、一時ディレクトリが異なるためです。共有や自動移行は行われません。
- 設定(
extensions.thunderbird-mcp.*)はコピーされません。このアドオンのオプションページで再設定してください。再設定するまでは、すべてのアカウントとツールが MCP クライアントに表示されます。アカウントとツールの制限は引き継がれません。 - MCP クライアントのブリッジには、このリポジトリの
mcp-bridge.cjs(またはcommonpost-mcpバイナリ)を指定する必要があります。また、設定する場合はCOMMONPOST_MCP_CONNECTION_FILEを使用してください(古いTHUNDERBIRD_MCP_CONNECTION_FILEは意図的に無視されるため、一方のブリッジがもう一方のアドオンのファイルを読み取ることはありません)。 - 両方を使い続ける場合、オプションページに通知が表示されます。また、使用するアドオンに合わせて各 MCP クライアントを設定する必要があります。同じメールボックスを 2 つのサーバーが操作しないよう、使用しない方を無効にしてください。
セキュリティ
- 認証トークン:HTTP サーバーには、セッション単位のベアラートークンが必要です。起動時に生成され、0600 の権限で
<TmpD>/commonpost-mcp/connection.jsonに書き込まれます。ブリッジは、ネイティブインストール、Snap、Flatpak、Betterbird Flatpak、macOS の一時ディレクトリをまたいで、このファイルを自動的に再検出します。オプションページでは、再起動後も変わらない安定トークンも設定できます。これは接続ファイルではなく Thunderbird の設定に保存されます。有効な状態でアドオンを削除すると、この設定は消去されますが、先に無効にしてから削除した場合は消去されません。そのため、無効にしたアドオンを削除する前に、オプションページの「安定トークンを使用」のチェックを外して、手動で消去してください。 - 動的ポート:8780~8789 のポートを試し、実際に使用するポートを接続ファイルに記録します。ポートをハードコードした依存関係はありません。
- アカウントアクセス制御:設定ページから、MCP クライアントに表示するメールアカウントを制限できます。変更はすぐに反映されます。
- ツールアクセス制御:設定ページから特定のツールを無効にできます。無効にしたツールは
tools/listから非表示になり、ディスパッチ時にもブロックされます。 - ローカルホストのみ:デフォルトでは、サーバーはローカルホストのみにバインドされます。設定の「すべてのインターフェースでリッスン」オプションを有効にすると、WSL、Docker、またはリモートアクセスのために、すべての IPv4 インターフェースにバインドされます。**これにより、ローカルネットワーク上のすべてのデバイスが、暗号化されていない HTTP 経由で MCP サーバーにアクセスできるようになります。トークンとメールは暗号化されません。**信頼できるネットワークでのみ有効にしてください。認証トークンは常に必要です。別のコンピューターから利用する場合は、代わりに SSH 経由でブリッジを実行してください(別のコンピューターから(SSH))。
- 自動更新の完全性:自動更新はコード配信チャネルです。その完全性は、GitHub リポジトリ、GitHub Actions トークン、
commonpostGitHub 組織を継続的に管理できているかどうかに依存します。 - ブリッジのバージョン:ブリッジはすべてのリクエストでバージョンを通知します(
X-Commonpost-Bridgeヘッダー)。アドオンは、推奨バージョンより古いブリッジについて警告し、コード内に記載されたセキュリティ最低バージョンを下回るブリッジを拒否できます(出荷時は無効)。インターネット経由で確認やダウンロードは行われません。このヘッダーの値は自己申告です。サーバーを保護するのはヘッダーではなくトークンです。SECURITY.md を参照してください。
添付ファイルの拒否
sendMail、saveDraft、replyToMessage、または forwardMessage の呼び出しで、添付ファイルのパスが以下のいずれかに該当する場合、その呼び出し全体が拒否されます。該当する添付ファイルだけを黙って除外するのではなく、呼び出し全体が失敗し、送信、保存、オープンは行われません。
- パス内のどこかにドットファイルまたはドットディレクトリがある場合(
.ssh、.aws、.config/gcloud、.git-credentials、…)。 - 見つかった場所にかかわらず、それ自体で認証情報や秘密情報を含むファイル名の場合(
credentials.json、*.ppk、*.jks、*.pem、*.p12、*.kdbx、wallet.dat、terraform.tfstate*、Local State、ブラウザーの Cookie/ログイン情報の保存先、…)。 - システムディレクトリ(
/etc、/proc、C:\Windows\System32、…)および各メールクライアント独自のプロファイル(Thunderbird やその他のメールクライアントに保存された認証情報)。 - すべての Thunderbird プロファイルのフォルダーと、すべてのメールアカウントのローカルフォルダー(場所は問いません。別のドライブ、ポータブルインストール、任意に選択したフォルダーも含みます)。アドオンは接続ファイルにこれらを一覧表示し、ブリッジはパス、実パス、フォルダー ID に基づいて配下のすべてを拒否します。そのため、これらへのリンクや同じフォルダーの別のマウントも拒否されます。この機能には、0.17.1 以降のアドオンとブリッジが必要です。対象外:実行中のプロファイル以外のプロファイルのアカウントフォルダー、ドライブのルートにあるメールストア、ブリッジが別のパスとして認識するフォルダー(WSL またはコンテナ内のブリッジなど)、これらのフォルダー外に作成されたコピー。
- macOS では、サインイン中のユーザーの
Libraryフォルダー配下にあるものすべて(Mail、Messages、Keychains、Application Support、…)。APFS の Data ボリュームにおける実パス形式も含みます。 - Windows では、AppData と、その互換性ジャンクションのエイリアス(
Local Settings、Application Data、Cookies、Recent、SendTo、…)。ただし例外が 1 つあります。拡張機能独自の<TEMP>\commonpost-mcp\バックアップフォルダーは対象外のため、そこに以前保存した添付ファイルは引き続き添付できます。ただし、connection.json自体はそのフォルダー内にあっても拒否されます。 - UNC パスまたはデバイスパス(
\\server\share\...、\\?\...)、代替データストリーム、または指定された名前とは別の名前に解決される Windows 形式のパス(8.3 短縮名、末尾のドットや空白など)。
ブリッジはさらに、添付ファイルの実パス(シンボリックリンク経由、および Windows ではジャンクションや再解析ポイント経由)も解決して確認します。そのため、一見無害な名前でアクセスした拒否対象のファイルも拒否されます。Windows では拡張機能でこれを行えません(Gecko の nsLocalFile::IsSymlink は Windows では実装されていません)。その代わり、Windows では文字列形式のファイルパスによる添付をすべて拒否します。Windows ではブリッジ経由でファイルを添付してください。
Thunderbird が Release チャネルで Experiment アドオンを無効にする場合
このアドオンは Thunderbird の Experiment API を使用しています(docs/experiment-inventory.md を参照)。Thunderbird のアドオンチームは、Release チャネルで Experiment API アドオンの実行を停止し、ESR(Extended Support Release)チャネルではサポートを継続する計画を発表しています。2026 年 11 月時点では、まだ実施されていません。
お使いの Thunderbird でその変更が行われ、このアドオンが動作しなくなった場合は、Thunderbird ESR に切り替えてください。すべてのプラットフォーム向けのダウンロードはThunderbird の公式サイトにあります(「ESR」ビルドを探してください)。この継続版は 0.8.2 以降、Thunderbird ESR をサポートしています(最小バージョンは 140.0 です。上記のバッジと CHANGELOG.md を参照)。
トラブルシューティング
| 問題 | 対処方法 |
|---|---|
| 拡張機能が読み込まれない | 「ツール」>「アドオンとテーマ」を確認してください。エラーは「ツール」>「開発ツール」>「エラーコンソール」で確認できます |
| 接続が拒否される | Thunderbird が起動しており、拡張機能が有効になっていることを確認してください |
ブリッジが connection.json を見つけられない | 環境で標準以外の一時ファイル/ランタイムパスを使用している場合は、COMMONPOST_MCP_CONNECTION_FILE を明示的に設定してください |
| Windows でブリッジがファイルを見つけても拒否される | ファイルはブリッジプロセス自体の %TEMP% 配下になければなりません。ブリッジを WSL またはコンテナ内で実行すると、ファイルに \\wsl.localhost\... やマウント経由でアクセスできる場合でも、Thunderbird(ネイティブ Windows)が使用した %TEMP% とは異なる %TEMP% が割り当てられます。これは正しい拒否動作であり、バグではありません。COMMONPOST_MCP_CONNECTION_FILE にファイルの実際のパスを設定してください |
| コンテナ内または WSL 下のブリッジで、以前はマウントした一時フォルダー経由で接続ファイルを見つけられたのに、現在は拒否される(古いプロセスまたは無関係なプロセス) | ブリッジは、実行中の Thunderbird に関連付けられないファイルを信頼しなくなりました。COMMONPOST_MCP_CONNECTION_FILE にファイルの実際のパスを設定してください |
Windows で %TEMP% 配下の添付ファイルが拒否される | %TEMP% は AppData\Local 配下にあり、Windows の他のプログラムの認証情報やアプリデータが保存されているため、拒否リストでは AppData の他の領域と同様に扱われます。まずファイルを別のフォルダー(たとえば「ドキュメント」)にコピーしてください |
| 最近のメールが見つからない | IMAP フォルダーの内容が古い場合があります。Thunderbird でフォルダーをクリックして同期するか、右クリックして「プロパティ」>「フォルダーを修復」を選択してください |
| 更新後にツールが見つからない | 新しいツールを読み込むには MCP に再接続してください(Claude Code では /mcp) |
searchBody が結果を返さない | Gloda がメッセージ本文をインデックス化できるように、IMAP アカウントでオフライン同期を有効にする必要があります |
IMAP で rawSource が失敗する | ローカル/オフラインのメッセージコピーが必要です。オフライン同期を有効にするか、まずメッセージをクリックしてキャッシュしてください |
開発
# 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 COMMONPOST_MCP_CONNECTION_FILE first.
CONN_FILE="${COMMONPOST_MCP_CONNECTION_FILE:-/tmp/commonpost-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"}'
ブリッジを介さず HTTP API を直接呼び出すプログラムは X-Commonpost-Bridge ヘッダーを送信しないため、ブリッジ 0.11 以前と同様に扱われます。ツールの結果にはブリッジの更新を促す通知が含まれることがあり、mode: "send" または "draft" を指定した replyToMessage/forwardMessage は拒否されます(古いブリッジは 30 秒後に待機を終了します)。これらの呼び出しを少なくとも 180 秒間待機する直接クライアントは、-H "X-Commonpost-Bridge: 0.12.0; packaging=file" を指定して自身を申告できます。リリースでブリッジのセキュリティ下限が有効になると、ヘッダーのないクライアントは完全に拒否されます。
開発時のみの拡張機能の再読み込み: 拡張機能のソースをローカルで変更した後は、Thunderbird からアドオンを削除して再起動し、XPI を再インストールしてから、もう一度再起動してください。Thunderbird は積極的にキャッシュします。
npm ci --ignore-scripts && npm test でテストを実行してください。CONTRIBUTING.md を参照してください。Thunderbird のすべての権限を必要とする項目は、docs/experiment-inventory.md に記載されています。
各要素の連携方法:docs/architecture.md。設計の安全性を信頼できると考える理由と既知の制限:docs/assurance-case.md。意思決定者とその方法:GOVERNANCE.md。 今後の予定:ROADMAP.md。
プロジェクト構成
commonpost-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; fast-check for the property tests)
├── docs/ # Experiment inventory, filter API notes
└── scripts/
├── build-xpi-reproducible.cjs # release build (byte-for-byte reproducible)
├── build.sh # quick development build
└── install.sh
既知の問題
- IMAP フォルダのデータベースは、Thunderbird でフォルダーをクリックするまで古い状態のままの場合があります
- HTML のみのメールはプレーンテキストに変換されます(元の書式は失われます)
- 繰り返しカレンダーイベントの CRUD 操作は、個々の回ではなくシリーズ全体を対象とします
- IMAP フォルダーの操作(名前変更、削除、移動)は非同期です。実行後に
listFoldersで確認してください - IMAP でタグ付けと移動/ゴミ箱への移動を組み合わせると、移動先のコピーにタグが保持されない場合があります。別々に呼び出してください
- アカウント間の移動/コピー先を指定する既存の Thunderbird フィルターは、アカウントアクセス制御の対象外です
- オフライン同期を有効にしていない IMAP での
searchBodyは、ヘッダーのみを検索します(Gloda の制限) - IMAP での
rawSourceにはオフラインのメッセージコピーが必要です。オンラインのみのメッセージではエラーになります
ライセンスとクレジット
MIT(LICENSEを参照):著作権は Tomasz Kasperczyk(元プロジェクト)および Commonpost のコントリビューターに帰属します。extension/httpd.sys.mjs は Mozilla の組み込み HTTP サーバーであり、MPL-2.0 の下でライセンスされています(THIRD-PARTY.mdを参照)。上流のプルリクエストから取り入れた修正とアイデアの著作者は、引き続き各作者に帰属します:Tony(TKasperczyk/thunderbird-mcp#209)、safrano9999(TKasperczyk/thunderbird-mcp#214)、Daniel Glaser(the78mole;TKasperczyk/thunderbird-mcp#195、TKasperczyk/thunderbird-mcp#222により置き換え済み)、Neel Radhakrishnan(TKasperczyk/thunderbird-mcp#175)、JordanRO2(TKasperczyk/thunderbird-mcp#126、およびフィルター送信ガードのアイデアと設定名、TKasperczyk/thunderbird-mcp#127)、KinJLy と coulof(フォーク)。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。