关于 OneNote MCP Server
OneNote MCP Server 是一个 MCP 服务,让 Claude 等 LLM 通过 AI 助手访问 Microsoft OneNote 中的笔记本、分区和页面。它基于 azure-onenote-mcp-server 修改,重点简化了认证流程。
主要功能
- 01设备码流程认证,无需配置 Azure
- 02列出笔记本、分区和页面
- 03读取页面内容,包括 HTML 格式
- 04创建包含 HTML 内容的新页面
- 05搜索笔记并汇总页面内容
适用场景
- 01让 AI 助手列出并查看 OneNote 笔记本结构
- 02在笔记本中创建会议摘要或工作记录页面
- 03根据“项目规划”等关键词查找相关笔记
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露 authenticate、listNotebooks、getPage、createPage、searchPages 等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
OneNote MCP 服务
一种模型上下文协议(MCP)服务实现,可让 Claude 等 AI 语言模型和其他大模型与 Microsoft OneNote 交互。
本项目基于 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 文件
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。