onenote-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| authenticateA | Start the Microsoft authentication flow using device code. This tool initiates the OAuth 2.0 device code flow for Microsoft Graph API. The user will be provided with a URL and code to complete authentication in their browser. Return FormatConfirmation string: "✅ Authentication successful" or "❌ ..." on failure. Examplesauthenticate() |
| onenote_save_access_tokenA | Save a Microsoft Graph access token for later use. Persists the token to the local token file so subsequent tools can call the Graph API. Return FormatA confirmation string: "✅ Access token saved successfully" or "❌ ..." on failure. Examplesonenote_save_access_token(token="eyJhbGciOi...") # paste a token from az login / Graph explorer |
| onenote_list_notebooksA | List all Microsoft OneNote notebooks accessible to the signed-in account. Return FormatMarkdown string: "📓 Your OneNote Notebooks:" followed by numbered notebooks with ID. Examplesonenote_list_notebooks() |
| onenote_exportA | Back up notebooks to Markdown files (one per page + index). Writes to data/exports//, runs in the background - check onenote_export_status. Return FormatMarkdown string confirming started/already-running. Examplesonenote_export() onenote_export(notebook_id="0-ABC123...") |
| onenote_export_statusA | Show Markdown backup progress (files written, output dir). Return FormatMarkdown string with state, pages done/total, file count, output dir. Examplesonenote_export_status() |
| onenote_get_notebookB | Get details of a specific OneNote notebook. Return FormatMarkdown string with notebook name, ID, sections URL, and section groups URL. Examplesonenote_get_notebook(notebook_id="0-ABC123...") |
| onenote_list_sectionsA | List all sections in a OneNote notebook. Return FormatMarkdown string: "📂 Sections in notebook:" with numbered sections and their page URLs. Examplesonenote_list_sections(notebook_id="0-ABC123...") |
| onenote_list_pagesB | List all pages in a OneNote section. Return FormatMarkdown string: "📄 Pages in section:" with numbered pages, created and modified dates. Examplesonenote_list_pages(section_id="0-SEC123...") |
| onenote_get_pageA | Get the complete HTML content of a OneNote page. Retrieves the full page content including text, formatting, and embedded elements. Return FormatMarkdown string: "📄 Page Content:" with title, ID, timestamps, and the raw HTML body. Examplesonenote_get_page(page_id="0-PG123...") |
| onenote_create_pageA | Create a new page in a OneNote notebook. Return FormatConfirmation string: "✅ Page '' created successfully with ID: Examplesonenote_create_page(notebook_id="0-ABC123...", title="Meeting Notes", content="Notes...") |
| onenote_append_pageA | Append plain text to the end of a OneNote page. Return FormatConfirmation string: "✅ Appended to page Examplesonenote_append_page(page_id="0-PG123...", content="Follow-up note\n\nSecond paragraph") |
| onenote_search_pagesA | Search for pages across all OneNote notebooks. Two modes: 'title' matches page titles via TOC walk (always available); 'fulltext' queries the local FTS index over page bodies (build it first). Return FormatMarkdown string: "🔍 Search Results for '':" with numbered matching pages. Examplesonenote_search_pages(query="quarterly report") onenote_search_pages(query="hiking checklist", mode="fulltext") |
| onenote_recentA | List recently modified pages across all notebooks. The domain-inbox answer to "what changed": TOC walk, newest first. Return FormatMarkdown string with dated page entries (title, notebook/section, id). Examplesonenote_recent() onenote_recent(days=30) |
| onenote_index_startA | Build (or refresh) the local full-text search index. Walks all notebooks and indexes page bodies into SQLite FTS5 (skips unchanged pages). Runs in the background - check onenote_index_status. Return FormatMarkdown string confirming started/already-running. Examplesonenote_index_start() |
| onenote_index_statusA | Show full-text index build progress and coverage. Return FormatMarkdown string with state, pages done/total, indexed page count. Examplesonenote_index_status() |
| onenote_get_notebook_tocA | Generate a table of contents for a OneNote notebook. Creates a comprehensive overview of all sections and pages, useful for navigation. Return FormatMarkdown string: "📚 Table of Contents: " with stats and per-section page lists. Examplesonenote_get_notebook_toc(notebook_id="0-ABC123...") |
| shutdown_serverA | Shut down the onenote-mcp server gracefully. Use when the user or an agent explicitly asks to stop the server process. Return FormatConfirmation string: "✅ Server shutting down...". Examplesshutdown_server() |
| onenote_helpA | List the available OneNote MCP tools and when to use each. Return FormatMarkdown string enumerating the 19 tools with one-line usage notes. Examplesonenote_help() |
| show_notebooks_cardB | Show the user's OneNote notebooks as a rich in-chat card. Return FormatToolResult: PrefabApp card with one row per notebook, plus a plain-text markdown fallback for hosts that do not render apps. Examplesshow_notebooks_card() |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| onenote_triage | Guided triage prompt: find the right notebook, section, or page. ## Return Format Markdown prompt text steering discovery-first navigation. ## Examples onenote_triage() |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| onenote_skill | The onenote-mcp skill - how to use the server effectively. |
TDQS
Scored across 19 tools
Most tools have a clearly distinct resource and action, but there is some overlap: onenote_list_notebooks and show_notebooks_card present the same notebook data in different formats, and onenote_get_notebook_toc overlaps with list_sections/list_pages navigation. The background export/index pairs are kept distinct by their status tools, so ambiguity is limited.
The majority of tools use an onenote_ prefix with verb_noun naming, but authenticate, shutdown_server, and show_notebooks_card lack that prefix, and onenote_recent is not a verb_noun form. This creates mixed conventions that reduce predictability.
With 19 tools the server is slightly heavy for a OneNote integration, but the extra tools cover necessary background export/index status checks plus auth, help, shutdown, and card presentation. The core read/create/search/export surface is reasonably scoped.
The toolset covers reading notebooks, sections, and pages, plus page creation, appending, search, export, and indexing. However, it lacks delete and update/replace operations for pages, sections, or notebooks, and there is no way to create a notebook or section, which are notable lifecycle gaps.