- Home
- MCP servers
- OneNote
OneNote
- 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.