内容
# OneNote MCP 服务器
一款模型上下文协议(MCP)服务器,为 Claude(或任何 MCP 客户端)提供直接访问本地 Microsoft OneNote 笔记本的功能,通过 COM API。无需 Azure 注册,无需 API 密钥,无需云认证 — 只需您的本地 OneNote 桌面应用程序。
**仅限 Windows。** 需要安装并运行 OneNote 桌面版。
## 功能
- **13 种工具**,实现对 OneNote 的完全访问
- 浏览笔记本、分区、分区组和页面
- 以干净的 Markdown 格式读取页面,并包含图片引用
- 跨所有笔记本进行全文搜索(通过 Windows 搜索)
- 将嵌入的图片提取为原生 MCP 图片对象(Claude 可以直接看到)
- 可选的图片视觉分析,支持任何 OpenAI 兼容的视觉 API(LM Studio、ollama 等)
- 创建包含 HTML 内容的新页面
## 工具
| 类别 | 工具 | 描述 |
|----------|------|-------------|
| 导航 | `onenote_list_notebooks` | 列出所有打开的笔记本 |
| | `onenote_list_sections` | 列出笔记本中的分区 |
| | `onenote_list_pages` | 列出分区中的页面 |
| | `onenote_get_notebook_tree` | 完整的层次树 |
| 内容 | `onenote_get_page` | 页面为干净的 Markdown 格式 |
| | `onenote_get_page_raw` | 原始 OneNote XML |
| | `onenote_get_page_images` | 所有图片作为 MCP 图片对象 |
| | `onenote_get_image` | 通过回调 ID 获取单个图片 |
| 搜索 | `onenote_search` | 全文搜索(所有笔记本) |
| | `onenote_search_in_notebook` | 在单个笔记本中搜索 |
| 视觉 | `onenote_analyze_page_visuals` | 对页面所有图片的视觉模型分析 |
| | `onenote_describe_image` | 对单个图片的视觉模型分析 |
| 写入 | `onenote_create_page` | 创建新页面 |
## 安装
```bash
pip install -r requirements.txt
```
依赖项:`mcp[cli]`、`pydantic-settings`、`Pillow`、`httpx`
## 配置
将以下内容添加到您的 Claude Code MCP 配置文件(`~/.claude/mcp.json`):
```json
{
"mcpServers": {
"onenote": {
"type": "stdio",
"command": "python",
"args": ["path/to/onenote-mcp/onenote_mcp.py"],
"env": {}
}
}
}
```
### 视觉分析(可选)
要启用通过本地视觉模型进行图片分析(例如 LM Studio):
```json
"env": {
"ONENOTE_VISION_URL": "http://localhost:1234",
"ONENOTE_VISION_MODEL": "your-vision-model-name",
"ONENOTE_VISION_FALLBACK_URL": "http://other-host:1234",
"ONENOTE_VISION_FALLBACK_MODEL": "fallback-model-name"
}
```
任何支持视觉分析的 OpenAI 兼容 `/v1/chat/completions` 端点都可以使用。
## 工作原理
64 位 Python 无法直接调用 32 位 OneNote COM 对象。此服务器通过调用 PowerShell 来实现 COM 操作,从而解决 COM 互操作问题。结果通过临时文件传递,以避免 stdout 编码问题。
## 要求
- Windows 10/11
- Microsoft OneNote 桌面版(非 UWP/Store 版本)
- Python 3.11+
- OneNote 必须正在运行(或至少已安装 — COM 将启动它)
## 许可证
MIT