どうも、ぽトル(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)に直結し、クラウド上の全未ダウンロードファイル・全ノートブックを自然言語だけで横断検索・読込できる基盤を構築しました!
- 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特有の大きな技術的障壁が存在します。
この状態のファイルは、ターミナルや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つの強みがあります:
--preset files,onenote を指定することで、必要な34ツールだけに限定し、省エネ&高速動作を実現できます。
~/Library/Application Support/ms-365-mcp-server 配下に暗号化保存されます。一度認証すれば、次回以降は自動更新されます。
03. 【手順1】Microsoft Entra ID(Azure)でアプリ登録と権限設定
自分専用のクライアントIDを発行し、セキュアに接続するためのEntra ID(旧Azure AD)設定手順です。
- Microsoft Entra 管理センター(アプリの登録)にアクセスし、Microsoftアカウントでログインします。
-
[新規登録] をクリックします。
- 名前:
Antigravity-M365-Bridge(任意の分かりやすい名前) - サポートされているアカウントの種類: 「任意の組織ディレクトリ内のアカウント (任意の Microsoft Entra ID ディレクトリ - マルチテナント) と個人用の Microsoft アカウント (Skype、Xbox など)」を選択
- 名前:
- 登録完了後、概要画面に表示される 「アプリケーション (クライアント) ID」 をメモします。
-
左メニューの [管理] > [認証] を開き、[プラットフォームを追加] をクリック。
- [モバイル アプリケーションとデスクトップ アプリケーション] を選択
- リダイレクト URI で
https://login.microsoftonline.com/common/oauth2/nativeclientおよびhttp://localhostにチェックを入れて保存 - 下部の「詳細設定」にある 「パブリック クライアントのフローを許可する」 を 「はい」 に設定して保存
-
左メニューの [管理] > [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 等)にサーバー定義を追加します。
common)ではリフレッシュトークン更新時に invalid_grant エラーが発生することがあります。これを防ぐため、環境変数に必ず
"MS365_MCP_TENANT_ID": "consumers" を指定してください!
05. 【手順3】Device Code フローによる安全な初回認証
ターミナルからワンタイムで初回認証を実行します。ブラウザで認証URLを開いて表示された8桁コードを入力するだけの簡単なステップです。
実行すると次のような案内が出力されます:
ブラウザで https://www.microsoft.com/link を開き、表示されたコードを入力してサインインとアクセス許可を承認すれば完了です!トークンが安全に暗号化保存され、以降は常時AIからアクセス可能になります。
06. 実動デモ:未DLファイル検索とOneNoteノートブック読込
実際にAntigravityからMCPツールを呼び出し、ローカル未ダウンロードのOneDriveファイルとクラウド上のOneNoteが即座に取得できることを実証しました。
list-onenote-notebooks)
AIがワンコールで、過去に作成したクラウド上の全ノートブックを検出しました。
list-onenote-section-pages や get-onenote-page-content を呼ぶことで、各ページの内容を瞬時に引き出して要約・ブレストに活用できます。
search-onedrive-files)
Macのストレージには存在しない(クラウド側にある)10年以上前の過去書類を「住宅」キーワードで検索。
07. まとめ:プライベートナレッジがAIとひとつになる世界
今回Microsoft 365が直結したことで、私たちのAIラボ(Antigravity)の頭脳マップは次のような完全体へと進化しました:
| プラットフォーム | MCPサーバー | AIができること |
|---|---|---|
| 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の頭脳へ繋ぎ込み、脱力しながら最高の知的生産性を体験してみてください!