Get the FREE Ultimate OpenClaw Setup Guide →

onenote

MCP server for Microsoft OneNote integration with Claude Desktop

Installation
Run this command in your terminal to add the MCP server to Claude Code.
Run in terminal:
Command
claude mcp add --transport stdio freshsk-onenote-mcp-server node /path/to/onenote-mcp-server/server.js \
  --env AZURE_CLIENT_ID="your-azure-client-id-here"

How to use

This MCP server provides programmatic access to OneNote via the MCP protocol. It exposes tools for reading and creating OneNote content, including listing notebooks, browsing sections, viewing pages, and creating new notebooks, sections, or pages. The server authenticates against Microsoft Graph using the Device Code flow, caches tokens for smoother re-authentication, and implements the full OneNote MCP surface so Claude Desktop or any MCP-compatible client can interact with your notebooks as if they were native items.

To use it, configure Claude Desktop (or your MCP client) with the server entry and your Azure AD Client ID. Once set up, you can issue natural-language or structured commands such as: list my OneNote notebooks, create a new notebook called 'My Ideas', show me the sections in notebook 'Work Notes', create a page titled 'Meeting Notes' in a specific section, or read the content of a page. The available tools expose operations like onenote-read (list_notebooks, list_sections, list_pages, read_content) and onenote-create (create_notebook, create_section, create_page). Each operation requires the relevant IDs (notebookId, sectionId, pageId) when navigating deeper into the hierarchy.

How to install

Prerequisites:

  • Node.js 14.0.0 or higher
  • An Azure AD App Registration with Graph API permissions (Notes.Read, Notes.Create, Notes.ReadWrite, User.Read)
  • Claude Desktop or another MCP client

Step-by-step installation:

  1. Clone the repository:
git clone https://github.com/YOUR_USERNAME/onenote-mcp-server.git
cd onenote-mcp-server
  1. Install dependencies:
npm install
  1. Set up Azure AD App Registration (follow the Setup section of the README):
  • Create an app registration in Azure AD
  • Configure permissions: Notes.Read, Notes.Create, Notes.ReadWrite, User.Read
  • Note the Application (client) ID
  1. Configure Claude Desktop (or MCP client):
  • Add an entry for the MCP server in Claude Desktop config pointing to the server.js path and your Azure Client ID For example:
{
  "mcpServers": {
    "onenote": {
      "command": "node",
      "args": ["/path/to/onenote-mcp-server/server.js"],
      "env": {
        "AZURE_CLIENT_ID": "your-azure-client-id-here"
      }
    }
  }
}
  1. Start the server (adjust path as needed):
node /path/to/onenote-mcp-server/server.js
  1. Test with your MCP client by issuing commands like: list my OneNote notebooks or create a notebook named 'Sample'.

Additional notes

Tips and caveats:

  • The server uses Microsoft Graph via the Device Code flow; ensure AZURE_CLIENT_ID is configured and that the app has the required permissions granted.
  • Token caching helps reduce re-authentication prompts; if you run into authentication issues, you can delete the token cache file (e.g., .mcp-onenote-cache.json) to force re-authentication.
  • Ensure Node.js is accessible in your environment when starting the server.
  • If you see MODULE_NOT_FOUND, run npm install to install dependencies.
  • Do not commit sensitive credentials (Azure Client ID, tokens) to version control; use environment variables or Claude Desktop configuration to manage credentials.

Related MCP Servers

Sponsor this space

Reach thousands of developers