这是一个实现了模型上下文协议(MCP)的服务器,使像Claude和其他大型语言模型(LLMs)能够与Microsoft OneNote进行交互。
该项目基于Zubeid Hendricks的azure-onenote-mcp-server,并进行了修改以简化认证过程并提高易用性。
该服务器允许AI助手:
所有这些操作都可以通过AI界面直接完成,无需切换上下文。
克隆此仓库并按照以下安装步骤操作
启动MCP服务器:npm start
在Cursor中注册服务器:
onenotenode["/path/to/your/onenote-mcp.mjs"](使用绝对路径)完整的JSON配置示例如下:
{
"mcpServers": {
"onenote": {
"command": "node",
"args": ["/absolute/path/to/your/onenote-mcp.mjs"],
"env": {}
}
}
}
重启Cursor
现在可以在Cursor中使用自然语言与你的OneNote数据进行交互:
你能给我展示我的OneNote笔记本吗?
在我的第一个笔记本中创建一个新页面,包含这次对话的摘要
查找我OneNote中与“项目规划”相关的笔记
第一次询问关于OneNote时,AI会引导你完成认证过程。
克隆此仓库并按照以下安装步骤操作
启动MCP服务器:npm start
在Claude Desktop设置中添加OneNote MCP服务器:
onenotenode["/path/to/your/onenote-m- mcp.mjs"](使用绝对路径)JSON配置示例如下:
{
"mcpServers": {
"onenote": {
"command": "node",
"args": ["/absolute/path/to/your/onenote-mcp.mjs"],
"env": {}
}
}
}
现在可以要求Claude与你的OneNote数据进行交互
git clone https://github.com/yourusername/onenote-mcp.git
cd onenote-mcp
此项目需要单独下载的MCP TypeScript SDK:
git clone https://github.com/modelcontextprotocol/typescript-sdk.git
cd typescript-sdk
npm install
npm run build
cd ..
npm install
npm start
这将启动MCP服务器,并显示消息:
服务器成功启动。
使用“authenticate”工具开始认证流程,
或者如果你已经有令牌,使用“saveAccessToken”。
一旦服务器运行,你可以直接通过你的AI助手进行认证:
在Cursor、Anthropic的Claude Desktop或其他兼容MCP的助手中,请求与OneNote账户进行认证:
你能与我的OneNote账户进行认证吗?
AI将触发认证流程,并提供给你:
访问该URL,输入代码,并使用你的Microsoft账户登录
成功认证后,你可以开始使用AI助手与OneNote进行交互
认证后,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服务集成,并在第三季度完成。主要交付物包括一个网页仪表板、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
node --versionnpm installnpm start).access-token.txt中这个项目基于Zubeid Hendricks的azure-onenote-mcp-server,重点在于简化认证过程并改善与AI助手的用户体验。
此项目根据MIT许可证发布 - 查看LICENSE文件获取详情