Skip to main content
Glama
OneNote MCP server

OneNote MCP server

by MoshCGV

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ONENOTE_SCOPESNoMicrosoft Graph delegated permissions. Defaults to 'Notes.ReadWrite'.Notes.ReadWrite
ONENOTE_AUTH_FLOWNoSign-in method: 'browser' or 'device'. Defaults to 'browser'.browser
ONENOTE_BASE_PATHNoThe OneNote location, e.g., 'me/onenote', 'sites/<site-id>/onenote', or 'groups/<group-id>/onenote'. Defaults to 'me/onenote'.me/onenote
ONENOTE_CACHE_DIRNoDirectory for settings and token cache. Defaults to '~/.onenote-mcp'.~/.onenote-mcp
ONENOTE_CLIENT_IDNoThe application (client) ID from Microsoft Entra app registration. Required if not set in ~/.onenote-mcp/config.json.
ONENOTE_TENANT_IDNoThe directory (tenant) ID or domain. Defaults to 'common'.common
ONENOTE_MAX_IMAGESNoMaximum number of images per response. Defaults to 6.6
ONENOTE_NO_BROWSERNoSet to 1 to print the sign-in link instead of opening a browser.
ONENOTE_DOWNLOAD_DIRNoFolder where downloads are saved. Defaults to '~/Downloads/OneNote MCP'.~/Downloads/OneNote MCP
ONENOTE_MAX_RESPONSE_IMAGE_BYTESNoMaximum 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

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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 caption for local screenshots, caption for web images (new pages only), or caption to copy image N from another OneNote page into a report.

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 caption for local screenshots, caption for web images, or caption to copy image N from another OneNote page into a report. Web image URLs are not accepted here.

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

NameDescription
onenote_reportGathers notes (text and screenshots) from a notebook or section and turns them into a report.
onenote_extract_screenshotsReads every screenshot on a page and transcribes the text, tables and figures in them.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 14 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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.