danosb
服务介绍
OneNote MCP 服务器
这是一个实现了模型上下文协议 (MCP) 的服务器,它使像 Claude 这样的 AI 语言模型和其他大型语言模型 (LLM) 能够与 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 配置示例如下:
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 配置示例如下:
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 下载)
第一步:克隆仓库
bash
git clone https://github.com/yourusername/onenote-mcp.git
cd onenote-mcp
第二步:下载 TypeScript SDK
该项目需要 MCP TypeScript SDK,需要单独下载:
bash
git clone https://github.com/modelcontextprotocol/typescript-sdk.git
cd typescript-sdk
npm install
npm run build
cd ..
第三步:安装项目依赖
bash
npm install
第四步:启动 MCP 服务器
bash
npm start
这将启动 MCP 服务器,您会看到如下消息:
Server started successfully.
Use the "authenticate" tool to start the authentication flow,
or use "saveAccessToken" if you already have a token.
第五步:通过您的 AI 助手进行身份验证
一旦服务器运行起来,您就可以直接通过您的 AI 助手进行身份验证:1. 在 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 进行交互:
用户:你能显示我的 OneNote 笔记本吗?
AI:(使用 listNotebooks) 我找到了 3 个笔记本:"Work"、"Personal" 和 "Projects"
用户:我的 Projects 笔记本里有哪些分区?
AI:(使用 listSections) 您的 Projects 笔记本包含以下分区:"Active Projects"、"Ideas" 和 "Completed"
用户:在 Projects 中创建一个以今天的日期为标题的新页面
AI:(使用 createPage) 我已在您的 Projects 笔记本中创建了一个名为 "2025-04-12" 的新页面
用户:找到我所有关于机器学习的笔记
AI:(使用 searchPages) 我找到了 5 页与机器学习相关的内容...
用户:你能阅读并总结一下我的 "Project Requirements" 页面上的笔记吗?
AI:(使用 getPage) 根据您的 "Project Requirements" 页面,以下是摘要:项目需要 Python 3.8+,与 AWS 服务集成,并在第三季度前完成。主要交付成果包括一个 Web 仪表板、API 和文档...
用户:从我的 "Team Meeting" 笔记中提取所有待办事项
AI:(使用 getPage) 这是您 "Team Meeting" 笔记中的所有待办事项:
- John 需要在周五前完成 API 文档
- Sarah 需要安排设计评审会议
- 团队需在月底前最终确定第三季度路线图
用户:总结我所有 OneNote 页面的内容
AI:(运行 get-all-page-contents.js) 这是您所有页面的摘要:
- Questions: 包含有关竞争对手分析的战略业务问题
- 2025-04-12: 关于银行转账货币化策略的讨论
- Role Specification: 关于首席支付官职位的详细信息
...
用户:我想通读我所有的 OneNote 页面,以便我可以询问它们的相关问题
AI:(运行 read-all-pages.js) 我已以可读格式检索了您所有页面的全部内容。现在您可以就其中任何内容向我提问。
高级:直接脚本使用
出于测试或开发目的,您也可以直接使用提供的脚本:
bash
与 Microsoft 进行身份验证
npm run auth
列出您的笔记本
npm run list-notebooks
列出您的第一个笔记本中的分区
npm run list-sections
列出第一个分区中的页面
npm run list-pages
创建新页面
npm run create-page
总结所有页面的内容
node get-all-page-contents.js
读取所有页面的完整内容
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 文件。