DO

dcpurnell/onenote-mcp

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

4 stars 7 forks 质量 81 趋势 20MIT

Microsoft OneNote MCP Server

概览

The OneNote MCP Server is a powerful Model Context Protocol (MCP) server that enables AI language models (LLMs) like Claude, and other AI assistants, to securely interact with your Microsoft OneNote data. It allows for reading, writing, searching, and comprehensive editing of your OneNote notebooks, sections, and pages directly through your AI interface. This server provides a rich set of tools for advanced OneNote management, including robust text extraction, HTML content processing, and fine-grained page manipulation. - ✅ - Microsoft Graph does the work, not your machine - ✅ - fetches only top N recent pages (e.g., 70 pages for 7 days) - ✅ - no more pagination through thousands of pages - ✅ - from 60+ seconds to <5 seconds typical - ✅ - 90%+ reduction in API calls - ✅ - adjusts fetch size based on time window The server now properly supports Microsoft Teams/SharePoint notebooks with instant performance: - ✅ - survives server restarts, loads instantly (.notebook-cache.

README

以下为原文 README 节选,完整内容请查看原文。

OneNote MCP Server

The OneNote MCP Server is a powerful Model Context Protocol (MCP) server that enables AI language models (LLMs) like Claude, and other AI assistants, to securely interact with your Microsoft OneNote data. It allows for reading, writing, searching, and comprehensive editing of your OneNote notebooks, sections, and pages directly through your AI interface.

This server provides a rich set of tools for advanced OneNote management, including robust text extraction, HTML content processing, and fine-grained page manipulation.

🆕 Latest Updates (February 2026)

Query Optimization with $orderby and $top - 10-30x Performance Boost!

  • ✅ Server-side sorting - Microsoft Graph does the work, not your machine
  • ✅ Smart limiting - fetches only top N recent pages (e.g., 70 pages for 7 days)
  • ✅ Single API call - no more pagination through thousands of pages
  • ✅ Response time - from 60+ seconds to <5 seconds typical
  • ✅ Rate limit friendly - 90%+ reduction in API calls
  • ✅ Dynamic optimization - adjusts fetch size based on time window

Query Optimization Details →

Team Notebooks Support with Progressive Loading! The server now properly supports Microsoft Teams/SharePoint notebooks with instant performance:

  • ✅ Disk-persisted cache - survives server restarts, loads instantly (.notebook-cache.json)
  • ✅ Progressive loading - personal notebooks in <2s, teams load in background
  • ✅ No timeouts - works perfectly with 50+ teams
  • ✅ Cache utility - refresh-cache.mjs to pre-populate cache for other apps
  • ✅ Access team notebooks from SharePoint sites
  • ✅ List sections in team notebooks (no more “resource ID does not exist” errors)
  • ✅ Search and get recent changes in team notebooks
  • ✅ Fixed display name issues (undefined → proper names)
  • ✅ Full site-based endpoint routing — all tools (read, search, create, edit) now route through /sites/{siteId}/onenote for SharePoint notebooks instead of failing via /me/onenote
  • ✅ Edit team notebook pages — updatePageContent, appendToPage, replaceTextInPage, addNoteToPage, addTableToPage all work with team notebooks
  • ✅ Create pages in team notebooks — createDailyNote and createPage now support team notebooks
  • ✅ getPageByTitle searches team notebooks when personal search finds no match

Team Notebooks Documentation →

Features

  • Authentication: Secure device code flow for Microsoft Graph API access.
  • Read Operations:
    • List notebooks, sections, and pages with full pagination support.
    • Search pages by title across all notebooks.
    • Advanced date-based searching across all notebooks and sections.
    • Filter pages by creation or modification date (e.g., find all notes from today).
在 GitHub 查看完整 README

安装

This server does not publish a one-line install command.

Open the repository installation guide 新手?先看 mcpskill.org 教程 →

配置

{ "mcpServers": { "onenote": { "command": "node", "args": ["/full/path/to/your/onenote-ultimate-mcp-server/onenote-mcp.mjs"], "env": { // Recommended: Set AZURE_CLIENT_ID here if not set globally "AZURE_CLIENT_ID": "YOUR_AZURE_APP_CLIENT_ID_HERE" } } } }