onenote-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@onenote-mcplist my notebooks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
OneNote MCP Server
A stdio Model Context Protocol server for Microsoft OneNote. It uses Microsoft Graph delegated permissions and Microsoft device-code authentication.
Requirements
Node.js 20 or newer
A Microsoft account with OneNote access
An MCP client such as Codex
Install
Option 1: Add from the desktop GUI
Open the Codex desktop app, select Plugins, open Create, and select Add marketplace.

Select Add plugin marketplace and enter:
Source:
https://github.com/seanGSISG/onenote-mcp.gitGit ref:
mainSparse paths: leave blank

Select Add marketplace, return to Plugins, and select the Personal tab. If the new marketplace does not appear, completely restart the desktop app and return to Plugins.
Select Sean's OneNote Plugin and choose Install beside Microsoft OneNote.

Restart the desktop app again, open a new task, and ask:
Authenticate with OneNote.
Option 2: Let Codex configure it
Paste this into a Codex desktop task—no clone is required:
Read https://raw.githubusercontent.com/seanGSISG/onenote-mcp/main/AGENTS.md and follow it to install the complete OneNote plugin in the Codex desktop app.
Codex will add this repository as a plugin marketplace, install the complete OneNote plugin, verify its MCP server, and explain when a desktop-app restart or new task is required. Users do not need to clone the repository or edit MCP JSON or TOML files.
Option 3: Install for development
git clone https://github.com/seanGSISG/onenote-mcp.git
cd onenote-mcp
npm install
npm testThe MCP SDK is installed from npm. A separate SDK checkout and build are no longer required.
Advanced: MCP-only configuration
Add this to ~/.codex/config.toml, replacing the path with the absolute path to onenote-mcp.mjs:
[mcp_servers.onenote]
type = "stdio"
command = "node"
args = ["C:/absolute/path/to/onenote-mcp.mjs"]
enabled = true
startup_timeout_sec = 30Restart Codex after changing MCP configuration.
Authentication
Call
authenticationStatus.If unauthenticated, call
authenticate.Open the returned Microsoft device-login URL and enter the returned code. Use
force: trueto replace a stale or unwanted login.Call
authenticationStatusagain to confirm completion.
Authentication starts in the background, so the authenticate tool returns the device code immediately. The delegated access token is stored at ~/.onenote-mcp/access-token.json. Set ONENOTE_TOKEN_PATH to override that location, or supply GRAPH_ACCESS_TOKEN in the server environment. ONENOTE_CLIENT_ID and ONENOTE_TENANT_ID override the default public client and common tenant.
The server requests the delegated Notes.ReadWrite and User.Read scopes.
Tools
Tool | Purpose |
| Check authentication state and expiration |
| Start device-code authentication |
| List up to |
| Get one notebook by exact ID |
| List up to |
| List up to |
| Get page metadata and optionally its HTML |
| Create a titled XHTML page in an exact section |
| Search page titles |
All resource-specific operations use explicit IDs. The server never silently chooses the first notebook, section, or page.
Development
npm run check
npm test
npm auditThe test suite covers token migration and expiration, asynchronous device-code flow, Graph request construction and errors, XHTML title escaping, and a real MCP stdio handshake.
This server cannot be installed
Maintenance
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/seanGSISG/onenote-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server