mcpField
E
Email Mcp

Email Mcp

ローカル
github.com/marlinjaiコミュニケーション261 週間前に更新

Email Mcp について

Email Mcp(@marlinjai/email-mcp)は、Gmail、Outlook、iCloud および汎用の IMAP/SMTP アカウントに対応する統合 MCP サーバーです。メールの検索、送信、整理、一括管理を行う 36 個のツールを提供し、OAuth2 認証と暗号化された認証情報の保存を組み込んでいます。

主な機能

  1. 01Gmail、Outlook、iCloud、汎用 IMAP/SMTP に対応
  2. 02OAuth2 認証とトークンの自動更新
  3. 03検索、閲覧、送信、返信、転送、下書き管理
  4. 04多数のメールの一括削除、移動、マーク付け
  5. 05保存された認証情報の AES-256-GCM 暗号化
  6. 06指定フォルダ内のファイルのみ添付可能

活用シーン

  1. 01Claude Code からメールを検索して整理
  2. 02大量のメールを一度に移動またはマーク
  3. 03アカウント間でメッセージを転送

MCP 対応

本プロジェクトは MCP サーバーであり、アカウント管理、閲覧・検索、下書きと送信、整理、一括操作にわたる 36 個のメール関連ツールを MCP クライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"email-mcp-marlinjai": {
"command": "npx",
"args": [
"-y",
"@marlinjai/email-mcp"
]
}
}
}
起動コマンドnpx -y @marlinjai/email-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@marlinjai/email-mcp1.2.3

ツール

25

掲載時のツール一覧 · 3 週間前に更新

このツールにパラメーターはありません。

詳細

@marlinjai/email-mcp

email-mcp のロゴ

Gmail、Outlook、iCloud、および汎用 IMAP プロバイダーでメールにアクセスできる統合型 MCP サーバーです。

機能

  • マルチプロバイダー対応 -- Gmail(REST API)、Outlook(Microsoft Graph)、iCloud(IMAP)、汎用 IMAP/SMTP に対応
  • OAuth2 認証 -- Gmail と Outlook のブラウザー経由の OAuth フローに対応し、トークンを自動更新します
  • メールクライアント機能を網羅 -- メールの検索、閲覧、送信、返信、転送、整理、下書きの管理ができます
  • 一括操作 -- 1 回の呼び出しで数百件のメールを削除、移動、または既読にできます
  • 軽量な検索 -- デフォルトではコンパクトな検索結果(約 20KB、従来は約 1.4MB)を返し、必要に応じて本文全体を取得できます
  • 認証情報の暗号化保存 -- マシンから生成したキーを使用し、保存データを AES-256-GCM で暗号化します
  • プロバイダー標準の API -- 利用可能な場合は Gmail API と Microsoft Graph を使用して豊富な機能を提供し、あらゆる環境での互換性を確保するため IMAP にフォールバックします

インストール

npm からグローバルにインストールします。

npm install -g @marlinjai/email-mcp

または、npx で直接実行します(インストール不要)。

npx @marlinjai/email-mcp

クイックスタート

  1. 対話型セットアップウィザードを実行して、メールアカウントを追加します。
npx -y -p @marlinjai/email-mcp@latest email-mcp-setup

-p/--package フラグは必須です。 このパッケージは 2 つのバイナリ(MCP サーバー用の email-mcp と、このウィザード用の email-mcp-setup)を宣言しています。-p を指定しない場合、npx はパッケージ名と同じ名前のバイナリ(サーバーの email-mcp)を実行し、email-mcp-setup を無視される引数としてサーバーにひそかに渡します。その結果、サーバーは標準入力からの MCP プロトコル入力を待ち続け、出力をまったく表示しません。フリーズしたように見えます。-p を指定すると、解決するパッケージと実行するバイナリを npx に明示できます。

