项目简介

这是一个基于 Model Context Protocol (MCP) 实现的服务器,旨在集成 Microsoft OneNote 服务,使支持 MCP 的 LLM 客户端能够访问、管理和创建 OneNote 中的内容。

主要功能点

  • 访问 OneNote 内容:允许 LLM 客户端获取 OneNote 中的笔记本列表、笔记本下的分区列表、分区下的页面列表,以及读取指定页面的内容(包括文本和 HTML)。
  • 创建 OneNote 内容:支持 LLM 客户端创建新的笔记本、在指定笔记本中创建新的分区、在指定分区中创建新的页面。
  • 保存图表:一个特殊功能,允许 LLM 客户端生成 Mermaid 格式的图表,并将其渲染为图片后保存到 OneNote 的指定位置。
  • 能力声明:通过 MCP 标准接口向客户端暴露其提供的 OneNote 工具和预设的 Prompt 模板。

安装步骤

  1. 克隆仓库:将 GitHub 仓库克隆到本地。
    git clone https://github.com/rajvirtual/MCP-Servers.git
    cd MCP-Servers/onenote
  2. 安装依赖:进入 'onenote' 目录并安装所需的 Node.js 依赖。
    npm install
    # 或使用 yarn install / pnpm install
  3. 配置认证:创建 '.env.local' 文件在 'onenote' 目录下,并填写 Microsoft Azure 应用的客户端 ID。
    CLIENT_ID=YOUR_AZURE_CLIENT_ID
    (如何获取 CLIENT_ID 请参考 Microsoft Azure 文档创建应用并授予 Microsoft Graph API 权限)
  4. 运行并认证:首次运行服务器时,它会尝试通过设备代码流进行 Microsoft 认证。请按照终端输出的指示,在浏览器中打开特定 URL,输入设备代码完成认证。认证成功后,服务器会保存认证信息以供后续使用。认证指示也可能被写入 'onenote/device-code.txt' 文件。

服务器配置

MCP 服务器通过标准输入输出 (Stdio) 与客户端通信。对于 MCP 客户端来说,需要配置连接到此服务器的启动命令和参数。典型的配置信息需要包含:

  • 'name': 给这个连接起一个容易识别的名称,例如 "OneNote MCP Server"。
  • 'connection': 描述连接细节。
    • 'type': 固定为 "stdio",表示使用标准输入输出。
    • 'command': 启动服务器进程的命令。对于此 Node.js 项目,通常是 'node' 或 'ts-node'。
    • 'args': 传递给命令的参数,即服务器入口文件的路径。例如,如果项目被编译到 'dist' 目录,入口文件可能是 'dist/index.js';如果直接运行 TypeScript,可能是 'src/index.ts'。你需要提供到这个文件在你系统中的完整路径。

例如,一个配置示例可能指示客户端运行 'node' 命令,参数是 '/path/to/your/MCP-Servers/onenote/dist/index.js'(请将 '/path/to/your/' 替换为你实际的仓库路径,并根据你是否编译了代码调整入口文件路径)。

基本使用方法

配置好 MCP 客户端并连接到 OneNote MCP 服务器后,LLM 就可以通过客户端发现和调用服务器提供的工具(如 'onenote-read', 'onenote-create', 'onenote-diagram')以及使用相关的 Prompt 模板(如获取笔记本、创建页面等),从而实现与 OneNote 的交互。具体的交互方式取决于你的 LLM 客户端如何集成和利用 MCP 能力。

信息

分类

生产力应用