Skip to main content
Glama
Zacccck

Claude-Read-Outlook-Attachments

M365 Attachment Reader MCP

Microsoft Graph APIを通じてOutlookメールを読み取り、メールの添付ファイルを詳細に解析するClaude用のリモートMCPサーバーです。

現在、PDF、OCR付きスキャンPDF、Word、PowerPoint、Excel、CSV、プレーンテキスト、画像、アーカイブ、およびOutlookの .msg ファイルの添付ファイル処理をサポートしています。

ステータス: Windowsベースの初期テストバージョンです。個人利用やプライベートなワークフローには機能しますが、まだ本番環境向けのマルチユーザーサービスではありません。


このプロジェクトの目的

Claudeの組み込みMicrosoft 365コネクタは、メールの一覧表示、本文の読み取り、カレンダーの確認が可能です。しかし、メール添付ファイル内の実際のコンテンツを読み取ることはできません。

つまり、「最新のメールにあるPDFには何が書かれている?」と尋ねても、Claudeは添付ファイルのメタデータは見ることができますが、その中のテキスト、表、画像、またはネストされたドキュメントの内容は把握できません。

このプロジェクトはそのギャップを埋めるものです。


機能

このサーバーは、ClaudeとMicrosoft 365の間のリモートHTTP MCPエンドポイントとして機能します。以下の処理を行います。

  1. デバイスコードフローによるMicrosoft 365認証

  2. Microsoft Graphを通じたOutlookメールとその添付ファイルの一覧表示

  3. バックエンドでの添付ファイルのダウンロード

  4. ファイルコンテンツの解析および構造化されたテキストと画像ブロックのClaudeへの直接返信

サポートされている形式

形式

抽出される内容

PDF

全テキストコンテンツ

スキャンPDF

OCRテキスト、およびオプションでレンダリングされたページ画像

DOCX

テキストおよび埋め込み画像

DOC

テキストコンテンツ

PPTX / PPTM / PPSX / POTX

スライドのテキスト、ノート、および埋め込み画像

PPT

レガシーなテキスト抽出(ベストエフォート)

XLSX / XLS / CSV

すべてのシートをCSVに変換

JPG / JPEG / PNG / GIF / WEBP / BMP / TIFF

視覚分析用のMCP画像ブロックとして返信

ZIP / RAR / 7Z

アーカイブ内容を再帰的にファイル単位で解析

MSG

件名、送信者、本文、および埋め込み添付ファイル

TXT / MD / JSON / XML / HTML

生テキスト

Outlook itemAttachment

テキストコンテンツ

画像処理は重要な差別化要因です。サーバーは、スタンドアロンの画像添付ファイルをMCP画像ブロックとして返信したり、DOCXやPPTXファイルから埋め込み画像を抽出したり、テキストレイヤーが存在しないスキャンPDFに対してはOCRで対応したりします。

MCPツール

ツール

説明

health_check

サーバーが稼働中か確認

begin_auth

デバイスコードログインフローを開始

auth_status

認証状態を確認

list_recent_messages

最近のOutlookメールを一覧表示

list_email_attachments

特定のメールの添付ファイルを一覧表示

read_email_attachment

添付ファイルをダウンロード、解析し、内容を返信

これらの短いツール名は、サーバーによって登録された基盤となる m365_* ツールのエイリアスです。


実際のユースケース

小売 / 販売業務

「直近5件のデイリーダッシュボードメールを取得し、Excel添付ファイルを読み取って、過去1週間の全店舗の売上傾向を分析して。」

金融 / 会計

「件名に『請求書』が含まれるベンダーからの最新メールを見つけ、PDF添付ファイルを読み取って、合計金額、支払期限、明細項目を抽出して。」

法務 / 契約レビュー

legal@partner.comからの最新のメールを開き、WordまたはPowerPointの添付ファイルを読み取って、主要な条項を要約して。」

エグゼクティブ・レポーティング

「最新のCFOメールから週次取締役会レポートの添付ファイルを読み取り、グラフと主要な指標を要約して。」

人事 / 採用

recruiting@company.comからの添付ファイル付きメールを見つけ、各履歴書のPDFを読み取って、候補者の比較表を作成して。」

サプライチェーン / 調達

「最新のサプライヤー見積もりアーカイブを読み取り、中のスプレッドシートを抽出して、前回の見積もりと単価を比較して。」


アーキテクチャ

Claude Chat -> Cloudflare Tunnel -> Local Express Server -> Microsoft Graph API
                (public URL)       (localhost:8080)      (Outlook data)
                                           |
                                    Parse attachments
                              (pdf-parse, tesseract.js,
                               mammoth, xlsx, adm-zip,
                                msgreader, archive tools)

ローカルテストでは、Cloudflare Quick Tunnelを使用してローカルサーバーをインターネットに公開します。Claudeは、トンネルURLを指定したカスタムコネクタ経由で接続します。


