email-mcp
email-mcp
クラシック Outlook on Windows をネイティブ COM (pywin32) で操作する、メール+カレンダー連携ツールです。単一の email コマンドとして提供され、CLI と stdio MCP サーバー の両方の役割を果たします。Azure アプリ登録も OAuth も PowerShell も不要で、すでにサインインしている Outlook デスクトップクライアントをそのまま操作します。
要件
Windows 10/11
クラシック Outlook デスクトップ が、少なくとも1つのアカウントで設定されていること
Python 3.10+ と
uv
「新しい」Outlook for Windows は COM を公開していません。新しい Outlook を使用していてクラシックに戻せない場合、このツールは動作しません。
COM は Outlook デスクトップクライアント経由でのみアクセスされ、個別の認証はありません。Outlook にサインインしているアカウントがそのままツールから見えるアカウントとなり、送信メールは手動で送信した場合とまったく同じように実際の [送信済み] フォルダーに保存されます。
Related MCP server: outlook-mcp
インストール / 実行
uvx を使って GitHub から直接実行できます(クローンも手動インストールも不要)。
uvx --from git+https://github.com/kerodkibatu/email-mcp email --help初回実行時に uv がパッケージを解決してキャッシュするため、2回目以降の起動は高速です。
CLI
すべてのツールは email のサブコマンドです。出力は stdout に JSON で出力されます。
# List configured Outlook accounts
uvx --from git+https://github.com/kerodkibatu/email-mcp email list-accounts
# Query across all mail folders with a MongoDB-style filter (JSON string)
uvx --from git+https://github.com/kerodkibatu/email-mcp email query \
--filter '{"$and":[{"from":{"$contains":"@kyros.com"}},{"unread":true}]}' \
--limit 20 --order-by received_desc
# Read one email by EntryID
uvx --from git+https://github.com/kerodkibatu/email-mcp email read --entry-id "0000000..."
# Send a new mail (account is REQUIRED — see below)
uvx --from git+https://github.com/kerodkibatu/email-mcp email send \
--to client@example.com \
--subject "Status update" \
--body "Heads up — ..." \
--account kerod@towlydigital.com
# Save a new mail as a draft instead of sending (same flags as send, no --send-as)
uvx --from git+https://github.com/kerodkibatu/email-mcp email draft \
--to client@example.com \
--subject "Status update" \
--body "Heads up — ..." \
--account kerod@towlydigital.comMCP
email mcp は、11 個すべてのツールを公開する stdio MCP サーバーを起動します。.mcp.json(または claude_desktop_config.json)に追加してください:
{
"mcpServers": {
"email": {
"command": "uvx",
"args": ["--from", "git+https://github.com/kerodkibatu/email-mcp", "email", "mcp"]
}
}
}初回起動は uv がパッケージを解決するため遅くなりますが、以降はキャッシュが使われます。
ツール
ツール | 目的 |
| 設定済みの Outlook アカウントを一覧表示 |
| すべてのフォルダーを MongoDB スタイルでクエリ( |
| EntryID でメールの本文全体を読む |
| 新しいメールを送信(特定のアカウントから、ファイル添付付きで送信可能) |
| 新しいメールを作成し、送信せずに下書きとして保存 |
| メールに返信 / 全員に返信 |
| メールを転送 |
| 実際の添付ファイルを |
| 送受信をトリガーし、同期グループが進むのを少し待つ |
| 既読/未読状態を切り替える |
| 今後の予定を一覧表示 |
送信アカウントの選択
send_email、reply_email、forward_email は account パラメータが必須です。これは設定済みの Outlook アカウント名(通常は SMTP アドレス)の部分文字列です。これは意図的な仕様です。複数のアカウント(例: 個人用 + 仕事用)が設定されている場合、Outlook のプライマリアカウントをデフォルトにすると、個人メールが仕事用アカウントから漏れたり、その逆が起こる危険があります。呼び出し側にアカウントを明示させることで、送信を明確にします。
指定された account が設定済みのアカウント(大文字小文字を区別しない部分文字列)と一致しない場合、ツールはエラーを返し、利用可能なアカウントを一覧表示します。名前が不明な場合は、先に list_accounts を実行してください。トランスポートアカウントは、Outlook アイテムの SendUsingAccount プロパティに直接設定されます。
{
"to": "client@example.com",
"subject": "Status update",
"body": "Heads up — ...",
"account": "kerod@towlydigital.com"
}別名送信(実験的 — Exchange の「別名で送信」権限が必要)
実験的。 これは pywin32 COM 経由でクラシック Outlook を操作するだけで、Azure/OAuth のパスはありません。動作はテナントポリシーに依存し、バウンス、サイレントなダウングレード、または [送信トレイ] に残る可能性があります。ベストエフォートとして扱ってください。
send_email、reply_email、forward_email はオプションの send_as パラメータ(送信元として使用する SMTP アドレス)を受け付けます。受信者にはそのアドレスが差出人として表示され、「代理送信」の開示は一切表示されません。これは真の Exchange の「別名で送信」であり、「代理で送信」とは異なります。
仕組みとしては、ツールは SendUsingAccount を指定された account(トランスポートメールボックス)に設定し、次に send_as を Exchange に対して解決し、送信前にアイテムの PropertyAccessor を介して PR_SENT_REPRESENTING_* と PR_SENDER_* の両方の MAPI プロパティをそのアドレスに上書きします。送信者プロパティ(representing プロパティだけでなく)を上書きすることで、「代理送信」が純粋な「別名で送信」に変換されます。Exchange は送信時に権限を検証します。
要件:
accountユーザーには、Exchange 管理者がサーバー側で付与したsend_asメールボックスに対する別名で送信権限が必要です。ツールはこれを付与または確認できません。送信を試みるだけです。send_asアドレスは Exchange で解決可能である必要があります。通常は同じテナント内のメールボックスです。外部アドレス(gmail.com など)は解決時にエラーになります。権限がない場合の動作はテナントポリシーに依存します。Exchange はメッセージをバウンスするか、「代理送信」にサイレントにダウングレードするか、[送信トレイ] に残す可能性があります。
この機能は、明示的に許可した Exchange 組織内でのみ機能します。外部送信者を偽装するために使用することはできません。
{
"to": "client@example.com",
"subject": "Status update",
"body": "Heads up — ...",
"account": "admin@custom.com",
"send_as": "contact@custom.com"
}send_as を使用した場合、レスポンスには sent_as フィールドが含まれ、そのアドレスがエコーされます。
添付ファイルの送信
send_email はオプションの attachments 配列(絶対ファイルパス)を受け付けます。各パスは存在し、通常のファイルを指している必要があります。いずれかのパスが無効な場合、ツールは問題のあるパスを列挙したエラーを返し、送信は行われません。Windows ではフォワードスラッシュとバックスラッシュの両方が受け入れられます。~ や環境変数は展開されません。完全に解決されたパスを渡してください。
{
"to": "kerod@example.com",
"subject": "Signed contract",
"body": "See attached.",
"account": "kerod@towlydigital.com",
"attachments": [
"C:\\Users\\Kerod\\Desktop\\contract.pdf",
"C:/Users/Kerod/Desktop/cover-letter.pdf"
]
}添付ファイルのダウンロード
download_attachments ツールは、メールからファイルを抽出してローカルに保存し、絶対フォルダーパスを返します。
保存場所: ファイルはユーザーのダウンロードフォルダー配下の
~/Downloads/email-attachments/YYYY-MM-DD_sender-slug_subject-slug/に保存されます。インライン画像: ロゴや署名画像は、デフォルトではノイズを避けるために除外されます。どうしても必要な場合は
include_inline: trueを設定してください。冪等性: 同じメールに対してツールを再実行すると、フォルダーを安全に再利用し(
.entry_idマーカーで追跡)、2つの異なるメールが同じスラッグ名になった場合には曖昧さを解消します。
仕組み
email コマンドは、COM 経由で実行中の Outlook インスタンスに接続し(実行中のものがない場合は起動)、MAPI 名前空間を操作してメールの読み書きを行います。すべての COM アクセスは単一の Outlook セッションを経由し、PowerShell を起動することはありません。
つまり:
Outlook がインストールされている必要があります(開いている必要はありません。最初の呼び出しで起動されます)
Outlook にサインインしているアカウントがそのままツールから見えるアカウントです。個別の認証はありません
送信メールは、手動で送信した場合とまったく同じようにユーザーの [送信済み] フォルダーに表示されます
ライセンス
MIT — LICENSE を参照してください。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseAqualityDmaintenanceA lightweight MCP server for personal Microsoft Outlook/Hotmail accounts, enabling email search, reading, attachment management, and folder operations via Microsoft Graph API with OAuth device-code flow.61
- AlicenseNot gradedqualityFmaintenanceMCP server for Outlook — enables AI assistants to access email, contacts, and calendars via Windows COM interface.1MIT
- AlicenseNot gradedqualityAmaintenanceEnables MCP-aware agents to interact with the classic Outlook desktop client for mail, calendar, contacts, tasks, and Out-of-Office settings via the COM API, without Azure or OAuth.14MIT
- AlicenseNot gradedqualityBmaintenanceTurns your running Outlook Desktop into an MCP server, enabling email, calendar, tasks, and attachment management through your existing Outlook session without any cloud APIs.AGPL 3.0
Related MCP Connectors
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kerodkibatu/email-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server