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

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
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, delete the local token cache file, and forget any page text remembered on this computer. 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. Returns readable text including tables (as Markdown), image captions, and the text of any attached PDFs. Pass format="html" for raw XHTML. If the result mentions an image or attachment whose text is unavailable, say so rather than treating the page as complete.

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

TDQS

A4.1/5.0

Scored across 13 tools

Disambiguation5/5

Each tool maps to a distinct action: auth status/start/end, structural outline vs flat lists, and page/section operations are clearly separated. The descriptions for getOutline/listNotebooks/listSections explicitly clarify when each should be used, so an agent should not confuse them.

Naming Consistency4/5

The page and section tools consistently use camelCase verb+Resource (listPages, createPage, deletePage, appendToPage, createSection). The auth tools break that pattern slightly with authStatus, authenticate, and signOut, but the overall naming style remains predictable.

Tool Count5/5

Thirteen tools is well within the ideal range and covers authentication, structure discovery, and page/section operations without unnecessary bloat. The three auth tools are justified by the async sign-in flow, and even the slight overlap between getOutline and the list helpers serves different query needs.

Completeness4/5

Core workflows are covered: authenticate, discover structure, list/search/read/create/append/delete pages, and create sections. Missing full page content replacement and notebook/section deletion are workable gaps, but appendToPage and createSection handle the most common note-taking operations.

Maintenance

ActivityMaintained
ResponsivenessNo issues