Smart AI Life Knowledge Base

クラウド連携

生成AI、ローカルLLM、スマートホーム自動化で日々の暮らしをゆたかに整える実践ドキュメント。

  1. Smart AI Life
  2. 記事一覧
  3. クラウド連携

家庭内AIエージェントにMicrosoft 365を完全統合!OneDrive・OneNote自律連携ガイド

個人のクラウド資産(OneDrive、OneNote)をClaude/Antigravityからセキュアに操作。家族メモの共有から書類アーカイブまでを自動連携。

🚀 生成AI×リスキリングSponsored / PR
生成AIで日々の暮らしをアップデートしよう 省エネ脱力パンダ ぽトルの生活自動化ラボ
ぽトル (Pottle) アイコン
POTTLE
筆者:ぽトル(Pottle) 省エネ脱力パンダ
「過去の議事録も契約書も探すのが面倒なら、AIに全部クラウド直結で思い出させればいいじゃない」がモットーの自動化パンダ。今回はAIエージェントの記憶領域を拡張したお話です。

どうも、ぽトル(Pottle)です。

普段からAIアシスタントやエージェント(Antigravity、Claude Code、Cursorなど)に仕事を頼んでいると、こんな「壁」にぶつかったことはありませんか?

  • 「Mac上のOneDriveフォルダをAIに検索させても、ファイル名しか見つからず中身が読めない…」(※macOSのFiles-On-Demand機能で、未DLファイルが実体のないプレースホルダーになっているため)
  • 「OneNoteに長年書き溜めたアイデアや生活メモをAIに参照させたいのに、Mac版OneNoteはローカルAPIが貧弱でテキストが拾えない…」
  • 「いちいち手動でPDFやノートをダウンロードしてAIのチャットにドラッグ&ドロップするのが果てしなく面倒…」

せっかくAIが自律して動けるようになったのに、「過去の資料や手書き・メモデータがAIの視界に入らない」のでは真の自動化とは言えません。

そこで今回、Microsoft Graph API 経由で「OneDrive」と「OneNote」を直接AIエージェントの脳(MCP)に直結し、クラウド上の全未ダウンロードファイル・全ノートブックを自然言語だけで横断検索・読込できる基盤を構築しました!

☁️ 今回達成した「クラウド直結AIブレイン」のスペック
  • OneDrive クラウド直結検索: ローカル未ダウンロード(オンデマンド状態)の数万件のファイルも、クラウドインデックスから瞬時に全文検索&バイナリ取得可能!
  • OneNote 全ノートブック直結: 全ノートブック、セクション、ページ階層をGraph APIで走査し、ページ本文をMarkdown/HTMLで即時抽出!
  • 超軽量MCPプリセット: 300個以上あるM365ツール群から --preset files,onenote で必要な34ツールだけに絞り込み、プロンプトのコンテキスト・トークン消費を最小化!
  • Google + Microsoft + ローカルOfficeの三位一体: 既存のGmail/Google Drive連携に加え、M365、Excel Live操作がひとつのAI頭脳に完全統合!

後から誰でも、あるいは環境を移行した際にも100%同じ構成を再現できるように、手順・落とし穴・設定コードをすべて詳細にまとめました。ぜひご自身の環境でも試してみてください!

01. なぜローカル同期フォルダでは駄目なのか?(Files-On-Demandの罠)

「MacにOneDriveアプリが入っているなら、ローカルの同期フォルダ(~/Library/CloudStorage/OneDrive-...)をAIに読み込ませればいいのでは?」と思うかもしれません。

しかし、ここにはmacOS特有の大きな技術的障壁が存在します。

⚠️ APFS Dataless File(オンデマンドファイル)の仕様
macOSのOneDriveは、Macのストレージ容量を節約するために「ファイル名やメタデータだけをMacに置き、実データはクラウド上に置いたまま」にするFiles-On-Demand(オンデマンド機能)が標準で有効になっています。
この状態のファイルは、ターミナルやAIが grep や view_file で中身を読もうとしても「0バイトの空ファイル」または実体なしとして扱われ、中身の全文検索が一切できません。

さらに、OneNote for Macはノートデータを暗号化されたローカルキャッシュに保存しており、Apple Events / AppleScript 経由でのDOM操作も提供されていません。そのため、ローカルからセクションやページ本文を安全に抽出する手段がありませんでした。

解決策はただひとつ、「Microsoft Graph API を叩いてクラウドサーバー上の本尊データと直接おしゃべりする」ことでした。

02. アーキテクチャ設計:@softeria/ms-365-mcp-serverの採用

Microsoft Graph APIと連携するMCPサーバーとして、オープンソースで最も実績と柔軟性のある @softeria/ms-365-mcp-server を採用しました。

このサーバーには、AIエージェント運用において決定的に重要な2つの強みがあります:

🎯 1. プリセットによるツール絞り込み
M365全体(Teams、SharePoint、Outlook、Planner等)を読み込むと300以上のツールが登録され、AIのコンテキストを大量に浪費します。
--preset files,onenote を指定することで、必要な34ツールだけに限定し、省エネ&高速動作を実現できます。
🔒 2. 安全なローカル暗号化キャッシュ
認証トークンは平文で保存されるのではなく、macOSのセキュアな ~/Library/Application Support/ms-365-mcp-server 配下に暗号化保存されます。一度認証すれば、次回以降は自動更新されます。

03. 【手順1】Microsoft Entra ID(Azure)でアプリ登録と権限設定

自分専用のクライアントIDを発行し、セキュアに接続するためのEntra ID(旧Azure AD)設定手順です。

  1. Microsoft Entra 管理センター(アプリの登録)にアクセスし、Microsoftアカウントでログインします。
  2. [新規登録] をクリックします。
    • 名前: Antigravity-M365-Bridge(任意の分かりやすい名前)
    • サポートされているアカウントの種類: 「任意の組織ディレクトリ内のアカウント (任意の Microsoft Entra ID ディレクトリ - マルチテナント) と個人用の Microsoft アカウント (Skype、Xbox など)」を選択
  3. 登録完了後、概要画面に表示される 「アプリケーション (クライアント) ID」 をメモします。
  4. 左メニューの [管理] > [認証] を開き、[プラットフォームを追加] をクリック。
    • [モバイル アプリケーションとデスクトップ アプリケーション] を選択
    • リダイレクト URI で https://login.microsoftonline.com/common/oauth2/nativeclient および http://localhost にチェックを入れて保存
    • 下部の「詳細設定」にある 「パブリック クライアントのフローを許可する」 を 「はい」 に設定して保存
  5. 左メニューの [管理] > [API のアクセス許可] を開き、[アクセス許可の追加] > [Microsoft Graph] > [委任されたアクセス許可] を選択。
    • Files.ReadWrite(OneDriveファイルの検索・読込・書込)
    • Notes.Create(OneNote作成)
    • Notes.Read(OneNote読込)
    • Notes.ReadWrite(OneNote編集)
    を追加します。

04. 【手順2】mcp_config.json への登録(個人アカウント必須パラメータ)

Antigravity(またはClaude Desktop等)のMCP設定ファイル(~/.gemini/config/mcp_config.json 等)にサーバー定義を追加します。

💡 【超重要ノウハウ】個人アカウント特有の invalid_grant 回避策
個人用Microsoftアカウント(hotmail.com, outlook.jp等)を使用する場合、既定のオーソリティ(common)ではリフレッシュトークン更新時に invalid_grant エラーが発生することがあります。
これを防ぐため、環境変数に必ず "MS365_MCP_TENANT_ID": "consumers" を指定してください!
JSON
{
  "mcpServers": {
    "ms-365": {
      "command": "/opt/homebrew/bin/npx",
      "args": [
        "-y",
        "@softeria/ms-365-mcp-server",
        "--preset",
        "files,onenote"
      ],
      "env": {
        "MS365_MCP_CLIENT_ID": "あなたのクライアントIDをここに入力",
        "MS365_MCP_TENANT_ID": "consumers"
      }
    }
  }
}

05. 【手順3】Device Code フローによる安全な初回認証

ターミナルからワンタイムで初回認証を実行します。ブラウザで認証URLを開いて表示された8桁コードを入力するだけの簡単なステップです。

BASH
# 初回ログインコマンドを実行
MS365_MCP_CLIENT_ID="あなたのクライアントID" \
MS365_MCP_TENANT_ID="consumers" \
npx -y @softeria/ms-365-mcp-server --preset files,onenote --login

実行すると次のような案内が出力されます:

BASH
    To sign in, use a web browser to open the page https://www.microsoft.com/link and enter the code XXXXXXXX to authenticate.
  

ブラウザで https://www.microsoft.com/link を開き、表示されたコードを入力してサインインとアクセス許可を承認すれば完了です!トークンが安全に暗号化保存され、以降は常時AIからアクセス可能になります。

06. 実動デモ:未DLファイル検索とOneNoteノートブック読込

実際にAntigravityからMCPツールを呼び出し、ローカル未ダウンロードのOneDriveファイルとクラウド上のOneNoteが即座に取得できることを実証しました。

📔 1. OneNote ノートブック一覧のクラウド取得 (list-onenote-notebooks)

AIがワンコールで、過去に作成したクラウド上の全ノートブックを検出しました。

BASH
      • kanbancoder
      • メイン日常ノートブック
      • Family Notebook (家族共有ノート)
      • Evernoteアーカイブ
      • マイ ノートブック
    
👉 list-onenote-section-pages や get-onenote-page-content を呼ぶことで、各ページの内容を瞬時に引き出して要約・ブレストに活用できます。
☁️ 2. OneDrive クラウド全文検索 (search-onedrive-files)

Macのストレージには存在しない(クラウド側にある)10年以上前の過去書類を「住宅」キーワードで検索。

BASH
      • 003_家・土地・車/住宅積立預金制度加入証.pdf
      • 給与明細/住宅積立明細書_201110.pdf
      • 各種源泉徴収票・住宅関連控除データ...
    
👉 ローカルには実体がないオンデマンドファイルも、Microsoft Graphのインデックス検索によってミリ秒単位で発見・ダウンロード可能です。

07. まとめ:プライベートナレッジがAIとひとつになる世界

今回Microsoft 365が直結したことで、私たちのAIラボ(Antigravity)の頭脳マップは次のような完全体へと進化しました:

プラットフォーム MCPサーバー AIができること
Google google-multi 複数Gmail検索・送信、Google Drive書類検索、カレンダー空き時間確認
Microsoft 365 (NEW!) ms-365 OneDriveクラウド未DLファイル検索、OneNote全ノートブック読込・作成
Mac Local Office excel-live & ppt-mcp 起動中Excelのセル読込・集計・編集、PowerPointスライドのリアルタイム全自動作成

「AIに質問する前に、人間が資料を集めて整えてあげる」という前時代の手間はもう必要ありません。
必要な過去の知見やメモは、AIが自律的にクラウドと対話して取りに行く。これこそが、本当の意味での「スマートAIライフ」です。

ぜひ皆さんも、日々の手書きメモやクラウドストレージをAIの頭脳へ繋ぎ込み、脱力しながら最高の知的生産性を体験してみてください!

Smart AI Life Laboratory / ぽトル(Pottle)
Powered by Google Antigravity & Microsoft Graph MCP
🚀 生成AI×リスキリングSponsored / PR