Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
XDG_CONFIG_HOMENoOverride the config directory. Tokens are stored at `<dir>/onenote-mcp/tokens.json`.
ONENOTE_MCP_CLIENT_IDNoApplication (client) ID of your Microsoft Entra app registration.
ONENOTE_MCP_HTTP_HOSTNoBind address for the HTTP transport. Defaults to `127.0.0.1`. `--host` wins.127.0.0.1
ONENOTE_MCP_HTTP_PORTNoListen port for the HTTP transport. Defaults to `3000`. `--port` wins.3000
ONENOTE_MCP_TENANT_IDNoTenant ID. Defaults to `common`, which works for both personal and work accounts.common
ONENOTE_MCP_HTTP_TOKENNoShared bearer token for the HTTP transport. Required when `--transport http`.
ONENOTE_MCP_TOKEN_CACHENoVerbatim `tokens.json` contents used to seed the cache on a headless host. Applied only in `--transport http` mode when no cached token exists yet.

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
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_notebooksA

Lists all OneNote notebooks accessible to the signed-in user, including notebook IDs needed for other tools.

list_sectionsA

Lists OneNote sections, optionally scoped to a single notebook by ID. Section IDs are needed by create_page.

list_section_groupsC

Lists OneNote section groups (folders that contain sections and/or other section groups), optionally scoped to a single notebook.

search_pagesA

Searches OneNote pages by full-text query. Returns matching pages with IDs, titles, and parent section/notebook info.

read_pageA

Returns the full content and metadata for a single OneNote page. Defaults to HTML; pass format="markdown" for converted output.

create_notebookB

Creates a new top-level OneNote notebook with the given display name.

create_sectionA

Creates a new section inside the given notebook or section group. Exactly one of notebookId or sectionGroupId must be provided.

create_section_groupA

Creates a new section group inside the given notebook or another section group. Exactly one of notebookId or sectionGroupId must be provided.

create_pageA

Creates a new OneNote page in the given section. Accepts Markdown (default) or HTML; optional attachments upload binary parts referenced from the content via name:<name> URIs.

update_pageA

Applies one or more edits to an existing OneNote page (append, prepend, insert, replace, delete). Targets are body, title, or #<data-id> selectors — find data-id values in the HTML returned by read_page.

delete_pageA

Permanently deletes a OneNote page by ID. There is no undo — confirm with the user before calling.

list_pagesA

Lists pages in a OneNote section, or across every section of a notebook, without needing a search term. Use it to browse what exists and get page IDs. Note: there is no account-wide page listing — Graph rejects it on accounts with many sections, so scope by section or notebook.

find_pagesA

Searches OneNote pages by text and returns matches with page IDs, titles, and where they live. Works section-scoped, notebook-scoped, or across the whole account. This is the working alternative to search_pages, which relies on a Graph search endpoint that rejects requests on this account.

get_notebook_treeA

Maps the OneNote structure: notebooks, the section groups inside them, and every section with its ID. Start here when you need section IDs for list_pages, create_page, or find_pages.

copy_pageA

Copies a page into another section, alongside its original. The source page is left untouched — this never moves or deletes anything.

auth_statusA

Reports which Microsoft account is signed in, the token cache location, and whether the cached token still works. Use it first when a OneNote call fails with an authentication error.

indexA

Maintains a local mirror of the OneNote structure (notebook/section/page names and IDs) so page lookup and search are instant instead of costing a Graph round trip each. Search and status are offline. Sync/rebuild hit Graph and can take minutes on a large account — prefer sync, and scope it with sections when you know what changed.

resolve_pageA

Turns a human description of a page ("今日任务 / 香港", or a title alone) into a real page ID, served from the local index. Use this before reading or editing a page you named rather than identified. Stored IDs go stale when a page is moved, so this verifies against Graph on a miss and repairs the index.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.5/5.0

Scored across 18 tools

Disambiguation3/5

Most tools target distinct resources and actions, but search_pages and find_pages are nearly identical in purpose, with find_pages described as a working alternative to a broken search endpoint. This creates a real selection hazard. Other pairs like list_sections and get_notebook_tree overlap somewhat but are differentiated by scope.

Naming Consistency4/5

The overwhelming majority of tools follow a clear verb_noun snake_case pattern: list_notebooks, create_page, update_page, delete_page, copy_page. Minor deviations exist with auth_status and index, which are nouns rather than verb_noun actions, but the pattern remains predictable and readable.

Tool Count3/5

18 tools is on the heavy side for a single-domain server and includes some redundancy, particularly search_pages/find_pages. The count is still within a usable range, but the set feels slightly bloated due to overlapping search functionality and support tools like index and resolve_page.

Completeness3/5

Page lifecycle coverage is solid: create, read, update, delete, list, search, and copy all exist. However, notebooks, sections, and section groups only support create/list, with no update, delete, or move operations, leaving noticeable structural management gaps. Search also has a redundant/broken path, which suggests incomplete cleanup of the tool surface.

Maintenance

ActivityMaintained
ResponsivenessNo issues