OneNote MCP Server について
OneNote MCP Server は、Claude などの LLM が Microsoft OneNote のノートブック、セクション、ページにアクセスできるようにする MCP サーバーです。azure-onenote-mcp-server を基に、認証の手順を簡略化しています。
主な機能
- 01Azure 設定を要しないデバイスコード認証
- 02ノートブック、セクション、ページの一覧表示
- 03HTML 書式を含むページ内容の読み取り
- 04HTML コンテンツを含む新規ページの作成
- 05ノートの検索とページ内容の要約
活用シーン
- 01AI アシスタントによる OneNote ノートブック構成の閲覧
- 02会議メモや作業ログを新規ページとして作成
- 03「プロジェクト計画」などのトピックに関連するノートの検索
MCP 対応
本プロジェクトは MCP サーバーであり、authenticate、listNotebooks、getPage、createPage、searchPages などのツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
OneNote MCP サーバー
Claude などの AI 言語モデルやその他の LLM が Microsoft OneNote とやり取りできるようにする、Model Context Protocol(MCP)サーバーの実装です。
このプロジェクトは、Zubeid Hendricks による azure-onenote-mcp-server をベースに、認証を簡素化し、使いやすさを向上させる変更を加えています。
これは何をするものですか?
このサーバーを使うと、AI アシスタントは次のことができます。
- OneNote のノートブック、セクション、ページにアクセスする
- ノートブックに新しいページを作成する
- ノートを検索する
- HTML 形式とテキストを含む、ノートの全内容を読み取る
- ノートを直接分析して要約する
これらはすべて、コンテキストを切り替えることなく、AI インターフェースを通じて直接行えます。
AI アシスタントでの使用方法
Cursor のセットアップ
-
このリポジトリをクローンし、以下のインストール手順に従います
-
MCP サーバーを起動します:
npm start -
Cursor にサーバーを登録します。
- Cursor の環境設定を開きます(Mac では Cmd+,、Windows では Ctrl+,)
- 「MCP」タブに移動します
- 次の設定で新しい MCP サーバーを追加します。
- 名前:
onenote - コマンド:
node - 引数:
["/path/to/your/onenote-mcp.mjs"](絶対パスを使用)
- 名前:
設定全体の JSON の例を以下に示します。
{ "mcpServers": { "onenote": { "command": "node", "args": ["/absolute/path/to/your/onenote-mcp.mjs"], "env": {} } } } -
Cursor を再起動します
-
Cursor で自然言語を使って OneNote のデータを操作できるようになります。
Can you show me my OneNote notebooks?
Create a new page in my first notebook with a summary of this conversation
Find notes related to "project planning" in my OneNote
OneNote について初めて質問すると、AI が認証手順を案内します。
Claude Desktop(またはその他の MCP 対応アシスタント)のセットアップ
-
このリポジトリをクローンし、以下のインストール手順に従います
-
MCP サーバーを起動します:
npm start -
Claude Desktop の設定で OneNote MCP サーバーを追加します。
- 名前:
onenote - コマンド:
node - 引数:
["/path/to/your/onenote-mcp.mjs"](絶対パスを使用)
JSON 設定の例:
{ "mcpServers": { "onenote": { "command": "node", "args": ["/absolute/path/to/your/onenote-mcp.mjs"], "env": {} } } } - 名前:
-
Claude に OneNote のデータを操作するよう依頼できます
機能
- デバイスコードフローを使った Microsoft OneNote の認証(Azure のセットアップは不要)
- すべてのノートブック、セクション、ページを一覧表示
- HTML コンテンツを含む新しいページを作成
- HTML 形式を含むページの全内容を読み取り
- AI による分析と要約のためにテキストコンテンツを抽出
- すべてのページのコンテンツを一度の操作で要約
- すべてのページの全内容を読みやすい形式で読み取り
- ノート全体を検索
インストール
前提条件
- Node.js 16 以上(nodejs.org からインストール)
- OneNote にアクセスできる有効な Microsoft アカウント
- Git(git-scm.com からインストール)
ステップ 1:リポジトリをクローンする
git clone https://github.com/yourusername/onenote-mcp.git
cd onenote-mcp
ステップ 2:TypeScript SDK をダウンロードする
このプロジェクトでは MCP TypeScript SDK が必要です。別途ダウンロードしてください。
git clone https://github.com/modelcontextprotocol/typescript-sdk.git
cd typescript-sdk
npm install
npm run build
cd ..
ステップ 3:プロジェクトの依存関係をインストールする
npm install
ステップ 4:MCP サーバーを起動する
npm start
これにより MCP サーバーが起動し、次のメッセージが表示されます。
Server started successfully.
Use the "authenticate" tool to start the authentication flow,
or use "saveAccessToken" if you already have a token.
ステップ 5:AI アシスタントを通じて認証する
サーバーが起動したら、AI アシスタントを通じて直接認証できます。
-
Cursor、Anthropic の Claude Desktop、または MCP 対応アシスタントで、OneNote の認証を依頼します。
Can you authenticate with my OneNote account? -
AI が認証フローを開始し、次の情報を提示します。
- URL(通常は microsoft.com/devicelogin)
- 入力するコード
-
URL にアクセスしてコードを入力し、Microsoft アカウントでサインインします
-
認証に成功すると、AI アシスタントで OneNote を使い始めることができます
利用可能な MCP ツール
認証後、AI アシスタントは次のツールを利用できます。
| ツール名 | 説明 |
|---|---|
authenticate | Microsoft の認証フローを開始します |
listNotebooks | すべての OneNote ノートブックの一覧を取得します |
getNotebook | 特定のノートブックの詳細を取得します |
listSections | ノートブック内のすべてのセクションを一覧表示します |
listPages | セクション内のすべてのページを一覧表示します |
getPage | HTML 書式を含む、特定のページの完全な内容を取得します |
createPage | HTML コンテンツを含む新しいページを作成します |
searchPages | ノートブック全体からページを検索します |
インタラクションの例
AI アシスタントを通じて OneNote MCP とやり取りする例をいくつか紹介します。
User: Can you show me my OneNote notebooks?
AI: (uses listNotebooks) I found 3 notebooks: "Work", "Personal", and "Projects"
User: What sections are in my Projects notebook?
AI: (uses listSections) Your Projects notebook has the following sections: "Active Projects", "Ideas", and "Completed"
User: Create a new page in Projects with today's date as the title
AI: (uses createPage) I've created a new page titled "2025-04-12" in your Projects notebook
User: Find all my notes about machine learning
AI: (uses searchPages) I found 5 pages with content related to machine learning...
User: Can you read and summarize my notes on the "Project Requirements" page?
AI: (uses getPage) Based on your "Project Requirements" page, here's a summary: The project requires Python 3.8+, integration with AWS services, and completion by Q3. Key deliverables include a web dashboard, API, and documentation...
User: Extract all the action items from my "Team Meeting" notes
AI: (uses getPage) Here are all the action items from your "Team Meeting" notes:
1. John to complete API documentation by Friday
2. Sarah to schedule design review meeting
3. Team to finalize Q3 roadmap by end of month
User: Summarize content of all my OneNote pages
AI: (runs get-all-page-contents.js) Here's a summary of all your pages:
- Questions: Contains strategic business questions about competitor analysis
- 2025-04-12: Discussion about monetization strategy for bank transfers
- Role Specification: Details about the Chief Payments Officer position
...
User: I want to read through all my OneNote pages so I can ask questions about them
AI: (runs read-all-pages.js) I've retrieved the full content of all your pages in a readable format. Now you can ask me specific questions about any of the content.
応用:スクリプトを直接使用する
テストまたは開発目的では、付属のスクリプトを直接使用することもできます。
# Authenticate with Microsoft
npm run auth
# List your notebooks
npm run list-notebooks
# List sections in your first notebook
npm run list-sections
# List pages in the first section
npm run list-pages
# Create a new page
npm run create-page
# Summarize content of all pages
node get-all-page-contents.js
# Read full content of all pages
node read-all-pages.js
トラブルシューティング
認証の問題
- 認証に失敗した場合は、トラッキング防止機能のない最新のブラウザーを使用していることを確認してください
- ブラウザーの Cookie とキャッシュを消去してみてください
- "expired_token" エラーが発生した場合は、認証プロセスを再起動してください
サーバーが起動しない
- Node.js がインストールされていることを確認してください(バージョン 16 以降):
node --version - すべての依存関係がインストールされていることを確認してください:
npm install - TypeScript SDK が正しくビルドされていることを確認してください
AI がサーバーに接続できない
- MCP サーバーが実行中であることを確認してください(
npm start) - AI アシスタントの設定で、MCP を使用するよう構成されていることを確認してください
- Cursor の場合は、MCP に対応した最新バージョンであることを確認してください
セキュリティに関する注意
- 認証トークンはローカルの
.access-token.txtに保存されます - トークンを使うと OneNote データにアクセスできるため、安全に保管してください
- トークンは一定期間後に有効期限が切れるため、再認証が必要になります
- Azure のセットアップや API キーは不要です
クレジット
このプロジェクトは、Zubeid Hendricks 氏による azure-onenote-mcp-server を基盤としており、認証プロセスの簡素化と、AI アシスタントのユーザーエクスペリエンスの向上に重点を置いています。
ライセンス
このプロジェクトは MIT License のもとでライセンスされています。詳細については LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。