OutlookをClaude Codeで操作する — Azure Portal連携からMCP接続まで
Claude CodeにはMCP(Model Context Protocol)という仕組みがあり、外部サービスをClaudeから直接操作できるようになります。ryaker/outlook-mcpはその一つで、Microsoft 365のOutlookをClaude Codeから操作できるようにするローカルMCPサーバーです。
メール検索・添付ファイルの読み書き・カレンダー操作など、日常業務の自動化に活用できます。本記事ではAzure Portalでのアプリ登録からClaude Codeへの接続設定まで、ステップごとに解説します。
前提環境
設定を始める前に、以下のソフトウェアがインストール済みであることを確認してください。
- Node.js(
node -vでバージョン確認) - Git(
git --versionでバージョン確認)
⚠ 注意:Node.jsおよびGitのインストールパスに日本語・括弧などの特殊文字が含まれると、後の手順でエラーが発生します。C:
odejsのように英数字のみのパスにインストールしてください。
Step 1:Azure Portalでアプリを登録する
Outlook MCPサーバーがMicrosoft 365にアクセスするために、Azure Active DirectoryにOAuthクライアントとしてアプリを登録します。

1-1. アプリの新規登録
- Azure Portal(
https://portal.azure.com)にサインイン - 上部検索バーで「アプリの登録」を検索してクリック
- 「+ 新規登録」をクリック
- 以下の情報を入力して「登録」をクリック
- 名前:
outlook-mcp(任意) - アカウントの種類:この組織ディレクトリのみのアカウント(シングルテナント)
- 名前:
- 登録完了後、アプリケーション(クライアント)IDとディレクトリ(テナント)IDをメモする

1-2. クライアントシークレットを作成する
⚠ 重要:シークレットの「値」は作成直後にしか表示されません。必ずその場でコピーして安全な場所に保存してください。
- 左メニューの「証明書とシークレット」→「クライアントシークレット」タブ→「新しいクライアントシークレット」をクリック
- 説明(任意)と有効期限を設定して「追加」
- 作成されたシークレットの「値」列の文字列をコピーしてメモする
❌ よくある間違い:「ID」列(GUID形式:57e73d79-f331-...)をシークレット値として使ってしまうケースがあります。「値」列の長い文字列(例:cdQ8Q~~4JT6i7A1b...)が正しい値です。IDを設定するとAADSTS7000215エラーが発生します。

1-3. リダイレクトURIを設定する
💡 重要:プラットフォームは必ず「Web」を選択してください。「モバイルアプリとデスクトップアプリ」を選ぶとクライアントシークレットが使用できなくなります(AADSTS700025エラー)。
- 左メニューの「認証」→「+ プラットフォームを追加」→「Web」を選択
- リダイレクトURIに
http://localhost:3333/auth/callbackを入力して「構成」をクリック - 「認証」→「設定」タブ→「パブリッククライアントフローを許可する」を「いいえ」に設定して保存

1-4. APIのアクセス許可を追加する
左メニューの「APIのアクセス許可」→「+ アクセス許可の追加」→「Microsoft Graph」→「委任されたアクセス許可」から以下の7つの権限を追加します。
| 許可名 | 用途 |
|---|---|
Calendars.ReadWrite | カレンダーの読み書き |
Contacts.ReadWrite | 連絡先の読み書き |
Files.ReadWrite | ファイルの読み書き |
Mail.ReadWrite | メールの読み書き |
Mail.Send | メールの送信 |
People.Read | 連絡先の参照 |
User.Read | ユーザー情報の参照 |
権限追加後、管理者アカウントで「組織に管理者の同意を与えます」ボタンをクリックすることが必要です。このボタンが押されていないと、認証画面で「管理者の承認が必要」と表示されて先に進めません。管理者権限がない場合は社内の管理者に依頼してください。
Step 2:outlook-mcpをインストールする
コマンドプロンプトを開き、以下のコマンドを順番に実行します。
git clone https://github.com/ryaker/outlook-mcp.git
cd outlook-mcp
npm installインストール後、エクスプローラーでoutlook-mcpフォルダをCドライブ直下(C:outlook-mcp)に移動します。フォルダパスに日本語・括弧・スペースが含まれるとCannot find moduleエラーが発生するため、必ず英数字のみのパスに配置してください。
Step 3:.envファイルを設定する
C:outlook-mcpフォルダ内に.envファイルを作成し、Step 1でメモした3つの値を記載します。
MS_CLIENT_ID=(アプリケーション(クライアント)ID)
MS_CLIENT_SECRET=(シークレットの「値」)
MS_TENANT_ID=(ディレクトリ(テナント)ID)| キー | 取得場所 | 形式 |
|---|---|---|
MS_CLIENT_ID | アプリの登録 → 概要 → アプリケーション(クライアント)ID | GUID形式 |
MS_CLIENT_SECRET | 証明書とシークレット → 値(長い文字列) | 長い文字列 |
MS_TENANT_ID | アプリの登録 → 概要 → ディレクトリ(テナント)ID | GUID形式 |
Step 4:Claude Desktopに接続設定を追加する
Claudeの設定フォルダにあるclaude_desktop_config.jsonを開き、outlook-mcpのMCPサーバー接続情報を追加します。追加後、Claude Desktopを再起動するとOutlook MCPサーバーがRUNNING状態になります。
以下は設定例です(Windowsの場合):
{
"mcpServers": {
"outlook": {
"command": "node",
"args": ["C:/outlook-mcp/index.js"]
}
}
}Macの場合は args のパスを ["/Users/yourname/outlook-mcp/index.js"] のように変更してください。設定後、Claude Desktopを再起動すると接続が反映されます。MCPサーバーが正常に起動するとステータスが RUNNING と表示されます。
MCPの設定ファイルの詳細については、Claude Code公式ドキュメントの「MCP設定」セクションを参照してください。
Step 5:初回認証を行う
- Claude Codeで「テストメールを送って」などOutlook関連の操作を依頼する
- Claudeが認証URLを提示するので、ブラウザで
http://localhost:3333/authにアクセス - Microsoftアカウント(会社アカウント)でサインインしてアクセス許可を承認する
- 「Authentication Successful」と表示されれば認証完了
- Claude Codeに戻り、操作が正常に実行されることを確認する
できること・できないこと
Outlook MCPサーバーを接続すると、Claudeから以下のことが操作できるようになります。
- ✅ メールの検索・一覧表示(「昨日届いたメールをまとめて」など)
- ✅ メール添付ファイルの読み書き
- ✅ カレンダーの読み書き
- ✅ 連絡先の参照
- ✅ メールの送信(Step 4でAPI権限に
Mail.Sendを追加し、管理者の同意を付与した場合)
特にメール検索と添付ファイルの読み書きは設定完了後すぐに使えます。重要なメールを見落とすリスクの低減や、添付書類の内容確認・要約といった活用が期待できます。メールの送信機能はStep 4のAPI権限追加で Mail.Send を含め、管理者の同意を付与することで利用できます。
トラブルシューティング
AADSTS7000215 — Invalid client secret
原因:.envのMS_CLIENT_SECRETにシークレットの「ID」(GUID形式)を設定している
対処:Azure Portalでシークレットを再作成し、「値」列の長い文字列をコピーして設定する(画面を閉じると値は再表示不可のため要注意)
AADSTS700025 — Client is public
原因:リダイレクトURIのプラットフォームとして「モバイルアプリとデスクトップアプリ」を選択してしまっている
対処:「認証」→「Webプラットフォームを追加」→ http://localhost:3333/auth/callback を設定。「パブリッククライアントフローを許可する」を「いいえ」に設定してプラグインを再起動
AADSTS50194 — /commonエンドポイントエラー
原因:.envにMS_TENANT_IDが未設定でテナントIDが'common'にフォールバックしている
対処:.envにMS_TENANT_IDを正しく設定する(Azure Portal → アプリの登録 → 概要 → ディレクトリ(テナント)ID)
認証画面で「管理者の承認が必要」と表示される
原因:管理者アカウントによる「管理者の同意」がまだ付与されていない
対処:Azure Portal → 「APIのアクセス許可」→「組織に管理者の同意を与えます」ボタンをクリック(管理者権限が必要)
まとめ
Outlook MCPサーバーを設定することで、Claude CodeからMicrosoft 365のメールやカレンダーを直接操作できるようになります。設定のポイントは以下の3点です。
- リダイレクトURIのプラットフォームは必ず「Web」を選択する
MS_CLIENT_SECRETにはシークレットの「ID」ではなく「値」を設定する- 管理者アカウントで「管理者の同意」を付与する
Claudeを使ったSalesforceのテスト自動化については、別の記事で詳しく解説しています。


My partner and I stumbled over here by a different web address
and thought I might check things out. I like what I see so i am just following you.
Look forward to exploring your web page again.