d

danosb

@danosb/onenote-mcp
0 Stars 326 次浏览 danosb 更新于 2026-08-23
该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

OneNote MCP 服务器

这是一个实现了模型上下文协议 (MCP) 的服务器,它使像 Claude 这样的 AI 语言模型和其他大型语言模型 (LLM) 能够与 Microsoft OneNote 进行交互。

该项目基于 Zubeid Hendricks 的 azure-onenote-mcp-server,并进行了修改以简化身份验证和提高可用性。

功能介绍

该服务器允许 AI 助手:

  • 访问您的 OneNote 笔记本、分区和页面
  • 在您的笔记本中创建新页面
  • 搜索您的笔记
  • 阅读完整的笔记内容,包括 HTML 格式和文本
  • 直接分析和总结您的笔记

所有这些操作都可以直接通过 AI 界面完成,而无需切换上下文。

与 AI 助手配合使用

Cursor 设置

  1. 克隆此仓库并按照以下安装步骤进行操作

  2. 启动 MCP 服务器:npm start

  3. 在 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": {}
    }
    }
    }

  4. 重启 Cursor

  5. 在 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 的助手)设置

  1. 克隆此仓库并按照以下安装步骤进行操作

  2. 启动 MCP 服务器:npm start

  3. 在 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": {}
    }
    }
    }

  4. 您现在可以让 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?

  1. AI 将触发身份验证流程,并为您提供以下信息:

    • 一个 URL(通常是 microsoft.com/devicelogin)
    • 需要输入的代码
  2. 访问该 URL,输入代码,并使用您的 Microsoft 账户登录。

  3. 成功认证后,您可以开始通过 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" 笔记中的所有待办事项:

  1. John 需要在周五前完成 API 文档
  2. Sarah 需要安排设计评审会议
  3. 团队需在月底前最终确定第三季度路线图

用户:总结我所有 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 文件。

相关 MCP 服务