OneNote MCP server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ONENOTE_SCOPES | No | Microsoft Graph delegated permissions. Defaults to 'Notes.ReadWrite'. | Notes.ReadWrite |
| ONENOTE_AUTH_FLOW | No | Sign-in method: 'browser' or 'device'. Defaults to 'browser'. | browser |
| ONENOTE_BASE_PATH | No | The OneNote location, e.g., 'me/onenote', 'sites/<site-id>/onenote', or 'groups/<group-id>/onenote'. Defaults to 'me/onenote'. | me/onenote |
| ONENOTE_CACHE_DIR | No | Directory for settings and token cache. Defaults to '~/.onenote-mcp'. | ~/.onenote-mcp |
| ONENOTE_CLIENT_ID | No | The application (client) ID from Microsoft Entra app registration. Required if not set in ~/.onenote-mcp/config.json. | |
| ONENOTE_TENANT_ID | No | The directory (tenant) ID or domain. Defaults to 'common'. | common |
| ONENOTE_MAX_IMAGES | No | Maximum number of images per response. Defaults to 6. | 6 |
| ONENOTE_NO_BROWSER | No | Set to 1 to print the sign-in link instead of opening a browser. | |
| ONENOTE_DOWNLOAD_DIR | No | Folder where downloads are saved. Defaults to '~/Downloads/OneNote MCP'. | ~/Downloads/OneNote MCP |
| ONENOTE_MAX_RESPONSE_IMAGE_BYTES | No | Maximum total bytes of images per response. Defaults to 700000. | 700000 |
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
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| onenote_sign_inA | Checks the Microsoft sign-in. If not signed in, starts sign-in: by default a browser window opens on the user's computer; with device-code sign-in it returns a URL and code. Relay the returned instructions to the user exactly; after they finish, other OneNote tools work. |
| onenote_sign_outB | Removes the cached Microsoft sign-in for this OneNote server. |
| onenote_list_notebooksA | Lists the user's OneNote notebooks with their section groups and sections (IDs included). Start here to find section IDs. |
| onenote_list_sectionsA | Lists sections, optionally within one notebook (including nested section groups) or one section group, optionally filtered by name. |
| onenote_list_pagesA | Lists pages (title, dates, location, ID) in a section, a notebook, or across all notebooks. Filter by title text and last-modified date range. Use for 'what did I write this week' style questions. |
| onenote_search_pagesA | Finds pages whose title or text contains all the query words. Title matches are searched server-side; text matches scan the most recently modified pages in scope (Microsoft Graph has no full-text OneNote search). Narrow with section_id or notebook_id for thorough results. Text inside screenshots is only matched via alt text; open pages with onenote_get_page to read screenshots. |
| onenote_get_pageA | Reads a page as markdown, with screenshots and other images returned as images you can see. Images appear in the text as [Image N] placeholders. Large screenshots are downscaled here; use onenote_get_page_image with a region to zoom in on small text. Set format=html_with_ids to get element IDs for targeted edits with onenote_update_page. |
| onenote_get_page_imageA | Returns one image from a page at high resolution, optionally cropped to a region so small text in big screenshots is legible. Region values are fractions of the image (0-1), e.g. the right half is {x:0.5,y:0,width:0.5,height:1}. |
| onenote_collect_pagesA | Reads many pages at once (text, optionally with images) for summaries and reports, e.g. all pages in a section modified this week. Pages are returned oldest to newest. Either pass page_ids or a scope with filters. |
| onenote_create_pageA | Creates a new page (e.g. a report) in a section. Identify the section by section_id, or by section_name (plus notebook_name if the name is ambiguous). Images: use |
| onenote_update_pageA | Adds or changes content on an existing page. Default appends to the end of the page body. action=prepend adds to the top; insert/replace need a target element id from onenote_get_page with format=html_with_ids (replace overwrites that element). To rename a page use target=title with action=replace and the new title as content. Images: use |
| onenote_create_sectionB | Creates a section in a notebook or section group. |
| onenote_create_notebookB | Creates a new notebook for the signed-in user. |
| onenote_download_resourcesA | Saves original-resolution images and file attachments from a page to the local folder /root/Downloads/OneNote MCP (e.g. to embed screenshots in a Word or PDF report). Returns the saved file paths. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| onenote_report | Gathers notes (text and screenshots) from a notebook or section and turns them into a report. |
| onenote_extract_screenshots | Reads every screenshot on a page and transcribes the text, tables and figures in them. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 14 tools
Each tool maps to a distinct resource and action: listing notebooks/sections/pages, page retrieval (get_page, get_page_image), batch retrieval (collect_pages), creation, updating, searching, and resource download. The closely related read tools (get_page vs collect_pages vs get_page_image) are clearly differentiated by scope and purpose in their descriptions.
All 14 tools follow a uniform onenote_verb_noun snake_case pattern (onenote_list_notebooks, onenote_create_page, onenote_update_page, etc.). No mixing of conventions or casing styles.
14 tools is well within the ideal 3–15 range and each one covers a distinct operation (auth, listing, reading, creating, updating, searching, image zoom, downloads). Nothing feels redundant or padded.
The surface covers the full read/create/update lifecycle for notebooks, sections, and pages, plus search and resource export. However, there are no delete or move/rename operations for notebooks, sections, or pages, which are real gaps, though non-destructive workflows are fully supported.
for local screenshots,