OneNote MCP Server

OneNote MCP Server

一个模型上下文协议服务器,使像 Claude 这样的人工智能语言模型能够与 Microsoft OneNote 交互,从而允许通过人工智能界面直接访问笔记本、创建页面、搜索笔记和分析内容。

Category
访问服务器

README

OneNote MCP 服务器

这是一个模型上下文协议 (MCP) 服务器的实现,它使 AI 语言模型(如 Claude 和其他 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 配置示例:

    {
      "mcpServers": {
        "onenote": {
          "command": "node",
          "args": ["/absolute/path/to/your/onenote-mcp.mjs"],
          "env": {}
        }
      }
    }
    
  4. 重启 Cursor

  5. 在 Cursor 中,您现在可以使用自然语言与您的 OneNote 数据进行交互:

你能显示我的 OneNote 笔记本吗?
在我的第一个笔记本中创建一个新页面,其中包含此对话的摘要
在我的 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 配置示例:

    {
      "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 安装)

步骤 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 助手进行身份验证:

  1. 在 Cursor、Anthropic 的 Claude Desktop 或任何 MCP 兼容的助手中,要求使用 OneNote 进行身份验证:

    你能用我的 OneNote 帐户进行身份验证吗?
    
  2. AI 将触发身份验证流程并为您提供:

    • 一个 URL(通常是 microsoft.com/devicelogin)
    • 一个要输入的代码
  3. 转到 URL,输入代码,然后使用您的 Microsoft 帐户登录

  4. 成功进行身份验证后,您可以开始将 OneNote 与您的 AI 助手一起使用

可用的 MCP 工具

身份验证后,以下工具可供 AI 助手使用:

工具名称 描述
authenticate 启动 Microsoft 身份验证流程
listNotebooks 获取所有 OneNote 笔记本的列表
getNotebook 获取特定笔记本的详细信息
listSections 列出笔记本中的所有分区
listPages 列出分区中的所有页面
getPage 获取特定页面的完整内容,包括 HTML 格式
createPage 创建具有 HTML 内容的新页面
searchPages 搜索您的笔记本中的页面

示例交互

以下是一些示例,说明如何通过 AI 助手与 OneNote MCP 进行交互:

用户:你能显示我的 OneNote 笔记本吗?
AI:(使用 listNotebooks) 我找到了 3 个笔记本:“工作”、“个人”和“项目”

用户:我的“项目”笔记本中有哪些分区?
AI:(使用 listSections) 您的“项目”笔记本具有以下分区:“活动项目”、“想法”和“已完成”

用户:在“项目”中创建一个新页面,并将今天的日期作为标题
AI:(使用 createPage) 我在您的“项目”笔记本中创建了一个名为“2025-04-12”的新页面

用户:查找我所有关于机器学习的笔记
AI:(使用 searchPages) 我找到了 5 个与机器学习相关的内容页面...

用户:你能阅读并总结我在“项目要求”页面上的笔记吗?
AI:(使用 getPage) 根据您的“项目要求”页面,这是一个摘要:该项目需要 Python 3.8+、与 AWS 服务的集成以及在第三季度完成。主要交付成果包括 Web 仪表板、API 和文档...

用户:从我的“团队会议”笔记中提取所有操作项
AI:(使用 getPage) 这是您的“团队会议”笔记中的所有操作项:
1. John 在星期五之前完成 API 文档
2. Sarah 安排设计审查会议
3. 团队在月底之前完成第三季度路线图

用户:总结我所有 OneNote 页面的内容
AI:(运行 get-all-page-contents.js) 这是您所有页面的摘要:
- 问题:包含有关竞争对手分析的战略业务问题
- 2025-04-12:关于银行转账货币化策略的讨论
- 角色规范:有关首席支付官职位的详细信息
...

用户:我想阅读我所有的 OneNote 页面,以便我可以提出问题
AI:(运行 read-all-pages.js) 我已经以可读格式检索了您所有页面的完整内容。现在您可以向我询问有关任何内容的具体问题。

高级:直接脚本使用

为了进行测试或开发,您也可以直接使用提供的脚本:

# 使用 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 文件

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选