Standalone OneNote MCP server for Windows: Python + PowerShell COM bridge
Strong tool naming (verb_noun pattern throughout) and comprehensive parameter schemas with enums and descriptions. Most tools have clear, actionable descriptions (avg ~150 chars). However, output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal; no recovery guidance or actionable error messages. Knowledge tools (digest, insights, health_report) lack explicit output schema documentation despite complex return types. Tool composition is sound (single responsibility, proper chaining via IDs), but destructive operations (delete_page) lack confirmation/dry-run patterns.
Append text to the end of an existing OneNote page as a new outline block. Newlines become separate paragraphs. Never overwrites existing content.
Create a page from a trusted template after preview. preview_only defaults true; set false only after the user approves the rendered content.
Create a new notebook in the default location. Returns the new notebook_id.
Create a new page in a OneNote section, optionally with a title and body text. Get the section ID from onenote_hierarchy with scope 'sections'.
Create a new section in a notebook (or inside a section group). Get the notebook/group ID from onenote_hierarchy. Returns the new section_id.
Create a section group inside a notebook or another section group. Returns section_group_id.
Output schemas not documented for knowledge tools (digest, insights, health_report, weekly_review). LLMs cannot predict response structure or plan downstream extraction. Complex nested objects returned without field documentation.
Destructive operation (onenote_delete_page) lacks confirmation/dry-run pattern. No preview step before permanent deletion. Agents cannot safely plan multi-step workflows involving deletions.
No error handling guidance in tool descriptions. Errors return raw exceptions without recovery hints. LLMs cannot self-correct on invalid page_id, section_id, or search failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Delete a OneNote page by its object ID. By default the page is moved to the notebook's recycle bin (recoverable); pass permanent:true to erase it outright. Destructive — always confirm you have the right page ID (from onenote_hierarchy or onenote_search) before calling. Deletes one page per call.
Extract action items, owners, due dates, decisions, risks, blockers, and open questions from a scoped set of OneNote pages.
Read a OneNote page: returns its title and text content (flattened from the page XML). Get page IDs from onenote_hierarchy or onenote_search.
Audit a notebook or section for duplicate candidates, stale pages, untitled/empty pages, ownerless action items, and organization recommendations with explainable confidence scores.
List the OneNote hierarchy: notebooks, section groups, sections, and pages with their IDs. Use scope 'notebooks' for a quick overview, 'sections' to find section IDs for page creation, 'pages' for the full tree including page IDs.
Build a source-grounded executive or detailed digest across a page, section, notebook, or all open notebooks. Returns per-page key points plus action items, decisions, risks, and questions for the client to synthesize.
Open a notebook, section, or page in the visible OneNote window. This changes what the user sees on screen — use only when the user asked to open or show something.
Full-text search across OneNote pages. Returns matching pages with their IDs.
Preview a trusted page template without modifying OneNote. Available templates: meeting, project, decision_log, weekly_review.
Build a weekly-review source pack from recent/scoped notes, including key points, decisions, risks, and incomplete action items. This is read-only and does not create a page.
Knowledge tools accept max_pages parameter but no pagination/cursor support in output. Large result sets (100+ pages) risk context window exhaustion. No documented limit enforcement or truncation behavior.
onenote_navigate description lacks clarity on side effects. States 'changes what user sees' but does not explain if this is a read-only UI action or if it affects subsequent tool calls. Ambiguous for agent planning.