前提条件

  • PowerShellが利用可能なWindows 10/11

  • Node.js

  • Microsoft 365 / Outlookアカウント

  • カスタムコネクタをサポートするClaudeアカウント


セットアップ

1. Microsoft Entraアプリの登録

Microsoft Entra管理センターにアクセスし、「アプリの登録」 -> 「新規登録」を選択します。

  • 名前: m365-mcp-remote

  • サポートされているアカウントの種類: 任意の組織ディレクトリ内のアカウントおよび個人のMicrosoftアカウント

次に:

  1. 概要ページからアプリケーション(クライアント)IDとディレクトリ(テナント)IDをコピーします

  2. 「認証」 -> 「パブリッククライアントフローを許可する」を有効にして保存します

  3. 「APIのアクセス許可」 -> 「アクセス許可の追加」 -> 「Microsoft Graph」 -> 「委任されたアクセス許可」 -> User.ReadMail.Read を追加 -> 管理者の同意を与えます

2. クローンとインストール

git clone https://github.com/Zacccck/MCP.git
cd MCP
npm install

3. 環境設定

cp .env.example .env

.env を編集し、アプリケーションクライアントIDを入力します:

M365_CLIENT_ID=your-application-client-id-here
M365_TENANT_ID=common

4. サーバーの起動

npm start

以下のように表示されるはずです:

Custom M365 HTTP MCP server listening at http://127.0.0.1:8080/mcp

5. Cloudflare Tunnelによる公開

新しいPowerShellウィンドウで以下を実行します:

winget install --id Cloudflare.cloudflared

次に以下を実行します:

cloudflared tunnel --url http://127.0.0.1:8080

生成された https://xxxxx.trycloudflare.com URLをコピーします。

6. Claudeにカスタムコネクタとして追加

Claudeチャットで:

  1. 入力エリア付近の + ボタンをクリック

  2. 「コネクタ」 -> 「コネクタを追加」 -> 「カスタムコネクタ」を開く

  3. URLを入力: https://xxxxx.trycloudflare.com/mcp

https:// を使用し、末尾に /mcp を含めてください。 http://127.0.0.1:8080/mcp は使用しないでください。

7. 認証

Claudeで以下のように入力します:

Please call begin_auth

ClaudeがログインURLとデバイスコードを返します。URLを開き、コードを入力してMicrosoftログインを完了します。その後、以下で確認します:

Please call auth_status

8. 使用方法

Show me my recent outlook emails with attachments
Summarize the contents of the attachments from the email

重要な制限事項

  • シングルユーザー: 認証状態はメモリ内に保存されます。1つのサーバーインスタンスは1つのMicrosoftアカウントに対応します。

  • 2つのプロセスが必要: 使用中は node server.mjscloudflared tunnel の両方を実行し続ける必要があります。

  • Quick Tunnelはテスト専用: Cloudflare URLは cloudflared を再起動するたびに変更されます。

  • 手動セットアップが必要: Azureアプリの登録、.env 設定、コネクタ設定は依然として手動で行う必要があります。


トラブルシューティング

問題

解決策

ClaudeがMCPツールを見つけられない

NodeサーバーとCloudflareトンネルの両方が実行中か確認してください。トンネルURLが再起動後に変更された可能性があります。

invalid_grant エラー

アプリ登録を再確認してください: サポートされているアカウントの種類、パブリッククライアントフローの許可、および User.ReadMail.Read の権限が付与されているか確認してください。

デバイスコードが表示されない

begin_auth が正常に呼び出されたか確認してください。コードを自分で作成しないでください。

アカウントを切り替えたい

Nodeサーバーを停止し、npm start で再起動し、プライベートブラウザウィンドウを使用してログインしてください。


プロジェクト構造

MCP/
|-- server.mjs
|-- package.json
|-- .env.example
|-- .gitignore
|-- LICENSE
`-- README.md

ロードマップ

  • [ ] 初回セットアップの簡素化

  • [ ] 再起動なしでのアカウントログアウトと切り替え

  • [ ] Windowsバックグラウンドサービスモード

  • [ ] 本番環境へのデプロイガイド

  • [ ] マルチユーザーセッションアーキテクチャ

  • [ ] OCR言語対応の拡充と大規模ファイルの要約精度の向上


セキュリティに関する注意

これはローカルテストおよびプロトタイプの実装です。公開デプロイメントに向けた本番環境対応はされていません。公開デプロイを行う前に、/mcp 前段での認証、ユーザーごとのセッション分離、安全なトークンストレージ、レート制限、および適切なインフラストラクチャが必要となります。

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

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/Zacccck/Claude-MCP-Read-Email-Attachments'

If you have feedback or need assistance with the MCP directory API, please join our Discord server