MCP OneNote服务器
服务器 模型上下文协议(MCP) 对于Microsoft OneNote,允许AI代理 克劳德桌面 阅读、创建和分析OneNote笔记本、分区和页面,包括图像内容的自动提取 通过克劳德视觉。
______________________________________________________________________
✨ 功能
- 📒 利斯特 les笔记本、章节和页面
- 📄 意大利里拉 页面的HTML内容
- 🖼️ 从图像中提取文本 通过Claude Vision嵌入(新!)
- ✏️ 创建 des笔记本、章节和页面
- 🔐 认证 通过Azure AD设备代码流
______________________________________________________________________
🧰 先决条件
- Microsoft帐户(个人或工作)
- Anthropic API密钥(console.anthropic.com)
______________________________________________________________________
🚀 逐步安装
步骤1-克隆项目
git clone https://github.com/FRESHSK/mcp_onenote.git
cd mcp_onenote_01
npm install______________________________________________________________________
步骤2-创建Azure AD应用程序(一次)
此步骤允许获得 Client ID 访问Microsoft图形API。
- 继续 Azure门户-应用程序注册
- 点击 “新注册”
- 填写表格:
- 名字 : MCP OneNote - 支持的帐户类型 :选择第三个选项 *(多租户+个人Microsoft帐户)* - 重定向URI : Public client/native → http://localhost - 点击 注册
- 启用公共流:
- 菜单粗鲁→ 认证 - 滚动底座→ 高级设置 - 允许公共客户端流 → 是 - 点击 保存
- 复印机l'应用程序(客户端)ID 从那时起 概述
______________________________________________________________________
步骤3-添加Microsoft图形API权限
创建Azure AD应用程序后,必须授予访问OneNote所需的权限。
- 在 Azure 门户,转到您的应用程序注册
- 菜单粗鲁→ API权限
- 点击 “添加权限”
- 选择 微软图形
- 选择 委托权限
- 搜索并检查以下权限:
| 权限 | 描述 |
|---|---|
User.Read | 阅读登录用户的个人资料 |
Notes.Read 阅读OneNote笔记本 | |
Notes.Create | 创建笔记本和页面 |
Notes.ReadWrite 阅读和编辑OneNote笔记本 |
- 点击 “添加权限”
- 点击 “授予管理员对…的同意” (如果您是管理员)然后确认
ℹ️ 如果您不是管理员,则将在首次通过设备代码流连接时授予权限。
Azure门户的预期结果:
✅ User.Read (Delegated) - Granted
✅ Notes.Read (Delegated) - Granted
✅ Notes.Create (Delegated) - Granted
✅ Notes.ReadWrite (Delegated) - Granted______________________________________________________________________
步骤4-配置环境变量
cp .env.example .env编辑 .env :
MICROSOFT_CLIENT_ID=ton-client-id-azure
MICROSOFT_TENANT_ID=common
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxx
TOKEN_CACHE_PATH=./token_cache.json⚠️ 永远不要提交文件.env-他在.gitignore
______________________________________________________________________
步骤5-首次Microsoft身份验证
服务器需要Microsoft令牌才能访问OneNote。运行此脚本一次:
node debug_auth.js您将在终端中看到:
To sign in, use a web browser to open the page
https://microsoft.com/devicelogin and enter the code XXXXXXXX- 打开 https://microsoft.com/devicelogin
- 输入终端中显示的代码
- 使用您的Microsoft帐户登录
- 文件
token_cache.json将自动创建
✅ 此步骤只需要一次。令牌自动更新。
______________________________________________________________________
步骤6-设置Claude桌面
编辑文件 claude_desktop_config.json de Claude桌面:
- 视窗 :
C:\Users\\AppData\Roaming\Claude\claude_desktop_config.json - 苹果电脑 :
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"onenote": {
"command": "node",
"args": [
"C:\\chemin\\absolu\\vers\\mcp_onenote_01\\server.js"
],
"env": {
"TOKEN_CACHE_PATH": "C:\\chemin\\absolu\\vers\\mcp_onenote_01\\token_cache.json"
}
}
}
}⚠️ 乐 TOKEN_CACHE_PATH Absolu对于Claude Desktop找到正确的令牌文件非常重要。______________________________________________________________________
步骤7-重新启动Claude桌面
关闭并重新启动Claude桌面。OneNote MCP将可用。
______________________________________________________________________
🛠️ 可用工具
| 工具 | 描述 | 设置 |
|---|---|---|
list_notebooks | 列出所有笔记本 | - |
list_sections | 列出笔记本的部分 | notebookId |
list_pages | 列出部分中的页面 | sectionId |
read_content | 读取页面内容(文本+图像) | pageId, extract_images (bool,默认值:true) |
create_notebook | 创建新笔记本 | displayName |
create_section | 创建新部分 | notebookId, displayName |
create_page 创建新页面 | sectionId, htmlContent |
______________________________________________________________________
🖼️ 图像提取(克劳德视觉)
什么时候 extract_images: true (默认),工具 read_content :
- 解析页面的HTML
- 检测标签 `` 指向图形API
- 使用Microsoft Bearer令牌获取每个图像
- 将图像发送给Claude Vision以提取文本内容
- 返回文本+从每个图像中提取的内容
要禁用此功能:
read_content(pageId: "...", extract_images: false)______________________________________________________________________
📁 项目结构
mcp_onenote_01/
├── server.js # Serveur MCP principal
├── debug_auth.js # Script d'authentification initiale
├── .env # Variables d'environnement (non commité)
├── .env.example # Template des variables d'environnement
├── .gitignore # Fichiers ignorés par Git
├── claude_desktop_config.json # Exemple de config Claude Desktop
├── token_cache.json # Cache du token MSAL (non commité)
└── package.json # Dépendances Node.js______________________________________________________________________
📦 主要依赖项
| 包装 | 用法 |
|---|---|
@modelcontextprotocol/sdk MCP服务器 | |
@azure/msal-node | 身份验证Microsoft |
@anthropic-ai/sdk Claude Vision for Images | |
node-fetch HTTP请求 | |
dotenv | 环境变量 |
______________________________________________________________________
🔒 安全
- 文件
.env包含键在.gitignore - 乐
token_cache.json包含Microsoft令牌的是.gitignore - 永远不要在GitHub中提交API密钥或令牌
______________________________________________________________________
🐛 故障排除
MCP在Claude桌面中没有响应? →检查日志: AppData\Roaming\Claude\logs\mcp-server-onenote.log
令牌是否过期并再次请求身份验证? → 请问 TOKEN_CACHE_PATH 指向绝对正确的路径 claude_desktop_config.json → 继电器 node debug_auth.js 要续订令牌:
错误 media_type 在照片上? →代码自动规范化为 image/png 如果Anthropic API不支持该类型
______________________________________________________________________
📝 许可证
麻省理工学院
