共计 4826 个字符,预计需要花费 13 分钟才能阅读完成。
我一直用 OneNote 记笔记,几年下来攒了几百篇,但 OneNote 的搜索功能实在让人头疼——搜个关键词经常找不到,跨笔记本搜索更是几乎不可能。之前就想过能不能用大模型来帮我管理这些笔记,试了好几个方案都不行:直接用 OneNote API 写脚本太麻烦,Copilot 又只支持 Microsoft 365 订阅用户,而且只能操作当前页面。
直到最近发现了 OneNote MCP Server,终于跑通了:Claude 直接读取我的 OneNote 笔记本,搜索、创建、整理笔记全靠自然语言驱动。踩了不少坑(原仓库认证已失效,必须用修复分支),把成功的方法记录下来分享给大家
。
现在有了 MCP(Model Context Protocol),大模型可以直接操作你的 OneNote,搜索、创建、编辑笔记全靠自然语言驱动。本文将介绍如何通过 OneNote MCP Server,让 Claude 等 AI 助手成为你的笔记管家。


整体架构
先说下整体的技术架构:
用户自然语言指令 → AI 助手(Claude/Cursor) → MCP Client → OneNote MCP Server → Microsoft Graph API → OneNote
核心组件:
- AI 助手(MCP Host):Claude Desktop、Cursor 等,负责理解用户意图,决定调用哪个工具
- MCP Client:通信中间件,处理 JSON-RPC 协议交互
- OneNote MCP Server:暴露 OneNote 操作为 MCP 工具,通过 Microsoft Graph API 与 OneNote 交互
- Microsoft Graph API:OneNote 的官方 API,所有数据操作都走这里
关键点:MCP Server 是桥梁,它把 OneNote 的 API 能力"翻译"成大模型能理解的标准工具描述,AI 助手根据描述自动选择合适的工具执行操作。
MCP 协议简介
MCP(Model Context Protocol)是 Anthropic 推出的开放协议,现已移交 Linux Foundation 维护。简单理解,它就是 AI 应用的 USB 接口——为 AI 模型连接不同数据源和工具提供标准化方法。
MCP 解决了什么问题
没有 MCP 之前,让大模型调用外部服务需要:
- 手动获取各 API 的描述信息(入参、出参、使用场景)
- 把用户问题和工具描述拼成 Prompt 发给大模型
- 大模型返回结构化调用请求
- 开发者写代码把请求发给对应 API
- 把结果整合后返回给用户
痛点:每个 API 都要单独适配,功能升级后应用必须改代码,维护成本高。
有了 MCP 之后:
- AI 助手启动时自动发现 MCP Server 的能力(
list_tools) - 根据用户意图自动选择工具和参数(
call_tool) - 功能升级无需人工干预,客户端自动感知新能力
MCP 核心架构
MCP 采用客户端-服务器架构,包含三个角色:
| 角色 | 说明 | 示例 |
|---|---|---|
| MCP Host | AI 应用,用户交互入口 | Claude Desktop、Cursor、Cline |
| MCP Client | 协议中间件,与 Server 一对一连接 | 内嵌在 Host 中 |
| MCP Server | 工具集,暴露资源和能力 | OneNote MCP、Filesystem MCP |
MCP Server 对外暴露三种能力:
- Tools:可调用的工具函数(如搜索笔记、创建页面)
- Resources:可访问的数据资源(如文件路径、API 端点)
- Prompts:预定义的提示词模板
通信方式有两种:stdio(本地通信,命令行调用)和 SSE + HTTP(远程通信,跨网络)。
OneNote MCP Server 实操
OneNote MCP Server 是一个开源项目,基于 MCP 协议让 AI 助手能够与 Microsoft OneNote 交互。它基于 azure-onenote-mcp-server 改进,简化了认证流程。
安装与认证
⚠️ 认证问题:原项目 danosb/onenote-mcp 的认证流程已失效(约一年前编写)。开发者 morbificagent 提交了 PR #4 修复认证问题,但原仓库维护者未合并。必须使用 morbificagent 的分支代码才能正常认证。
步骤一:克隆修复分支并安装依赖
git clone https://github.com/morbificagent/onenote-mcp.git
cd onenote-mcp
npm install
步骤二:完成微软账号认证
node authenticate.js
终端会提示打开一个 URL 并输入设备码,在浏览器中用微软账号授权即可。授权成功后,token 自动保存到 .access-token.txt 文件。
步骤三:启动 MCP Server
node onenote-mcp.mjs
与 Claude Desktop 集成
在 Claude Desktop 的配置文件中添加 OneNote MCP Server:
{
"mcpServers": {
"onenote": {
"command": "node",
"args": ["/path/to/onenote-mcp/onenote-mcp.mjs"]
}
}
}
配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
与 Cursor 集成
在 Cursor 的 MCP 设置中添加同样的配置,指向 onenote-mcp.mjs 文件路径即可。
可用工具一览
认证成功后,AI 助手可使用以下工具操作 OneNote:
| 工具名 | 功能 |
|---|---|
authenticate |
启动微软认证流程 |
listNotebooks |
列出所有 OneNote 笔记本 |
getNotebook |
获取特定笔记本详情 |
listSections |
列出笔记本中的分区 |
listPages |
列出分区中的页面 |
getPage |
获取页面完整内容(含 HTML 格式) |
createPage |
创建新页面(HTML 内容) |
searchPages |
跨笔记本搜索页面 |
此外,增强版还支持:追加文本、替换文字、添加待办事项、插入表格、格式化注释等高级操作。
典型使用场景
场景一:智能搜索与摘要
用户:帮我找一下关于"项目排期"的所有笔记,并总结要点
AI:(调用 searchPages) 找到 5 篇相关笔记
AI:(调用 getPage 逐篇读取) 生成摘要...
AI:以下是关于"项目排期"的笔记摘要:
1. Q1排期表:包含3个核心里程碑...
2. 开发排期讨论:前端2周、后端3周...
传统方式:打开 OneNote → 手动搜索 → 逐篇阅读 → 自己总结。现在一句话搞定。
场景二:会议纪要自动归档
用户:把这段会议纪要保存到"工作"笔记本的"会议记录"分区,标题用今天的日期
AI:(调用 listNotebooks → listSections → createPage)
AI:已创建页面 "2026-05-22" 在 工作/会议记录 分区
场景三:跨笔记本知识整理
用户:我"项目"笔记本里有哪些笔记是跟机器学习相关的?整理一份清单
AI:(调用 searchPages 跨笔记本搜索)
AI:找到 3 篇相关笔记:
1. 模型选型对比(项目/Active Projects)
2. 训练数据清洗方案(项目/Ideas)
3. ML Pipeline 架构设计(项目/Active Projects)
场景四:笔记内容改写与润色
用户:帮我把"项目需求"这篇笔记整理成更清晰的格式,加上待办事项
AI:(调用 getPage 读取 → 处理 → createPage 或更新)
AI:已整理完成,添加了 5 个待办事项,重新组织了章节结构
坑点与注意事项
Token 过期问题
OneNote MCP Server 的访问令牌存储在 .access-token.txt 文件中,Token 会过期。过期后需要重新运行 node authenticate.js 完成认证。建议:
- 不要删除
.access-token.txt文件 - Token 过期时 AI 助手会调用
authenticate工具提示重新认证 - 如果频繁过期,考虑写个定时脚本刷新 Token
认证分支选择
⚠️ 这是最大的坑:原仓库的认证已失效,必须用修复分支。
- ❌ 原仓库:
https://github.com/danosb/onenote-mcp(认证失效) - ✅ 修复分支:
https://github.com/morbificagent/onenote-mcp/tree/main - 修复 PR:PR #4
如果你 clone 了原仓库然后认证失败,大概率就是这个问题。
安全注意事项
.access-token.txt包含微软账号的访问令牌,不要提交到 Git 仓库- 建议在
.gitignore中添加.access-token.txt - 所有数据操作都通过 Microsoft Graph API 完成,走的是官方 API,数据安全性有保障
- AI 助手只能访问你授权范围内的笔记本和页面
大模型的准确性与稳定性
MCP 让大模型具备了操作 OneNote 的能力,但大模型本身存在一些固有问题:
- 准确性:大模型可能误解用户意图,比如你说"整理笔记",它可能删除了某些内容而不是重新组织
- 稳定性:同样的指令,两次执行的任务流程可能不一致
- 建议:对于删除、修改等不可逆操作,先让 AI 确认再执行;重要笔记做好备份
复杂表格编辑有限
OneNote MCP Server 对复杂表格的编辑能力有限,如果笔记中包含大量复杂表格,AI 操作可能不够精准。建议对这类内容先导出备份再让 AI 处理。
替代方案
OneNote MCP 并不是唯一选择,根据你的笔记工具,还有以下方案:
| 方案 | 适用场景 | 特点 |
|---|---|---|
| OneNote MCP | OneNote 用户 | 开源免费,功能全面,需自行部署 |
| OneNote Copilot | Microsoft 365 订阅用户 | 官方内置,无需配置,但需付费订阅 |
| Obsidian MCP | Obsidian 用户 | 本地 Markdown 笔记,社区活跃 |
| Apple Notes MCP | Apple 生态用户 | 本地数据库访问,仅 macOS |
| Notion MCP | Notion 用户 | API 完善,协作友好 |
如果你已经在用 Microsoft 365 Copilot 订阅,OneNote 内置的 Copilot 也能实现类似功能(摘要、创建、改写),但它的操作范围仅限于当前笔记本页面,不如 MCP 方案灵活。
总结
这套方案的核心优势在于:
- 自然语言交互:不用记快捷键和操作路径,说句话就能管理笔记
- 跨笔记本操作:搜索、整理不再受限于单个笔记本
- AI 增强能力:摘要、改写、分类、待办提取,这些 OneNote 本身做不好的事,AI 轻松搞定
- 标准化协议:MCP 是开放标准,未来更多 AI 助手和工具会支持
当然也有一些注意事项:
- 认证分支要选对,原仓库已失效
- Token 会过期,需要定期重新认证
- 大模型的操作不是 100% 可靠,重要操作建议先确认
- 复杂表格编辑能力有限
总的来说,如果你是 OneNote 重度用户,又想让 AI 帮你管理笔记,OneNote MCP 是目前最实用的方案。配置一次,长期受益。
参考资料
- OneNote MCP Server 原项目:https://github.com/danosb/onenote-mcp
- 认证修复分支(推荐使用):https://github.com/morbificagent/onenote-mcp/tree/main
- 认证修复 PR:https://github.com/danosb/onenote-mcp/pull/4
- 基础项目 azure-onenote-mcp-server:https://github.com/ZubeidHendricks/azure-onenote-mcp-server
- MCP 协议官方文档:https://modelcontextprotocol.io
- OneNote MCP Server 介绍(AIBase):https://mcp.aibase.cn/server/1475585820550504486
- OneNote MCP Server(LobeHub):https://lobehub.com/mcp/danosb-onenote-mcp