OneNote

OneNote MCP Server
  • javascript

6

GitHub Stars

javascript

Language

6 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "eshlon-onenotemcp": {
      "command": "node",
      "args": [
        "onenote-mcp.mjs"
      ],
      "env": {
        "AZURE_CLIENT_ID": "YOUR_AZURE_APP_CLIENT_ID_HERE"
      }
    }
  }
}

You can securely connect your Microsoft OneNote data to AI assistants through the OneNote MCP Server. It lets you read, create, edit, search, and manipulate notebooks, sections, and pages from your AI interface, enabling powerful workflows and automation while keeping your data under your control.

How to use

To start using the OneNote MCP Server, run it locally and connect an MCP client (such as Claude Desktop or Cursor) to the server using the provided configuration. Once connected, you can authenticate with Microsoft Graph, list notebooks, search for pages by title, read page content in multiple formats, and perform advanced edits like creating pages, updating content, appending notes, replacing text, and inserting tables from CSV data. Use the authentication flow once to grant access and then perform routine operations as needed.

How to install

Prerequisites you need before installation include Node.js 18 or later, npm (bundled with Node.js), Git, and a Microsoft account with OneNote access.

Clone the repository and install dependencies, then run the server from the project root.

git clone https://github.com/eshlon/onenotemcp
cd onenotemcp
npm install
node onenote-mcp.mjs

Configuration and environment

Configure authentication by providing your Azure Application Client ID. For production or shared use, set AZURE_CLIENT_ID to your Azure app's Application (client) ID. If you skip this, the server will fall back to the Microsoft Graph Explorer’s public Client ID for quick testing.

export AZURE_CLIENT_ID="your-actual-azure-app-client-id"

(On Windows use: set AZURE_CLIENT_ID=your-actual-azure-app-client-id)

## Running the MCP server

Start the server from its root directory. The server will announce that it has started and list the available tool categories.

node onenote-mcp.mjs

## Connecting to an MCP client

Configure your MCP client to load the OneNote MCP Server as a local stdio server. You will provide the command and arguments to run the server locally, and if you are not setting a global AZURE\_CLIENT\_ID, you can supply it in the client configuration.

{ "mcpServers": { "onenote": { "command": "node", "args": ["/full/path/to/onenote-mcp.mjs"], "env": { "AZURE_CLIENT_ID": "YOUR_AZURE_APP_CLIENT_ID_HERE" } } } }


## Available tools

### authenticate

Initiates device code authentication flow with Microsoft Graph to obtain an access token for OneNote data.

### saveAccessToken

Loads and verifies the locally saved access token to confirm authentication status.

### listNotebooks

Lists all OneNote notebooks accessible with the authenticated account.

### searchPages

Searches for pages across notebooks by title; returns matching pages.

### getPageContent

Retrieves the content of a specified page in formats such as text, HTML, or a summary.

### getPageByTitle

Finds a page by its title and retrieves its content in the requested format.

### createPage

Creates a new OneNote page in the first available section with provided title and content.

### updatePageContent

Replaces the entire content of an existing page, with optional title preservation.

### appendToPage

Appends content to an existing page with optional timestamp and separator.

### updatePageTitle

Changes the title of an existing page.

### replaceTextInPage

Finds and replaces text within a page, with an optional case sensitivity setting.

### addNoteToPage

Adds a formatted note or todo to a page with optional position and type.

### addTableToPage

Inserts a formatted table into a page from CSV data, with an optional title and position.
Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational