LABSCO SUMMARY
Full read and write over the whole OneNote hierarchy, not just page reading.
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.
What it is
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.
What you get
- 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
Requirements
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.
Setup effort
One command plus credentials — npm install -g mcp-server-onenote, then supply credentials
USE CASES
01
Filing meeting notes where the team already keeps them
Create the page in the right section with HTML structure — headings, lists, a decisions block — instead of pasting plain text.
02
Finding the note you wrote months ago
Search across notebooks, then read the page content in the conversation rather than opening OneNote.
03
Adding to a running page instead of starting a new one
Read the page, then update its content so the log stays in one place.
04
Setting up a notebook structure for a new project
Create the notebook, then the sections it needs, in one pass.
BEFORE YOU INSTALL
What to know first
Requires
- mcp-server-onenote on PATH
- AZURE_TENANT_ID in your environment
- AZURE_CLIENT_ID in your environment
- AZURE_CLIENT_SECRET in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
TERMINAL
npm install -g mcp-server-onenoteMCP Clients
Claude Desktop
CLAUDE DESKTOP · JSON
{
"mcpServers": {
"onenote": {
"command": "mcp-server-onenote",
"env": {
"AZURE_TENANT_ID": "<YOUR_TENANT_ID>",
"AZURE_CLIENT_ID": "<YOUR_CLIENT_ID>",
"AZURE_CLIENT_SECRET": "<YOUR_CLIENT_SECRET>"
}
}
}
}