onenote-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ONENOTE_ACCESS_TOKEN | No | Manual token override (bypasses OAuth) | |
| ONENOTE_OAUTH_CLIENT_ID | No | OAuth client ID | |
| ONENOTE_OAUTH_CLIENT_SECRET | No | OAuth client secret |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list-notebooksA | List all OneNote notebooks accessible to the authenticated user. Returns notebook names, IDs, and metadata. Use this to discover available notebooks before accessing sections or pages. |
| get-notebookA | Get detailed information about a specific OneNote notebook by its ID, including its sections and section groups. Use list-notebooks first to find the notebook ID. |
| list-section-groupsA | List section groups. When notebookId is provided, lists section groups in that notebook. Otherwise lists all section groups across all notebooks. |
| get-section-groupA | Get detailed information about a specific section group, including its sections and nested section groups. |
| list-sectionsA | List sections. Provide notebookId to list sections in a notebook, sectionGroupId to list sections in a section group, or omit both to list all sections across all notebooks. |
| get-sectionA | Get detailed information about a specific section by its ID, including its parent notebook. |
| create-sectionA | Create a new section. Provide notebookId to create in a notebook, or sectionGroupId to create inside a section group. Exactly one parent must be specified. Section names must be unique within the same hierarchy level, max 50 characters, and cannot contain: ? * / : < > | & # ' % ~ |
| list-pagesA | List pages in a specific section. Returns page titles, IDs, and metadata. Always specify a sectionId to avoid errors on accounts with many sections. |
| get-pageA | Get metadata for a specific OneNote page by its ID. Returns title, timestamps, and parent info but NOT the page content. Use get-page-content to retrieve the actual HTML content. |
| get-page-contentA | Get the full HTML content of a OneNote page. The content is returned as HTML which represents the page's text, images, tables, and formatting. Use includeIds=true if you plan to update the page afterward. |
| get-page-previewA | Get a text preview of a OneNote page (up to 300 characters). Useful for quickly scanning page content without fetching the full HTML. |
| create-pageA | Create a new page in a OneNote section. The content should be provided as HTML. The HTML must be valid XHTML with a title in the tag. At minimum, provide a title; the body can be empty for a blank page. |
| update-pageA | Update the content of an existing OneNote page using JSON patch commands. Each patch specifies a target element, an action (append, insert, replace), and content. Before updating, use get-page-content with includeIds=true to get element IDs for targeting. |
| delete-pageA | Permanently delete a OneNote page. This action cannot be undone. The page is immediately and permanently removed. |
| search-pagesA | Search for OneNote pages by keyword. Searches page titles and content (including OCR text from images). Optionally scope the search to a specific section. Returns matching page metadata. |
| get-notebook-hierarchyA | Get the complete hierarchy of all notebooks, section groups, and sections. Returns a tree structure: Notebooks > Section Groups > Sections (recursively for nested section groups). This is the most efficient way to understand the user's OneNote organization. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| summarize-page | Summarize the content of a specific OneNote page. Fetches the page content and generates a structured summary. |
| search-notes | Help the user search across their OneNote notes. Guides through a search workflow using available tools. |
| create-note | Guide the user through creating a new OneNote page. Helps select the target notebook and section, then creates the page. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| notebooks-list | List of all OneNote notebooks accessible to the authenticated user |
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/jacob-hartmann/onenote-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server