ウィザードの案内に従って、プロバイダーの選択と認証を行います。アカウントを追加するたびに、別のアカウントを追加するかどうかを尋ねられるため、Gmail、Outlook、iCloud をまとめてセットアップできます。

  1. MCP 設定(.mcp.json)にサーバーを追加します。
{
  "mcpServers": {
    "email": {
      "command": "npx",
      "args": ["@marlinjai/email-mcp"]
    }
  }
}
  1. Claude Code でメールツールを使い始めましょう。受信トレイの検索、メールの送信、メッセージの整理などができます。

プロバイダー別セットアップガイド

Gmail

設定は不要です。セットアップウィザードが組み込みのOAuth認証情報(PKCE)を使用してすべて処理します。

npx -y -p @marlinjai/email-mcp@latest email-mcp-setup
# Select "Gmail" when prompted
# Choose "Full" or "Restricted" permission scope when asked
# A browser window opens for Google authorization
# Grant the requested permissions and return to the terminal

ウィザードでは、認証するGmailの権限スコープを選択します。

  • Full(デフォルト) — 以下のすべてに加え、ゴミ箱を経由しない即時の完全削除(https://mail.google.com/、Gmailで最も強い権限を持つスコープ)。
  • Restricted — 読み取り、送信、ラベル付け、アーカイブ、ゴミ箱への移動(gmail.modify + gmail.settings.basic)はできますが、完全削除はできません。このサーバーのすべてのツールは、Restrictedでも同じように動作します。ただし、permanent: trueを明示した削除は例外で、成功する代わりにGmail APIエラーになります。

プロンプトを省略するには--scope fullまたは--scope restrictedを渡すか、ウィザードの実行環境でEMAIL_MCP_GMAIL_SCOPE=restrictedを設定してください。

検証状況(2026年10月1日): 共有OAuthアプリのGoogleによる審査はまだ進行中のため、現在Googleはテストユーザーリストに登録されたアカウントのみ、そのアプリを通じたサインインを許可しています。それ以外のユーザーには「Googleの確認プロセスが完了していません」という画面が表示され、独自のOAuthアプリが必要です(次の注記を参照)。共有アプリで残っている最後の手順は、Googleから求められている年次の独立セキュリティ評価(CASA、Cloud Application Security Assessment)です。email-mcpには独自のサーバーがないため、該当するかどうかをGoogleに確認しています。詳細と最新状況:email.lumitra.co/privacy#google-verification。issue #1で追跡しています。

注記: このパッケージに同梱されている共有OAuthアプリではなく、独自のOAuthアプリを使用する場合は、Google Cloud ConsoleでGmail APIを有効にしたDesktop OAuth 2.0 Clientを作成し、セットアップウィザードの実行前に環境変数EMAIL_MCP_GMAIL_CLIENT_IDとEMAIL_MCP_GMAIL_CLIENT_SECRETを設定してください(再認証でも同じ変数を使用するため、MCPサーバーの環境変数にも設定してください)。これにより、公開元のCloudプロジェクトに依存しない独自のトークンライフサイクルを利用でき、自分のアプリに自分をテストユーザーとして追加すれば、自分のアカウントについてGoogleの未検証アプリに関する警告とテストユーザー数の上限(100人)を回避できます。

Outlook

設定は不要です。セットアップウィザードが組み込みのOAuth認証情報(PKCE)を使用してすべて処理します。

npx -y -p @marlinjai/email-mcp@latest email-mcp-setup
# Select "Outlook" when prompted
# A browser window opens for Microsoft authorization
# Sign in and grant the requested permissions

注記: 独自のOAuthアプリを使用する場合は、Azure PortalでMail.ReadWrite、Mail.Send、MailboxSettings.ReadWrite(email_create_block_ruleに必要)、offline_accessの権限を指定してアプリを登録し、セットアップウィザードの実行前に環境変数EMAIL_MCP_OUTLOOK_CLIENT_IDを設定してください。

iCloud
  1. appleid.apple.comにアクセスしてサインインします。
  2. アプリ用パスワードに移動し、新しいパスワードを生成します。
  3. セットアップウィザードを実行します。
npx -y -p @marlinjai/email-mcp@latest email-mcp-setup
# Select "iCloud" when prompted
# Enter your iCloud email address
# Enter the app-specific password you generated
汎用IMAP

IMAP/SMTPサーバーの詳細を指定して、セットアップウィザードを実行します。

npx -y -p @marlinjai/email-mcp@latest email-mcp-setup
# Select "Other IMAP" when prompted
# Enter your IMAP host, port, and credentials
# Optionally enter SMTP host and port for sending

利用可能なツール(36)

アカウント管理(4)
ツール説明
email_list_accounts接続状況とともに、設定済みのすべてのアカウントを一覧表示します
email_add_account新しいIMAPまたはiCloudアカウントを追加します(Gmail/Outlookではセットアップウィザードが必要です)
email_remove_accountアカウントと保存済みの認証情報を削除します。GmailではGoogleの許可を取り消し、Outlookではローカルトークンキャッシュからトークンを削除し、結果を報告します
email_test_accountアカウントへの接続をテストします
閲覧と検索(6)
ツール説明
email_list_foldersアカウントのすべてのフォルダー/ラベルを一覧表示します
email_searchフィルターを指定してメールを検索します。デフォルトでは簡潔な結果を返します(returnBody=false)。メール本文全体を含めるには、returnBody=trueを設定します
email_getIDでメールの全文を取得します(ヘッダー、本文、添付ファイルのメタデータ)。メッセージがINBOXにない場合、sourceFolderにはiCloud/IMAP上のフォルダー名を指定します
email_get_threadメールのスレッド/会話全体を取得します。iCloud/IMAPでは、スレッドは1つのフォルダー内で検索されます。INBOX、またはsourceFolderで指定したフォルダーが対象です
email_get_attachmentIDで特定の添付ファイルをダウンロードします(base64データを返します)。メッセージがINBOXにない場合、sourceFolderにはiCloud/IMAP上のフォルダー名を指定します
email_save_attachment添付ファイルをディスクに直接ダウンロードし、メタデータのみを返します。これにより、大きなファイルをbase64で往復させる際のトークンコストを抑えられます。outputPathは固定のダウンロードディレクトリ(~/.email-mcp/downloads。EMAIL_MCP_DOWNLOADS_DIRで変更可能)からの相対パスであり、このディレクトリの外には指定できません。sourceFolderの指定方法はemail_get_attachmentと同じです
送信と下書き(6)

email_send、email_reply、email_forward、email_draft_create、email_draft_update では、オプションの attachments リストを指定できます。各エントリは { path }(添付ファイルフォルダー内のファイル。下記参照)または { content, filename }(base64)のいずれかで、オプションで contentType も指定できます(指定しない場合は拡張子から推定されます)。合計サイズは25 MBまでです。このサーバー経由では、Outlookは1通あたり最大3 MBまで受け付けます。email_draft_update では、リストを指定すると下書きのファイルが置き換えられ、空のリストを指定するとファイルが削除され、リストを指定しない場合は下書きのファイルがそのまま残ります。

返信は元のスレッド内で行われます。email_reply はGmailとOutlookで元の会話内に送信され(どのサービスでも In-Reply-To と References ヘッダーが設定されます)、inReplyToEmailId を指定した email_draft_create はそのスレッド内に返信の下書きを保存し、email_draft_update は返信の下書きをそのスレッド内に保持します。

元のメッセージの添付ファイルを転送するには、明示的な指定が必要です。 email_forward は元のメッセージの本文を送信します。ファイルが添付されるのは includeOriginalAttachments: true を指定した場合のみです。これにより、アシスタントが確認していないファイルが、1回の呼び出しで別の宛先に渡されることはありません。転送するファイルも、追加するファイルと合わせて25 MBの上限に含まれます。

フォルダーを指定するまでは、パスによるファイルの添付は無効です。 パスはアシスタントから渡されるため、メールを読むアシスタントは、添付すべきでないもの(たとえば秘密鍵)をメールで添付するよう要求される可能性があります。そのため、ファイルを読み取れるのは、サーバーの環境で EMAIL_MCP_ATTACHMENTS_DIR に設定した1つのフォルダー内だけです。どのツールもこの設定を変更できません。ファイルをそのフォルダーに置き、ファイル名で指定してください。

{
  "mcpServers": {
    "email": {
      "command": "npx",
      "args": ["@marlinjai/email-mcp"],
      "env": { "EMAIL_MCP_ATTACHMENTS_DIR": "~/Documents/email-outbox" }
    }
  }
}

そのフォルダーの外にあるパスは拒否されます。また、フォルダーの外を指すシンボリックリンクも拒否され、email-mcp 自身のデータファイルは添付できません。

ツール説明
email_send新しいメールを作成して送信します(宛先、cc、bcc、件名、本文、添付ファイル)
email_replyメールにスレッド内で返信します。replyAll は、送信者とTo/Ccの全受信者(自分のアドレスを除く)を、それぞれ1回ずつ宛先にします。オプションの to/cc/bcc による上書きと、additionalRecipients に対応しています(自分が送信したメールに返信する場合など)。添付ファイルにも対応しています。メッセージがINBOXにない場合、sourceFolder でiCloud/IMAP上のフォルダーを指定します
email_forwardメールを新しい宛先に転送します(to、cc、bcc、先頭に追加するオプションのテキスト、添付ファイル)。includeOriginalAttachments: true を指定しない限り、元のメールの添付ファイルは含まれません。メッセージがINBOXにない場合、sourceFolder でiCloud/IMAP上のフォルダーを指定します
email_draft_create送信せずに下書きを保存します(添付ファイルに対応)。inReplyToEmailId を指定すると、そのメッセージのスレッド内に返信として保存します(メッセージがINBOXにない場合、inReplyToSourceFolder でiCloud/IMAP上のフォルダーを指定します)
email_draft_update既存の下書きをその場で更新します。返信の下書きはスレッド内に保持されます。Gmail/Outlookでは下書きIDは変わりません。iCloud/汎用IMAPではその場で更新できないため(IMAPメッセージは不変です)、古い下書きが削除され、新しい下書きが追加されます。返されるIDは新しいIDなので、以降は必ずそのIDを使用してください
email_draft_listすべての下書きを一覧表示します
整理(8)
ツール説明
email_moveメールを別のフォルダーに移動します。IMAP/iCloudでは sourceFolder に対応しています
email_transfer元のメッセージ(送信者、日付、スレッド情報)をraw MIME転送で保持したまま、アカウント間でメールを移動またはコピーします。deleteAfter=true を指定すると、インポートの成功を確認した後にのみ移動元をゴミ箱に入れます(安全なアカウント間移動)
email_deleteメールを削除します(ゴミ箱に入れる、または完全に削除)。IMAP/iCloudでは sourceFolder に対応しています
email_mark既読/未読、スター付き、またはフラグ付きに設定します。IMAP/iCloudでは sourceFolder に対応しています
email_labelラベルを追加または削除します(Gmailのみ)
email_folder_create新しいフォルダーを作成します
email_get_labels件数とともにすべてのラベルを一覧表示します(Gmailのみ)
email_get_categoriesすべてのカテゴリを一覧表示します(Outlookのみ)
一括操作(4)
ツール説明
email_batch_delete複数のメールを一度に削除します(Gmailでは最大1000件、Outlookでは20件ずつ、IMAPではUID範囲を使用)
email_batch_move1回の呼び出しで複数のメールをフォルダーに移動します
email_batch_mark複数のメールを一度に既読/未読、スター付き、またはフラグ付きにします
email_batch_label複数のメールに一度にラベルを追加または削除します(Gmailではネイティブの一括呼び出し、それ以外では1件ずつ処理)

すべての一括操作ツールは、IMAP/iCloud用のsourceFolderパラメーターを受け付け、互換性を最大限に高めるための逐次処理フォールバックを備えています。

スパムのモデレーション(5)
ツール説明
email_report_spamメールをスパム/迷惑メールとして報告し、プロバイダー独自のフィルターを学習させます。Gmail/Outlookの「迷惑メールを報告」ボタンが送信するシグナルと同じです。メッセージを削除してもフィルターに何も学習させないemail_deleteとは異なります。プロバイダーのセキュリティチームへの不正使用の報告ではありません。このアカウントのフィルターを学習させるだけです
email_batch_report_spam複数のメールを一度にスパム/迷惑メールとして報告します
email_create_block_ruleパターン(送信者のドメイン/アドレス、件名、または任意のヘッダー内容)に一致する今後のメールを捕捉し、削除または移動する常設ルールを作成します。表示される「From」のドメインがローテーションするスパムテンプレートの一群をブロックするには、headerContains(例:Reply-Toドメイン)を使用してください。ローテーションするドメインを直接照合する方法は、数日以内に機能しなくなります。iCloud/汎用IMAPではサポートされていません(IMAPサーバー間で共通のサーバー側ルール機構が存在しないため)。Outlookでは、moveToJunkは迷惑メールフォルダーに直接振り分けられ、MailboxSettings.ReadWriteスコープが必要です。Gmailでは、moveToJunkは受信トレイをスキップ(アーカイブ)するだけで、文字どおり迷惑メールに振り分けるわけではありません。GmailのフィルターAPIは常設ルールでのSPAMラベル付与を拒否します(付与できるのはGmail独自の分類器だけです。ただし、フィルターではなくメッセージごとの直接操作であるemail_report_spamでは引き続き付与できます)。また、gmail.settings.basicスコープが必要です。これらのスコープが追加される前に認証したアカウントでは、再度同意するためにセットアップウィザードを一度実行し直す必要があります
email_list_block_rulesアカウントの常設ブロックルールを一覧表示します。監査や、削除前の確認に使用できます
email_delete_block_rule常設ブロックルールを削除します。範囲が広すぎると判明したルールを取り消す際に使用します

ルール用ツールはGmailとOutlookのみで使用できます。email_report_spam/email_batch_report_spamはすべてのプロバイダーで動作します(iCloud/IMAPでは、アカウント内の迷惑メール用フォルダーへのベストエフォートの移動にフォールバックします。汎用IMAPには学習させるものがないため、ベンダーのML学習シグナルは送信されません)。

転送ルール(3)
ツール説明
email_create_forward_ruleパターン(送信者のドメイン/アドレス、件名、またはヘッダーの内容)に一致する今後のメールを別のアドレスに転送する常設ルールを作成します。たとえば、仕入先からの請求書を経理用アドレスに転送できます。keepInInbox が false でない限り、元のメールは受信トレイに残ります。同じルールを重複して作成した場合は、既存のルールが返されます
email_list_forward_rulesGmail や Outlook で手動作成されたルールも含め、アカウント上のメールを別の場所に転送するすべてのルールを一覧表示します。メールの転送先を確認できます
email_delete_forward_ruleID を指定して転送ルールを削除します

Gmail と Outlook のみ対応しています。iCloud と汎用 IMAP にはサーバー側のルール機能がないため、プロバイダー独自の設定でルールを設定してください。

許可するまでは転送は無効です。 常設の転送ルールは今後のメールをメールボックスの外にコピーします。また、メールを読むアシスタントは、読んだメールからルールの作成を依頼される可能性があります。そのため、email_create_forward_rule が受け付けるのは、サーバーの環境変数 EMAIL_MCP_FORWARD_ALLOWLIST(カンマ区切り)にご自身で登録したアドレスのみです。どのツールもこのリストを変更できません。

{
  "mcpServers": {
    "email": {
      "command": "npx",
      "args": ["@marlinjai/email-mcp"],
      "env": { "EMAIL_MCP_FORWARD_ALLOWLIST": "[email protected]" }
    }
  }
}

Gmail では、転送先がアカウントの転送先アドレスとして登録されている必要もあります。Gmail の設定で「メール転送と POP/IMAP」から「転送先アドレスを追加」を選び、Google からそのアドレスに送信されるメールで一度確認してください。Outlook ではこの手順は不要です。そのため、許可リストが用意されています。ブロックルール用ツールの追加前に認証した Outlook アカウントでは、これらのツールと同様に、セットアップウィザードを一度再実行する必要があります。

Claude Code での使用方法

.mcp.json ファイル(プロジェクトレベルまたはグローバルの ~/.claude/.mcp.json)に以下を追加してください。

{
  "mcpServers": {
    "email": {
      "command": "npx",
      "args": ["@marlinjai/email-mcp"]
    }
  }
}

設定が完了すると、Claude にメールの操作を依頼できます。

  • 「受信トレイで未読メッセージを確認して」
  • 「過去 1 週間に [email protected] から届いたメールを検索して」
  • 「Bob からの最新のメールに返信して、お礼を伝えて」
  • 「ニュースレターをすべてアーカイブフォルダーに移動して」
  • 「迷惑メールをすべて削除して」(速度向上のため、一括操作を使用します)
  • 「会議についてチームに送るフォローアップメールの下書きを作成して」

開発

# Install dependencies
pnpm install

# Build the project
pnpm build

# Run in development mode (watch for changes)
pnpm dev

# Run tests
pnpm test

# Run tests in watch mode
pnpm test:watch

# Run integration tests (requires real email accounts)
pnpm test:integration

認証情報の保存

アカウントの認証情報は ~/.email-mcp/credentials.enc に AES-256-GCM で暗号化して保存されます。

デフォルトでは、暗号化キーはマシン固有の安定した識別子(macOS ではハードウェア UUID、Linux では /etc/machine-id、Windows では MachineGuid)から導出されます。いずれも利用できない場合は、ホスト名が使用されます。

独自のパスフレーズを指定するには、環境変数 EMAIL_MCP_KEY を設定してください。マシン識別子が変わる可能性がある場合(たとえばコンテナーや CI 環境)、または credentials.enc を別のマシンに移動する場合に推奨されます。

export EMAIL_MCP_KEY="your-strong-passphrase"

EMAIL_MCP_KEY が設定されている場合、既存の認証情報ファイルは、次回読み込まれるときにパスフレーズを使って自動的に再暗号化されます。

Outlook のリフレッシュトークンは、Microsoft の認証ライブラリ(MSAL)のトークンキャッシュ ~/.email-mcp/msal-cache.enc に保存されます。これは credentials.enc と同じ方式およびキー導出方法で暗号化されるため、EMAIL_MCP_KEY によって両方のファイルが保護されます。1.8.0 より前のバージョンでは、このキャッシュは ~/.email-mcp/msal-cache.json にプレーンな JSON として保存されていました。1.8.0 ではキャッシュが暗号化され、最初の読み込み時にプレーンファイルが削除されますが、サインアウトはされません。その後、古いバージョンに戻すと、Outlook に再度サインインする必要があります。

macOS と Linux では、email_save_attachment で保存される添付ファイルは所有者のみが読み書きできる権限(0600)で保存され、email-mcp が添付ファイル用に作成するフォルダーの権限は 0700 です。暗号化はされません。

email-mcp-setup が起動する OAuth サインインのコールバックは、ループバックアドレス(127.0.0.1 と、利用可能な場合は ::1)のみで待ち受けます。そのため、ネットワーク上の他の場所からアクセスすることはできません。

サポート

email-mcpは無料で、有料プランはありません。固定費は、共有Gmailサインイン(CASA、Cloud Application Security Assessment)に関してGoogleが毎年求める独立したセキュリティ評価の675 US dollarsだけです。これは、Googleが誰でも1コマンドでGmailを設定できるようにする前に残された、最後の未完了の手続きです。寄付は評価を開始する必要がある2026年11月2日まで受け付け、足りない分はメンテナーがその時点で支払います。進捗は email.lumitra.coで確認できます。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。