Outlook Classic について
Outlook Classicは、Windows上のAIアシスタント向けに、既存のCOMセッションを通じてclassic Outlookを操作するMCPサーバーです。メール、カレンダー、連絡先にローカルアクセスでき、送信は初期状態で無効、変更は監査ログに記録されます。
主な機能
- 01メールの検索、閲覧、下書き、整理
- 02予定と招待の管理
- 03連絡先と社内ディレクトリの検索
- 04許可されたフォルダー内での添付保存
- 05明示的な有効化が必要な送信機能
- 06ローカルのJSON Lines監査ログ
活用シーン
- 01最近のメールの検索と要約
- 02返信の下書きとフォルダー整理
- 03空き時間の確認と予定の管理
- 04同僚の検索と招待の準備
MCP 対応
stdioとCOMを介してMCPクライアントをclassic Outlookに接続し、メール、カレンダー、連絡先のツールを提供します。明示的に有効化しない限り、メールは送信できません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Outlook Classic MCP
Microsoft Outlook 向けの MCP サーバー — Windows 用の従来型デスクトップアプリです。
Claude、Codex、その他の AI アシスタントが、メールボックスやカレンダーの閲覧、検索、整理、
同僚の検索や下書きの作成を行えます — PC ですでにサインインしている Outlook を通じて利用できます。
Claude / Codex ──MCP──▶ outlook-classic-mcp.exe ──COM──▶ Outlook (classic) ──▶ your mailbox
特長
- Azure アプリも Graph API もトークンも不要です。 COM 経由で起動中の Outlook と通信し、すでにサインインしているセッションを使用します。登録や管理者の同意は不要です。
- Microsoft Graph がブロックされている環境でも動作します — 条件付きアクセスやトークン保護ポリシーなどが適用されている場合も同様です。PC で Outlook が動作するなら、こちらも動作します。
- ローカルでのみ動作します。 メールがマシンの外に出るのは、使用する AI クライアントに送られる場合だけです。
- 送信するのは許可した場合だけです。 初期設定では、送信されるものはすべて下書きとなり、内容を確認して自分で送信できます — 会議への招待や招待への返信も含まれます。送信は明示的なオプトイン(
--allow-send)で有効にします。また、有効にした場合も送信されるのは下書きだけです。 - 監査ログ。 アシスタントが行った変更(下書き、送信、移動、削除、カレンダー)を、メッセージ本文を含めず、JSON 形式の 1 行としてローカルに記録します。
- ファイルを安全に制限します。 添付ファイルの追加元と保存先は、ユーザープロファイルと
%TEMP%に限定されているため、細工されたメールによってアシスタントが任意のファイルを添付することはできません。 - 小さな EXE が 1 つだけです。 Python、PowerShell、ランタイム、バックグラウンドサービスは不要です。
要件
- メールボックスが設定された 従来型 Outlook(Microsoft 365 / 2016 / 2019 / 2021 のデスクトップ版、Win32 アプリ)がインストールされた Windows。 新しい Outlook(「Outlook for Windows」、olk.exe)には COM インターフェイスがありません — 下記の新しい Outlook をお使いですか?をご覧ください。
- MCP クライアント:Claude Desktop、Claude Code、Codex、Cursor、VS Code など。
- 管理者権限に昇格させず、通常のユーザーとして実行してください(管理者プロセスは Outlook に接続できません)。
インストール
PowerShell で実行します:
irm https://raw.githubusercontent.com/jli-software/outlook-classic-mcp/main/install.ps1 | iex
最新リリースを %LOCALAPPDATA%\Programs\outlook-classic-mcp にダウンロードし、SHA-256 を確認して、Claude Desktop、Claude Code、Codex に outlook サーバーとして登録します。クライアントを再起動すれば完了です。
Claude Desktop のみ: 最新リリース
から outlook-classic-mcp.mcpb をダウンロードして開くと、Claude Desktop が拡張機能としてインストールします。
手動でのインストール
- 最新リリース
から
outlook-classic-mcp-windows-x64.exeをダウンロードし、任意の場所にoutlook-classic-mcp.exeとして保存します。 - 登録します:
既存の設定は保持されます。先に.\outlook-classic-mcp.exe install # Claude Desktop, Claude Code, Codex .\outlook-classic-mcp.exe install --allow-send # same, with sending enabled .\outlook-classic-mcp.exe install --print # dry run: only show the config files .\outlook-classic-mcp.exe install codex # only one target (desktop | code | codex).outlook-classic-mcp.bakというバックアップが作成されます。
Windows SmartScreen により、署名されていない EXE に対して警告が表示される場合があります — 「詳細情報 → 実行」。
その他の MCP クライアント(Cursor、VS Code、Windsurf など)
クライアントの MCP 設定に stdio サーバーを追加します:
{
"mcpServers": {
"outlook": {
"command": "C:\\Users\\you\\AppData\\Local\\Programs\\outlook-classic-mcp\\outlook-classic-mcp.exe",
"args": ["serve"]
}
}
}
「今日届いた未読メールを要約して。」 「すべてのフォルダーから Contoso の請求書を探して、PDF を保存して。」 「Anna の最新メールへの返信を下書きして。木曜日の午前10時で大丈夫です。」 「今週届いたニュースレターをすべて Archive に移動して、既読にして。」 「Anna Smith のメールアドレスと部署は?金曜日の招待状を下書きして。」 「今週の予定は?火曜日に Anna と Beat の両方が空いている時間はいつ?」 「午後2時の歯医者の予約を木曜日に変更して、1時間前にリマインダーを設定して。」
ツール
| ツール | 機能 |
|---|---|
mail_list | フォルダー(Inbox、Sent Items、Drafts、…、または任意のフォルダー)の最新メールを取得します |
mail_search | 件名、送信者、本文を検索します。1つのフォルダー、または folder: "all" を指定できます |
mail_read | 本文と添付ファイル名を含むメール全体を取得します(一度に複数取得できます) |
mail_create_draft | To/CC/BCC を指定して新しい下書きを作成します |
mail_reply | スレッドと引用を含む返信の下書きを作成します。添付ファイルも指定できます |
mail_forward | 元のメールの前にメッセージを添えた転送の下書きを作成します(添付ファイルも含まれます) |
mail_send_draft | 下書きを送信します — --allow-send を指定した場合のみ。詳しくは送信をご覧ください |
mail_update_draft | 下書きを変更します。返信の場合は自分のメッセージだけが置き換わり、引用と署名はそのまま残ります |
mail_attachments | 添付ファイルの一覧を表示します |
mail_save_attachment | アシスタントが読めるよう、添付ファイルをディスクに保存します |
mail_folders | ID と件数を含むフォルダー階層全体を表示します |
mail_create_folder | フォルダーを作成します |
mail_move | メールをフォルダーに移動します |
mail_mark_read | 既読/未読にします |
mail_categorize | Outlook のカテゴリー(色付きタグ)を設定します |
mail_delete | Deleted Items に移動します(完全には削除されません) |
mail_sync | 送受信を実行してローカルキャッシュを更新します |
contacts_search | 連絡先と会社のディレクトリ(グローバル アドレス一覧)から人物を検索します |
contacts_resolve | 名前 → メールアドレス。曖昧な場合は推測せず候補を一覧表示します |
contacts_get | 連絡先またはディレクトリエントリの詳細(電話番号、部署、マネージャー、…)を取得します |
contacts_list | 自分の連絡先を一覧表示します |
outlook_whoami | サインイン中のメールボックス、Outlook のバージョン、接続状態、このサーバーの設定を表示します |
calendar_list | 指定した期間の予定を取得します(既定では今後7日間)。繰り返し予定も含まれます |
calendar_get | 説明、出席者とその応答、Teams リンク、リマインダーなどの詳細を取得します |
calendar_create | 新しい予定を作成します。出席者を指定した場合は、保存されますが送信されない会議になります |
calendar_update | 時刻、件名、場所、…を変更します。1回分またはシリーズ全体を指定できます |
calendar_delete | 予定または個別の予定を削除します。自分が開催者で、送信済みの会議は削除できません |
calendar_respond | 招待を承諾/仮承諾/辞退します。応答は下書きとして保存されます |
calendar_free_busy | 指定した日の同僚の予定状況を確認します(30分単位) |
--allow-send を指定しない場合、送信ツールは一切ありません。カレンダーでは、新しい会議は Outlook で[送信]をクリックするまで未送信のままです。招待への応答は Drafts に保存され、会議を変更または削除しても誰にも通知されません。招待をすでに送信した自分が開催者の会議は削除できないため、出席者に幽霊会議が残ることはありません(代わりに Outlook でキャンセルしてください)。
時刻はローカル時間の ISO 8601 形式で入出力されます(2026-10-29T14:00)。日付のみ(2026-10-29)を指定すると終日イベントになります。オフセット(+01:00、Z)はローカル時間に変換されます。
メールアドレスは、Exchange の送信者やディレクトリエントリの場合も含め、常に SMTP アドレス([email protected])で返されます。/O=…/CN=… の形式にはなりません。
送信
送信はデフォルトで無効になっています。有効にするには、サーバーを
install --allow-send で登録するか、クライアントの args で "serve" の後に "--allow-send" を追加してから、
クライアントを再起動してください。フラグを付けずに install を実行すると、再び無効になります。
送信を有効にしても、アシスタントはまず下書きを作成します。mail_send_draft はその後に送信しますが、
そのツールは、あなたがその下書きを確認した後にのみ送信するようアシスタントに指示します。
下書きフォルダーにあるメールまたは会議への返信以外は拒否され、
宛先を解決できない場合は何も送信されません。会議がサーバーから送信されることはありません。
招待、更新、キャンセルは Outlook であなたが操作します。
送信メールはまず送信トレイに移動し、クラシック Outlook が次回の同期時に配信します(Outlook が起動していれば、数秒以内です)。
Outlook のセキュリティプロンプト: Outlook に「プログラムがユーザーに代わってメールを送信しようとしています」という警告(Object Model Guard)が表示されることがあります。最新の認定済みウイルス対策ソフトが導入された PC では通常表示されませんが、表示された場合は、あなたがクリックするまで送信が待機し、90 秒後にタイムアウトします。管理者は Outlook のポリシー Programmatic Access Security で制御できます。
監査ログ
何らかの変更を行う操作はすべて、JSON の 1 行として
%LOCALAPPDATA%\outlook-classic-mcp\audit.log に追記されます。
{"time":"2026-10-29T10:32:33+01:00","tool":"mail_send_draft","id":"00000000…","ok":true,"subject":"Offer","to":["[email protected]"]}
時刻、ツール、ID、宛先、件名、結果が記録されます。メッセージ本文は記録されません。
ファイルは 5 MB でローテーションされます(audit.log.1)。別のパスを指定するには、サーバーの
環境変数 OUTLOOK_MCP_AUDIT_LOG を設定してください。off を指定すると無効になります。outlook_whoami で書き込み先を確認できます。
添付ファイルのフォルダー
mail_reply(attachments)と mail_save_attachment(dir)で指定できるのは、
ユーザープロファイル(%USERPROFILE%)または %TEMP% の配下のパスのみです。それ以外は拒否されます。これを解除するには、
サーバーの環境変数 OUTLOOK_MCP_ALLOW_ANY_PATH=1 を設定します。例:
"outlook": { "command": "…\\outlook-classic-mcp.exe", "args": ["serve"],
"env": { "OUTLOOK_MCP_ALLOW_ANY_PATH": "1" } }
新しい Outlook をお使いですか?
新しい Outlook を引き続き使用できます。クラシック Outlook はインストールされていればよく、このサーバーがローカルキャッシュを読み取るため、 ときどき起動する必要があります。
- おすすめ: クラシック Outlook を Windows の起動時に最小化して起動します。存在を意識せずに使え、キャッシュも最新の状態に保たれます。メールを二重に受け取らないよう、デスクトップ通知をオフにしてください
(ファイル → オプション → メール → デスクトップ アラートを表示する)。
$s = New-Object -ComObject WScript.Shell $sc = $s.CreateShortcut("$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\Outlook (classic).lnk") $sc.TargetPath = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\OUTLOOK.EXE').'(default)' $sc.WindowStyle = 7 # minimized $sc.Save() - 必要なときに: まず
mail_syncを実行するようアシスタントに依頼します。
クラシック Outlook が終了している場合、サーバーは非表示で起動し、呼び出しがない状態が 5 分続くと再び終了させます。
トラブルシューティング
| 問題 | 対処方法 |
|---|---|
0x80080005 / 「サーバーの実行に失敗しました」 | MCP クライアントが昇格して実行されているか、Outlook が起動中です。クライアントを通常のユーザーとして実行し、Outlook を開いたままにしてください。 |
| 新しい Outlook に下書きが表示されない | クラシック Outlook がまだ同期していません。mail_sync を実行するか、クラシック Outlook を起動したままにしてください。 |
folder not found | mail_folders を使い、フォルダーの ID またはフルパスを渡してください。不明なフォルダーは意図的にエラーとなり、受信トレイに暗黙的にフォールバックすることはありません。 |
最初の contacts_search に数秒かかる | Outlook では会社のディレクトリを絞り込めないため、最初の検索ではすべての名前を読み込み(1 件あたり約 2 ms)、30 分間保持します。以降の検索はすぐに完了します。 |
| すべてのフォルダーを対象とした検索に数秒かかる | すべてのメッセージのテキストをスキャンするためです(数千件の場合、約 5~10 秒)。可能な場合は、フォルダーを 1 つに絞って検索してください。 |
| Outlook のダイアログが処理を妨げる | 呼び出しは 90 秒後にタイムアウトします。ダイアログを閉じて、もう一度お試しください。 |
mail_send_draft が見つからない | 送信が無効です。install --allow-send で登録し、クライアントを再起動してください。 |
| 送信メールが送信トレイに残る | クラシック Outlook がオフラインか、起動していません。起動するか、mail_sync を実行してください。 |
ソースからビルドする
git clone https://github.com/jli-software/outlook-classic-mcp
cd outlook-classic-mcp
go build -o outlook-classic-mcp.exe .
go test .
Pure Go(CGO 不使用)で、COM には go-ole を、 MCP には mcp-go を使用しています。
免責事項
これは独立したオープンソースプロジェクトです。Microsoft との提携、Microsoft による推奨、または Microsoft からの支援を受けていません。「Microsoft」と「Outlook」は、Microsoft グループ企業の商標です。
License
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。