OneNote-MCP-For-GeminiSpark
OneNote-MCP-For-GeminiSpark
Microsoft OneNoteとGemini Sparkを統合するための堅牢なModel Context Protocol (MCP) サーバーです。このリポジトリには、OneNoteコンテンツをGeminiSparkワークフローに同期したり、OneNoteノートをGeminiSpark対応形式にエクスポートしたり、一般的な自動化シナリオをデモンストレーションするためのコード、設定、例が含まれています。
🎯 これが実現すること
OneNoteノートブックをAIがアクセス可能なナレッジベースに変換します:
すべてのノートブック、セクション、ページを一覧表示
分析と検索のためにページコンテンツを読み取り
「DevOpsノートを見せて」や「プロジェクト計画に関するページを検索」などの自然言語クエリ
Microsoft Graph APIによる安全なOAuth認証
詳細なデバッグ情報付きの堅牢なエラー処理
✨ この実装の特長
他のOneNote MCPサーバーとは異なり、この実装は次のような特徴があります:
✅ 実際に動作 - 実際のOneNoteデータで広範囲にテスト済み
✅ 完全な機能 - すべての主要なOneNote操作を実装
✅ 堅牢な認証 - エッジケースを処理する2段階デバイスフロー
✅ 本番環境対応 - 適切なエラー処理とロギング
✅ 簡単なセットアップ - 非技術者向けの詳細な手順
🚀 クイックスタート
前提条件
Python 3.10以上
uvパッケージマネージャー(推奨)またはpip
Google Geminiアカウント
Microsoft Azureアカウント(無料)
1. uvのインストール(まだお持ちでない場合)
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# or with Homebrew
brew install uv2. クローンとセットアップ
git clone https://github.com/yourusername/onenote-mcp-server.git
cd onenote-mcp-server
# Create virtual environment and install dependencies
uv sync3. Azureアプリの登録
OneNoteにアクセスするにはAzureアプリを作成する必要があります。ご安心ください。無料で5分もかかりません:
Azureポータルにアクセスします(Microsoftアカウントでサインイン)
Azure Active Directory → アプリの登録 → 新規登録に移動します
フォームに入力します:
名前: "OneNote MCP Server"(またはお好みの名前)
サポートされるアカウントの種類: "任意の組織ディレクトリ内のアカウントと個人用Microsoftアカウント"
登録をクリックします
アプリケーション(クライアント)IDをコピーします - 後で必要になります!
4. アクセス許可の追加
引き続きAzureアプリ内で:
APIのアクセス許可 → アクセス許可の追加に移動します
Microsoft Graph → 委任されたアクセス許可を選択します
次のアクセス許可を追加します:
Notes.Read- OneNoteノートブックの読み取りNotes.ReadWrite- OneNoteコンテンツの作成/変更(任意ですが推奨)User.Read- ユーザープロファイルの読み取りOffline.access- 更新トークンアクセスの許可
管理者の同意を与える をクリックします(上部のボタン)
マニフェストに移動し、signInAudience を AzureADandPersonalMicrosoftAccount に更新し、requestedAccessTokenVersion を 2 に更新して保存します。
5. Azure更新トークンの生成(一度だけの操作)
refresh_token.py ファイル内のAzureクライアントIDを更新し、cmdで実行します。
ブラウザウィンドウが開きます。Microsoft IDでログインします。
ログイン成功後、cmdにトークンが生成されます。
6. MCPサーバーをクラウド/ローカルにデプロイ
例:Google Cloudへのデプロイの場合は、次のコマンドを実行します。
gcloud run deploy onenote-mcp-server --source . --region us-central1 --set-env-vars="AZURE_REFRESH_TOKEN=YOUR_AZURE_REFRESH_TOKEN,AZURE_CLIENT_ID=YOUR_ACTUAL_CLIENT_ID" --allow-unauthenticatedデプロイ後にMCPサーバーのURLが生成されます。
7. Gemini Sparkでカスタム接続アプリをセットアップ
「接続アプリ」をクリック
MCPサーバーのURL/sseを入力します(URLの末尾に/sseを追加するのを忘れないでください)
詳細設定で -> AzureクライアントIDを入力
「リダイレクトURIをコピー」をクリックし、Azureポータル --> Azureクライアントアプリ --> 認証 --> リダイレクトURI --> URIの追加 --> Web --> コピーしたリンクを貼り付け --> 他のリダイレクトURIを削除します
接続アプリのダイアログボックスで -> 「次へ」をクリックし、画面に従います。
OneNote MCPサーバーが接続アプリ画面に作成されます。
使用方法
接続アプリのセットアップが完了したら、Gemini Sparkで次のタスクを試してください:
List my OneNote notebooks
Show me sections in my Work notebook
What pages are in my Ideas section?
Read the content of my "Project Plan" page🛠 トラブルシューティング
Gemini Sparkの接続アプリ画面に「使用できるツールがありません」と表示される
画面からリダイレクトURIをコピーし、Microsoft Azureアプリで正しく更新したことを確認してください。
MCPサーバーのクラウドデプロイメントが未認証アクセスを許可しているか確認してください。
uvがインストールされているか確認してください:
uv --version
認証の問題
SafariのOAuth問題: SafariはMicrosoftのOAuthリダイレクトを正しく処理できない場合があります。代わりにFirefoxまたはChromeを使用してください。
「nativeclient」プロンプト: これは通常のMicrosoft OAuthの動作ですが、認証をブロックする場合は別のブラウザを試してください。
推奨ブラウザ: 最良の互換性のためにFirefox(動作確認済み)、Chrome、またはEdge。
「コマンドが見つかりません」エラー
uvがPATHに含まれていることを確認してください。
代替案:設定内の
"uv"を"python"に置き換え、Pythonインタープリターのフルパスを使用してください。
権限拒否エラー
プロジェクトディレクトリのファイル権限を確認してください。
🏗 開発
プロジェクト構造
onenote-mcp-server/
├── onenote_mcp_server.py # Main server implementation
├── pyproject.toml # Dependencies and metadata
├── refresh_token.py # Generate Refresh Token
├── README.md # This file
├── LICENSE # MIT License
└── .gitignore # Git ignore rules主な機能
完全なGraph API統合: すべてのOneNote操作をサポート
堅牢なエラー処理: 詳細なロギングとグレースフルな障害処理
FastMCPフレームワーク: クリーンで保守しやすいコード構造
環境変数による設定: 安全な資格情報の管理
新機能の追加
このサーバーはFastMCPで構築されており、新しいツールを簡単に追加できます:
if method == "tools/list":
await custom_send({"type": "http.response.start", "status": 200, "headers": [(b"content-type", b"application/json")]})
tools = [
# Your implementation here
return 🤝 貢献について
貢献を歓迎します!以下の手順に従ってください:
リポジトリをフォークする
フィーチャーブランチを作成する
新機能のテストを追加する
プルリクエストを提出する
📄 ライセンス
MITライセンス - 詳細はLICENSEファイルを参照してください。
🙏 謝辞
FastMCPフレームワークで構築
OneNoteアクセスにMicrosoft Graph APIを使用
purpleslurpleの素晴らしい作品に触発されました
⚠️ 重要な注意事項
このサーバーは、あなたがすでにアクセス権を持つデータのみを読み書きします。
Azureアプリの資格情報はあなたのマシン上に保持されます。
すべての認証はあなたとMicrosoftの間で直接行われます。
第三者にデータが送信されることはありません。
Gemini Spark + OneNoteコミュニティのために、❤️を込めて作られました
OneNoteをAIがアクセス可能なナレッジベースに変えましょう!
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Serve a folder of Markdown notes as an MCP server: hybrid search, reading, and sourced answers.
Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.
MCP-native open-source Notion alternative: read & write pages, databases and kanban boards.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/abhivishwa2/OneNote-MCP-For-GeminiSpark'
If you have feedback or need assistance with the MCP directory API, please join our Discord server