Notebooks, sections and pages are all creatable and deletable here, and page bodies go in as HTML, which means an assistant can lay out a structured page rather than dumping a paragraph. The setup cost is Azure rather than OneNote: you register an app, grant Graph permissions and issue a client secret before the first call, and the permission you grant is what bounds everything the server can do.
A TypeScript server that reaches OneNote through the Microsoft Graph API using an Azure app registration, so an assistant can browse and edit your notebooks.
- Notebooks listed, created, inspected and deleted
- Sections inside a notebook listed, created, inspected and deleted
- Pages listed within a section, created with HTML content, read, updated and deleted
- Search across notebooks to find the page you mean before touching it
An Azure app registration with Microsoft Graph permissions for OneNote — Notes.ReadWrite.All, or Notes.Read.All if you only want reading — and a client secret. Three environment variables carry it: AZURE_TENANT_ID, AZURE_CLIENT_ID and AZURE_CLIENT_SECRET. Published to npm as mcp-server-onenote and launched with npx.
One command plus a key — npm install -g mcp-server-onenote, then supply credentials
