Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ONENOTE_SCOPESNoGraph permissions. Default: Notes.ReadWrite offline_access
ONENOTE_CLIENT_IDNoMicrosoft application ID. Default: built in, if set by the maintainer
ONENOTE_TENANT_IDNoTenant ID: common, consumers, organizations, or a tenant GUID. Default: common
ONENOTE_ALLOW_WRITENoSet to false to disable all write tools. Default: true
ONENOTE_SKIP_DOTENVNoIgnore .env entirely, for predictable config. Default: unset
ONENOTE_TOKEN_CACHENoWhere credentials are cached. Default: OS config dir
ONENOTE_REDIRECT_PORTNoPin the sign-in callback port. Default: random
ONENOTE_DEFAULT_SECTIONNoSection new pages go to when unspecified. Default: unset
ONENOTE_ALLOW_DEVICE_CODENoUse device code flow instead of a browser. Default: false

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
authStatusA

Report whether the user is signed in to Microsoft, which account is cached, and where the token cache lives. Safe to call at any time; never triggers a sign-in prompt.

authenticateA

Begin sign-in to the Microsoft account that owns the OneNote notebooks. Returns immediately with the instruction the user must follow (a browser is opened, or a device code is shown). It does NOT wait for the user to finish -- poll authStatus afterwards to confirm. Always show the user the returned URL and code verbatim.

signOutA

Remove the cached Microsoft account and delete the local token cache file. The user must authenticate again afterwards.

getOutlineA

START HERE for anything structural. Returns every notebook, section group, and section in ONE call, with IDs and readable paths like "Learn / Cooking". Use this instead of chaining listNotebooks then listSections — it is one request instead of several, and it correctly includes sections nested inside section groups.

listNotebooksA

List notebooks only. Prefer getOutline — it returns notebooks AND their sections in the same single call.

listSectionsA

List sections, including those nested inside section groups. Prefer getOutline unless you specifically want a flat list.

listPagesA

List pages, most recently modified first. Pass a section NAME to scope to one section; omit it to list across all sections.

getPageA

Read one page by ID. Returns readable text by default; pass format="html" for the raw XHTML, and includeIds=true if you intend to modify the page afterwards.

searchPagesA

Find pages by title (fast — one request). Set searchContent=true to also scan page bodies. OneNote provides no server-side full-text search, so that fetches candidate pages; it runs them in parallel and stops early once enough matches are found, but it is still much slower than a title search. Pass section to narrow it dramatically.

createPageA

Create a new page. Pass the section by NAME — no lookup needed first. If a default section is configured, section can be omitted entirely.

appendToPageA

Add content to the end (or start) of an existing page without replacing it.

createSectionB

Create a new section inside a notebook.

deletePageA

Permanently delete a page. This cannot be undone -- confirm the page title with the user before calling.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JonEricDelaCruz/onenote-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server