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.jsnode -v でバージョン確認)
  • Gitgit --version でバージョン確認)

⚠ 注意:Node.jsおよびGitのインストールパスに日本語・括弧などの特殊文字が含まれると、後の手順でエラーが発生しますC: odejsのように英数字のみのパスにインストールしてください。

Step 1:Azure Portalでアプリを登録する

Outlook MCPサーバーがMicrosoft 365にアクセスするために、Azure Active DirectoryにOAuthクライアントとしてアプリを登録します。

Azure Portalアプリ登録の4ステップ:アプリ登録→シークレット作成→リダイレクトURI設定→API権限追加

1-1. アプリの新規登録

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

1-2. クライアントシークレットを作成する

⚠ 重要:シークレットの「値」は作成直後にしか表示されません。必ずその場でコピーして安全な場所に保存してください。

  1. 左メニューの「証明書とシークレット」→「クライアントシークレット」タブ→「新しいクライアントシークレット」をクリック
  2. 説明(任意)と有効期限を設定して「追加」
  3. 作成されたシークレットの「値」列の文字列をコピーしてメモする

❌ よくある間違い:「ID」列(GUID形式:57e73d79-f331-...)をシークレット値として使ってしまうケースがあります。「値」列の長い文字列(例:cdQ8Q~~4JT6i7A1b...)が正しい値です。IDを設定するとAADSTS7000215エラーが発生します。

Azure Portalアプリ登録:ステップ3 リダイレクトURIを設定する

1-3. リダイレクトURIを設定する

💡 重要:プラットフォームは必ず「Web」を選択してください。「モバイルアプリとデスクトップアプリ」を選ぶとクライアントシークレットが使用できなくなります(AADSTS700025エラー)。

  1. 左メニューの「認証」→「+ プラットフォームを追加」→「Web」を選択
  2. リダイレクトURIに http://localhost:3333/auth/callback を入力して「構成」をクリック
  3. 「認証」→「設定」タブ→「パブリッククライアントフローを許可する」を「いいえ」に設定して保存
Azure Portalアプリ登録:ステップ4 APIのアクセス許可を追加する

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アプリの登録 → 概要 → アプリケーション(クライアント)IDGUID形式
MS_CLIENT_SECRET証明書とシークレット → 値(長い文字列)長い文字列
MS_TENANT_IDアプリの登録 → 概要 → ディレクトリ(テナント)IDGUID形式

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:初回認証を行う

  1. Claude Codeで「テストメールを送って」などOutlook関連の操作を依頼する
  2. Claudeが認証URLを提示するので、ブラウザで http://localhost:3333/auth にアクセス
  3. Microsoftアカウント(会社アカウント)でサインインしてアクセス許可を承認する
  4. 「Authentication Successful」と表示されれば認証完了
  5. Claude Codeに戻り、操作が正常に実行されることを確認する

できること・できないこと

Outlook MCPサーバーを接続すると、Claudeから以下のことが操作できるようになります。

  • ✅ メールの検索・一覧表示(「昨日届いたメールをまとめて」など)
  • ✅ メール添付ファイルの読み書き
  • ✅ カレンダーの読み書き
  • ✅ 連絡先の参照
  • ✅ メールの送信(Step 4でAPI権限に Mail.Send を追加し、管理者の同意を付与した場合)

特にメール検索と添付ファイルの読み書きは設定完了後すぐに使えます。重要なメールを見落とすリスクの低減や、添付書類の内容確認・要約といった活用が期待できます。メールの送信機能はStep 4のAPI権限追加で Mail.Send を含め、管理者の同意を付与することで利用できます。

トラブルシューティング

AADSTS7000215 — Invalid client secret

原因.envMS_CLIENT_SECRETにシークレットの「ID」(GUID形式)を設定している
対処:Azure Portalでシークレットを再作成し、「値」列の長い文字列をコピーして設定する(画面を閉じると値は再表示不可のため要注意)

AADSTS700025 — Client is public

原因:リダイレクトURIのプラットフォームとして「モバイルアプリとデスクトップアプリ」を選択してしまっている
対処:「認証」→「Webプラットフォームを追加」→ http://localhost:3333/auth/callback を設定。「パブリッククライアントフローを許可する」を「いいえ」に設定してプラグインを再起動

AADSTS50194 — /commonエンドポイントエラー

原因.envMS_TENANT_IDが未設定でテナントIDが'common'にフォールバックしている
対処.envMS_TENANT_IDを正しく設定する(Azure Portal → アプリの登録 → 概要 → ディレクトリ(テナント)ID)

認証画面で「管理者の承認が必要」と表示される

原因:管理者アカウントによる「管理者の同意」がまだ付与されていない
対処:Azure Portal → 「APIのアクセス許可」→「組織に管理者の同意を与えます」ボタンをクリック(管理者権限が必要)

まとめ

Outlook MCPサーバーを設定することで、Claude CodeからMicrosoft 365のメールやカレンダーを直接操作できるようになります。設定のポイントは以下の3点です。

  • リダイレクトURIのプラットフォームは必ず「Web」を選択する
  • MS_CLIENT_SECRETにはシークレットの「ID」ではなく「値」を設定する
  • 管理者アカウントで「管理者の同意」を付与する

Claudeを使ったSalesforceのテスト自動化については、別の記事で詳しく解説しています

OutlookをClaude Codeで操作する — Azure Portal連携からMCP接続まで” に対して1件のコメントがあります。

  1. click here より:

    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.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です