# How to connect Microsoft OneNote to Claude Cowork

```json
{
  "title": "How to connect Microsoft OneNote to Claude Cowork",
  "toolkit": "Microsoft OneNote",
  "toolkit_slug": "onenote",
  "framework": "Claude Cowork",
  "framework_slug": "claude-cowork",
  "url": "https://composio.dev/toolkits/onenote/framework/claude-cowork",
  "markdown_url": "https://composio.dev/toolkits/onenote/framework/claude-cowork.md",
  "updated_at": "2026-06-18T09:42:34.332Z"
}
```

## Introduction

Cowork is Anthropic's AI agent for knowledge work. Think of it as Claude Code for everything else. It works autonomously with your computer, local files, and applications to accomplish complex tasks.
This guide walks you through the easiest and most secure way to connect your Microsoft OneNote account to Cowork via Composio Connect, enabling it to create meeting notes in Work notebook, find pages mentioning quarterly planning, organize research notes into sections, and more such actions on your behalf without compromising your account security.

## Also integrate Microsoft OneNote with

- [Codex](https://composio.dev/toolkits/onenote/framework/codex)

## Connect Microsoft OneNote to Claude Cowork

### Connecting Microsoft OneNote to Claude Cowork
1. Open Customize
In Claude Desktop, click Customize in the left sidebar, then select Connectors and click the + icon at the top.
2. Add the Composio MCP server
Click Add custom connector and paste in the Composio MCP server URL:

```bash
https://connect.composio.dev/mcp
```

## What is Claude Cowork?

Claude Cowork is Anthropic's agent for general knowledge work. It can use your computer, files, and connected applications to complete longer-running tasks across your work tools.
With Composio Connect, Cowork can securely access apps like Microsoft OneNote through MCP without you sharing account credentials directly with the agent.

## What is the Microsoft OneNote MCP server, and what's possible with it?

The Microsoft OneNote MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Microsoft OneNote account. It provides structured and secure access so your agent can perform Microsoft OneNote operations on your behalf.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `ONENOTE_COPY_ONENOTE_GROUP_NOTEBOOK` | Copy notebook in group | Copies a OneNote notebook to the Notebooks folder in the destination Documents library. The notebook is copied asynchronously. This action initiates the copy operation and returns a 202 Accepted response with an Operation-Location header. Use the OnenoteOperationGet action to poll the Operation-Location endpoint to check the status of the copy operation until it completes. Use this action when you need to duplicate a notebook within a Microsoft 365 group, or copy it to a different group's documents library. The copied notebook's folder is created in the destination Documents library if it doesn't exist. |
| `ONENOTE_COPY_ONENOTE_SITE_NOTEBOOK` | Copy notebook in site | Copies a OneNote notebook to the destination site in the SharePoint documents library. Use this action when you need to duplicate a notebook within a SharePoint site, or copy it to a different site's documents library. The copied notebook's folder is created in the destination documents library if it doesn't exist. This is an asynchronous operation — the API returns a 202 Accepted response with an Operation-Location header. Poll the provided URL to check whether the copy has completed. The copied notebook becomes available at the destination site once the operation succeeds. |
| `ONENOTE_COPY_SECTION_TO_NOTEBOOK2` | Copy section to notebook (site context) | Copies a OneNote section to a specific notebook within a SharePoint site. Use this action when you need to duplicate an existing OneNote section into a different notebook within the same SharePoint site. The operation is asynchronous and returns an Operation-Location header that should be polled to get the final result. This action is irreversible once the copy operation is initiated. |
| `ONENOTE_COPY_SECTION_TO_NOTEBOOK_FOR_USER2` | Copy section to notebook (user) | Copies a OneNote section to a specific notebook for a specified user. Use this action when you need to duplicate an existing OneNote section into a different notebook under a specific user's account. The operation is asynchronous and returns an Operation-Location header that should be polled to get the final result. This action is irreversible once the copy operation is initiated. |
| `ONENOTE_COPY_SECTION_TO_SECTION_GROUP` | Copy group section to section group | Copies a OneNote section from a Microsoft 365 group's notebook into another section group. Use this action when you need to duplicate an existing OneNote section that lives in a Microsoft 365 group's notebook into a different section group. The operation is asynchronous and returns an Operation-Location header that should be polled to get the final result. This action is irreversible once the copy operation is initiated. |
| `ONENOTE_COPY_SECTION_TO_SECTION_GROUP_FOR_USER` | Copy section to section group (user) | Copies a OneNote section to a specific section group for a specified user. Use this action when you need to duplicate an existing OneNote section into a different section group under a specific user's account. The operation is asynchronous and returns an Operation-Location header that should be polled to get the final result. This action is irreversible once the copy operation is initiated. |
| `ONENOTE_COPY_SITE_PAGE_TO_SECTION3` | Copy site page to section | Copies a OneNote page from a SharePoint site to a destination section. Use this action when you need to duplicate a OneNote page into a different section within the same or a different SharePoint site's notebook. The operation is asynchronous and returns a 202 Accepted response with an Operation-Location header. Poll that endpoint to determine when the copy completes and get the result of the operation. This is an asynchronous operation — the API returns a 202 Accepted response with an Operation-Location header. Poll the provided URL to check whether the copy has completed. |
| `ONENOTE_COPY_USER_PAGE_TO_SECTION` | Copy user page to section | Copy a OneNote page from a user's notebook to a specified section. Use this action when you need to duplicate a OneNote page into a different section within a user's Microsoft 365 account. This is an asynchronous operation that returns a 202 Accepted response with an Operation-Location header. Poll that endpoint to determine when the copy completes and get the result of the operation. The page is identified by its full path through the notebook's hierarchy. |
| `ONENOTE_COUNT_NOTEBOOKS_SECTION_GROUPS_SECTIONS` | Count notebook section group sections | Gets the count of OneNote sections within a section group in a user's notebook. Use this action when you need to quickly determine the number of sections in a section group without retrieving the full list of section objects. This is a read-only operation. |
| `ONENOTE_COUNT_SITE_NOTEBOOK_SECTION_GROUPS_SECTIONS` | Count site notebook section group sections | Gets the count of sections within a OneNote section group in a SharePoint site notebook. Use this action when you need to quickly determine the number of sections in a section group without retrieving the full list of section objects. Microsoft Graph requires the `ConsistencyLevel: eventual` header when using the `$count=true` query parameter on OneNote endpoints. |
| `ONENOTE_CREATE_GROUP_NOTEBOOK` | Create group notebook | Creates a new OneNote notebook within a Microsoft 365 group. Use this action when you need to create a new notebook for storing notes within a specific Microsoft 365 group. The notebook will be owned by the specified group and accessible to all members of that group with appropriate permissions. Required permissions: Notes.Create (least privileged), Notes.ReadWrite, or Notes.ReadWrite.All for the group. |
| `ONENOTE_CREATE_GROUP_PAGES` | Create group OneNote page | Creates a new OneNote page in the default section of the default notebook for a Microsoft 365 group. Use this action when you need to programmatically create a new page in a group's OneNote notebook. The page content must be provided as HTML. The page will be created in the default section of the default notebook unless a specific section name is provided via the sectionName query parameter. |
| `ONENOTE_CREATE_GROUP_SECTION_GROUPS_SECTIONS` | Create section in section group | Creates a new OneNote section within a specified section group of a Microsoft 365 group. Use this action when you need to add a new section to organize OneNote pages within a section group's hierarchy within a group. The section name must be unique within the same hierarchy level, cannot exceed 50 characters, and cannot contain the characters: ?*/:\|&#''%~. This action is idempotent — calling it multiple times with the same display name may create duplicate sections depending on the API's handling of unique-name constraints. |
| `ONENOTE_CREATE_ME_NOTEBOOKS` | Create user notebook | Creates a new OneNote notebook for the signed-in user. Use this action when you need to create a new personal notebook to organize notes. The notebook will be created in the user's default OneDrive for Business location. Notebook names must be unique and cannot exceed 128 characters or contain special characters (?*\\/:\|&'""). Returns the full created notebook object including the server-assigned ID and URLs for accessing sections. |
| `ONENOTE_CREATE_ME_SECTION_GROUPS_SECTIONS` | Create section in user's section group | Creates a new OneNote section within a specified section group of a notebook for the signed-in user. Use this action when you need to add a new section to organize OneNote pages within a user's section group hierarchy. The section name must be unique within the same hierarchy level, cannot exceed 50 characters, and cannot contain the characters: ?*/:\|&#''%~. This action is idempotent — calling it multiple times with the same display name may create duplicate sections depending on the API's handling of unique-name constraints. |
| `ONENOTE_CREATE_ME_SECTIONS_PAGES` | Create OneNote page in section | Creates a new OneNote page in a specific section for the signed-in user. Use this action when you need to create a new page within a specific section of the user's OneNote notebook. The page content must be provided as HTML. The action constructs a complete HTML document including the title and optional creation timestamp in the meta tag. To include images or attachments, provide the full HTML with external image URLs, or use a multipart request approach. This action is idempotent - creating multiple pages with the same title creates separate pages. |
| `ONENOTE_CREATE_ONENOTE_GROUP_NOTEBOOKS_SECTION_GROUPS` | Create section group in group notebook | Creates a new section group within a OneNote notebook that belongs to a Microsoft 365 group. Use this action when you need to organize sections inside a group notebook by creating a new top-level section group to hold related sections together. The displayName must be 50 characters or fewer and cannot contain the characters ? * / : \| & # ' % ~. Section group names must be unique within the same hierarchy level in the notebook. |
| `ONENOTE_CREATE_SITE_NOTEBOOKS_SECTIONS` | Create section in site notebook | Creates a new OneNote section within a specified notebook in a SharePoint site. Use this action when you need to add a new section to organize OneNote pages within a notebook that belongs to a SharePoint site. The section name must be unique within the same hierarchy level, cannot exceed 50 characters, and cannot contain the characters: ?*/:\|&#''%~. This action is available in the following national cloud deployments: Global service only. Required permissions: Notes.Create (delegated/personal account), Notes.ReadWrite.All (application). |
| `ONENOTE_CREATE_USER_NOTEBOOKS_SECTIONS` | Create section in user notebook | Creates a new OneNote section within a specified notebook for a specific user. Use this action when you need to add a new section to organize OneNote pages within a notebook that belongs to a specific user. The section name must be unique within the same hierarchy level, cannot exceed 50 characters, and cannot contain the characters: ?*/:\|&#''%~. Returns the full created section object including the server-assigned ID. |
| `ONENOTE_CREATE_USER_PAGES` | Create user OneNote page | Creates a new OneNote page in the default section of the default notebook for a specific user. Use this action when you need to programmatically create a new page in a user's OneNote notebook. The page content must be provided as HTML. The page will be created in the default section of the default notebook unless a specific section name is provided via the sectionName query parameter. |
| `ONENOTE_CREATE_USER_SECTION_GROUPS_SECTIONS` | Create section in user section group | Creates a new OneNote section within a specified section group for a specific user. Use this action when you need to add a new section to organize OneNote pages within a section group's hierarchy for a specific user's notebook. The section name must be unique within the same hierarchy level, cannot exceed 50 characters, and cannot contain the characters: ?*/:\|&#''%~. This action is idempotent — calling it multiple times with the same display name may create duplicate sections depending on the API's handling of unique-name constraints. |
| `ONENOTE_CREATE_USER_SECTIONS_PAGES4` | Create user section page | Creates a new OneNote page in a specific section of a user's notebook. Use this action when you need to create a new page directly in a section within a user's OneNote notebook. The page content must be provided as valid HTML with proper structure (html, head, and body tags). This action requires the Content-Type header to be set to text/html for the request body. This action is idempotent — calling it multiple times creates separate pages. |
| `ONENOTE_DELETE_ONENOTE_GROUP_SECTION_GROUP_PAGE_CONTENT` | Delete page content from section group section | Deletes the HTML content of a OneNote page within a section in a section group in a Microsoft 365 group's OneNote workspace. This action is irreversible — the page content will be permanently deleted once removed. Use this action when you need to clear the content of a specific OneNote page within a section group hierarchy in a Microsoft 365 group. |
| `ONENOTE_DELETE_ONENOTE_GROUP_SECTIONS_PAGES2` | Delete OneNote page from section | Delete a specific OneNote page from a section within a notebook in a group. Use this action when you need to remove a OneNote page permanently from a group's notebook section. This action is irreversible - once deleted, the page cannot be recovered. |
| `ONENOTE_DELETE_SITE_PAGES` | Delete OneNote page from site | Deletes a OneNote page from a SharePoint site. Use this action when you need to remove a OneNote page permanently from a SharePoint site's OneNote workspace. This action is irreversible - once deleted, the page and all its content cannot be recovered. |
| `ONENOTE_DELETE_USER_ONENOTE_SECTIONS_PAGES` | Delete user OneNote page from section | Deletes a OneNote page from a section within a section group in a user's notebook. This action is irreversible — the page and all its content will be permanently deleted once removed. Use this action when you need to remove an unwanted page from a section in a user's OneNote notebook. |
| `ONENOTE_DELETE_USER_PAGES` | Delete OneNote page for user | Deletes a OneNote page from a user's OneNote workspace. This action is irreversible — the page and all its content will be permanently deleted once removed. Use this action when you need to remove an unwanted OneNote page from a user's notebook that has been shared with the current user. |
| `ONENOTE_GET_GROUP_SECTIONS` | Get a OneNote section from a group | Retrieves a specific OneNote section from a Microsoft 365 group. Use this action when you need to fetch metadata or details for a single OneNote section by specifying the group ID and section ID. This action supports OData query parameters for selecting specific properties and expanding relationships like parentNotebook or parentSectionGroup. |
| `ONENOTE_GET_ME_ONENOTE_RESOURCES_VALUE` | Get OneNote resource content by ID | Retrieves the binary content of a specific OneNote resource using its ID. Use this action when you need to fetch the raw binary content of an image, file attachment, or other embedded resource from a OneNote page in the signed-in user's notebooks. The resource is identified by its unique resource_id, which can be obtained from page content URLs. Note: Binary content is returned as-is; images and files may need additional processing (e.g., base64 decoding or writing to a file) depending on your use case. |
| `ONENOTE_GET_ME_SECTION_PAGE_CONTENT` | Get OneNote page content from section | Retrieves the HTML content of a specific OneNote page from a section for the signed-in user. Use this action when you need to fetch the full HTML content of a OneNote page within a specific section. This endpoint provides access to page content for processing, rendering, or exporting page data. The returned HTML includes text, images, and other embedded content references. This action is read-only and does not modify any data. |
| `ONENOTE_GET_NOTEBOOK_FROM_WEB_URL` | Get notebook from web URL | Retrieves a OneNote notebook by using its web URL path. Use this action when you have the SharePoint or OneDrive URL of a notebook and need to retrieve its properties and metadata. The webUrl parameter accepts both standard HTTPS URLs and OneNote protocol URLs with the 'onenote:' prefix. This API is available in the following national cloud deployments: Global service only. Required permissions: Notes.Create (delegated) or Notes.Read.All (application). |
| `ONENOTE_GET_NOTEBOOK_SECTION_GROUP` | Get notebook section group | Retrieves a specific section group from a OneNote notebook within a Microsoft 365 group. Use this action when you need to get details about a specific section group, including its name, creation/modification timestamps, and links to its sections and nested section groups. |
| `ONENOTE_GET_ONENOTE_GROUP_OPERATIONS` | Get group OneNote operation status | Retrieves the status of a long-running OneNote operation for a group. Use this action when you need to check whether a copy or sync operation (e.g., CopyNotebook, CopyToNotebook, CopyToSectionGroup, CopyToSection) has completed, failed, or is still in progress. |
| `ONENOTE_GET_ONENOTE_GROUP_SECTIONS_PAGES` | Get a OneNote page from a section group section | Retrieves a specific OneNote page from a section within a section group in a Microsoft 365 group's notebook. Use this action when you need to fetch metadata or details for a single OneNote page by navigating through its parent group, notebook, section group, and section hierarchy. |
| `ONENOTE_GET_ONENOTE_SITE_OPERATIONS` | Get site OneNote operation status | Retrieves the status of a long-running OneNote operation for a SharePoint site. Use this action when you need to check whether a copy or sync operation (e.g., CopyNotebook, CopyToNotebook, CopyToSectionGroup, CopyToSection) has completed, failed, or is still in progress for a site. |
| `ONENOTE_GET_ONENOTE_USER_PAGE_CONTENT` | Get OneNote page content for user | Gets the HTML content of a specific OneNote page for a user. Use this action when you need to retrieve the actual HTML content of a specific OneNote page for reading, processing, or displaying page content. The action supports the includeIDs query parameter to include element IDs in the HTML, which is useful when preparing content for page updates via the PATCH endpoint. |
| `ONENOTE_GET_PAGE` | Get a OneNote page | Retrieves metadata and properties of a specific OneNote page from the authenticated user's notebooks. Use this action when you need to fetch details about a OneNote page by its ID without navigating the full notebook/section hierarchy. This returns page metadata including title, creation date, modification date, and optional expanded parent relationships. For retrieving the HTML content of a page, use the dedicated page content endpoint instead. |
| `ONENOTE_GET_RECENT_NOTEBOOKS` | Get recent notebooks | Retrieves a list of recently accessed OneNote notebooks for the signed-in user. Use this action when you need to display recently accessed notebooks, provide quick access to notebooks the user has been working with, or build a recent notebooks feature. The notebooks are returned in order of most recent access. Set includePersonalNotebooks to true to include notebooks owned by the user, or false to exclude them. |
| `ONENOTE_GET_SECTION` | Get a OneNote section by ID | Retrieves a specific OneNote section by its ID from the current user's OneNote. Use this action when you need to fetch metadata or details for a single OneNote section by specifying only the section ID, without requiring additional context like group, user, or site IDs. This action supports OData query parameters for selecting specific properties and expanding relationships like parentNotebook or parentSectionGroup. |
| `ONENOTE_GET_SITE_ONENOTE_PAGES` | Get OneNote page from site | Retrieves a specific OneNote page from a SharePoint site. Use this action when you need to fetch metadata or details for a single OneNote page by its page identifier within a SharePoint site. This action supports optional OData query parameters to select specific properties or expand related entities like parentSection and parentNotebook. Note: This action is read-only and does not modify any data. |
| `ONENOTE_GET_SITE_PAGES_PREVIEW` | Get site notebook page preview | Retrieves a text preview of a specific OneNote page from a section within a section group in a SharePoint site-hosted notebook. Use this action when you need to quickly get the content preview of a OneNote page from a site-hosted notebook without fetching the full page content. The preview returns a text snippet of the page's content. This action is read-only and does not modify any data. |
| `ONENOTE_GET_SITE_SECTIONS` | Get a OneNote section from a site | Retrieves a specific OneNote section from a SharePoint site. Use this action when you need to fetch metadata or details for a single OneNote section by specifying the site ID and section ID. This action supports OData query parameters for selecting specific properties and expanding relationships like parentNotebook or parentSectionGroup. |
| `ONENOTE_GET_SITE_SECTIONS_PAGES` | Get OneNote page from site section group section | Retrieves a specific OneNote page from a section within a section group in a SharePoint site notebook. Use this action when you need to fetch metadata or details for a single OneNote page by navigating through its parent site, notebook, section group, and section hierarchy. This is useful for retrieving page information from deeply nested notebook structures within SharePoint sites. |
| `ONENOTE_GET_USER_NOTEBOOK` | Get user notebook | Retrieves the properties and relationships of a OneNote notebook by ID for a specific user. Use this action when you need to fetch details about a specific notebook belonging to a user, including its display name, sharing status, section URLs, and the user's role on the notebook. Supports OData $select and $expand query parameters to customize the response. |
| `ONENOTE_GET_USER_PAGES` | Get a OneNote page from user | Retrieves a specific OneNote page from a user's OneNote notebooks. Use this action when you need to fetch metadata or details for a single OneNote page directly by page ID and user ID. This is useful for retrieving page information without navigating through the full notebook/section hierarchy. The default response expands the parentSection relationship and selects its id, name, and self properties. |
| `ONENOTE_GET_USER_PARENT_SECTION_GROUP2` | Get parent section group from user section | Retrieves the parent section group of a OneNote section within a user's notebook. Use this action when you need to navigate up the OneNote hierarchy from a section to its parent section group, for example to determine which section group contains a specific section. |
| `ONENOTE_LIST_GROUP_NOTEBOOKS` | List group notebooks | List OneNote notebooks owned by a Microsoft 365 group or Teams team. Use this with a group or team ID, including IDs returned by List joined teams. |
| `ONENOTE_LIST_GROUP_NOTEBOOK_SECTION_GROUPS` | List notebook section groups | Retrieves a list of section groups from the specified notebook within a Microsoft 365 group. Use this action when you need to list all section groups in a group-owned OneNote notebook to understand its structure or to find a specific section group. |
| `ONENOTE_LIST_GROUP_NOTEBOOK_SECTION_PAGES` | List pages from a group notebook section | Lists all OneNote pages from a specific section within a notebook in a Microsoft 365 group. Use this action when you need to retrieve all pages from a known section in a group notebook. This action accesses pages directly through the section path without going through section groups. |
| `ONENOTE_LIST_GROUP_SECTION_GROUPS_SECTIONS` | List section group sections | Lists all OneNote sections from a specific section group within a Microsoft 365 group's OneNote. Use this action when you need to retrieve the sections contained within a section group in a group-owned OneNote notebook. Supports pagination and filtering via OData query parameters. This is a read-only operation that retrieves existing sections without modifying any data. |
| `ONENOTE_LIST_JOINED_TEAMS` | List joined teams | List Microsoft Teams that a user is a direct member of. Use this to get team IDs, which are also Microsoft 365 group IDs, before listing group-owned OneNote notebooks. |
| `ONENOTE_LIST_ME_ONENOTE_SECTIONS_PAGES4` | List pages in section | Retrieves a list of OneNote pages from a specific section for the current user. Use this action when you need to retrieve all pages from a specific section in the current user's OneNote notebook. This action supports pagination, filtering, sorting, and relationship expansion via OData query parameters. The default query returns the top 20 pages ordered by lastModifiedTime descending. Note: This action is read-only and does not modify any data. |
| `ONENOTE_LIST_ONENOTE_GROUP_PAGES` | List group OneNote pages | Lists all OneNote pages from a Microsoft 365 group. Use this action when you need to retrieve all OneNote pages within a Microsoft 365 group. Supports pagination via the page_size parameter. The default page size is 25, and the maximum is 100. Results are ordered by lastModifiedDateTime descending by default. |
| `ONENOTE_LIST_ONENOTE_GROUP_SECTION_GROUPS_SECTION_GROUPS2` | List group section group section groups | Lists all section groups from a specified parent section group within a Microsoft 365 group's OneNote notebook. Use this action when you need to retrieve the nested section groups within a section group in a group context to navigate the OneNote notebook hierarchy. This action supports OData query parameters for filtering, sorting, pagination, and expanding related entities. |
| `ONENOTE_LIST_ONENOTE_GROUP_SECTIONS_PAGES4` | List pages from a group section | Lists all OneNote pages from a specific section in a Microsoft 365 group. Use this action when you need to retrieve all pages from a known section in a group notebook without specifying the notebook ID. This action supports pagination, filtering, sorting, and relationship expansion via OData query parameters. Note: This action is read-only and does not modify any data. |
| `ONENOTE_LIST_SITE_NOTEBOOKS` | List site notebooks | List OneNote notebooks stored in a SharePoint site. Use this after resolving a SharePoint site ID from a site name or URL when the user asks for notebooks in a SharePoint site. |
| `ONENOTE_LIST_SITE_NOTEBOOK_SECTION_GROUPS` | List site notebook section groups | Retrieves a list of section groups from the specified notebook within a SharePoint site. Use this action when you need to list all section groups in a SharePoint site-owned OneNote notebook to understand its structure or to find a specific section group. The default sort order is name ascending. The default query expands parentNotebook and selects its id, displayName, and self properties. |
| `ONENOTE_LIST_SITE_PAGES_CONTENT` | Get OneNote page content from SharePoint site | Retrieves the HTML content of a specific OneNote page within a SharePoint site. Use this action when you need to fetch the full HTML content of a OneNote page from a SharePoint site for processing, rendering, or exporting page data. This endpoint provides direct access to page content without requiring notebook or section context. Returns the raw HTML content of the page, including text, images, and other embedded content references. Note: This action is read-only and does not modify any data. |
| `ONENOTE_LIST_SITE_SECTIONS` | List site sections | Retrieves a list of OneNote sections from a SharePoint site. Use this action when you need to list all OneNote sections within a SharePoint site's OneNote notebook to understand its structure or to find a specific section. This is a read-only operation that retrieves existing sections without modifying any data. Supports OData query parameters for filtering, sorting, pagination, and property expansion. The default sort order is name ascending. The default query expands parentNotebook and selects its id, displayName, and self properties. |
| `ONENOTE_LIST_USER_NOTEBOOKS` | List user notebooks | Lists all OneNote notebooks accessible by a specific user. Use this action when you need to retrieve the available notebooks for a user, display notebook listings, or browse notebooks that are owned by or shared with a specific user. Supports OData query parameters for filtering, sorting, and pagination. Note: The user_id can be a GUID or a user principal name (UPN). Use 'me' to reference the signed-in user. |
| `ONENOTE_LIST_USER_NOTEBOOK_SECTIONS` | List user notebook sections | Lists all OneNote sections from a specified notebook belonging to a user. Use this action when you need to retrieve all sections within a notebook that is owned by or accessible to a specific user. Supports OData query parameters for filtering, sorting, and pagination. Note: The user_id can be a GUID or user principal name (UPN). Use 'me' to reference the signed-in user. The default sort order is by display name ascending. This is a read-only operation. |
| `ONENOTE_RESOLVE_SITE_BY_URL` | Resolve SharePoint site by URL | Resolve a SharePoint site URL or hostname and path to a Microsoft Graph site resource. Use this when the user provides a SharePoint URL and a site ID is needed for OneNote notebook discovery. |
| `ONENOTE_SITES_SEARCH` | Search SharePoint sites | Search SharePoint sites available through Microsoft Graph. Use this to find a site ID from a site name or keyword before listing site-hosted OneNote notebooks. Microsoft Graph site search does not support $count; page only with returned @odata.nextLink URLs. |
| `ONENOTE_UPDATE_ME_PAGE_CONTENT` | Update my OneNote page content | Update the content of a OneNote page for the signed-in user. Sends a PATCH request with patch content commands to modify the HTML structure of a OneNote page. Supports appending children, inserting siblings, replacing elements, prepending content, and deleting elements. Use this action when you need to update or modify the content of an existing OneNote page owned by the signed-in user, such as adding new paragraphs, inserting images, modifying lists, or replacing/removing existing elements. This action is idempotent for replace, append, prepend, and insert operations, but delete operations are irreversible — deleted elements cannot be recovered once removed. |
| `ONENOTE_UPDATE_ME_SECTIONS` | Update my OneNote section | Updates the navigation property sections in me. Use when you need to modify properties of an existing OneNote section, such as renaming it, within the current user's notebooks. This action uses a PATCH request to update the section entity at the specified path. Use this action when you need to update a specific OneNote section owned by the authenticated user, such as changing its display name. This is an idempotent operation that modifies the specified properties while preserving all other existing values. Note: Only the displayName property can be updated via this endpoint. Other properties like isDefault, createdDateTime, etc. are read-only. |
| `ONENOTE_UPDATE_ONENOTE_PAGE_CONTENT` | Update OneNote page content | Update the content of a OneNote page within a Microsoft 365 group using HTML patch commands. Use this action when you need to modify the content of an existing OneNote page, such as replacing text, inserting new content, or appending elements. The action supports multiple patch commands in a single request. The API returns 204 No Content on success, meaning no JSON response body is returned. |
| `ONENOTE_UPDATE_SITE_NOTEBOOKS_SECTIONS` | Update section in site notebook | Updates a OneNote section within a notebook in a SharePoint site. Use this action when you need to modify properties of an existing section, such as renaming it. This action uses a PATCH request to update the section entity at the specified path within the site's notebook hierarchy. Note: Only the displayName property of a section can be updated via this endpoint. Other properties like createdDateTime, isDefault, etc. are read-only. |
| `ONENOTE_UPDATE_SITE_PAGES_CONTENT` | Update site OneNote page content | Update the content of a OneNote page within a SharePoint site. Sends a PATCH request with patch content commands to modify the HTML structure of a OneNote page. Supports appending children, inserting siblings, replacing elements, prepending content, and deleting elements. Use this action when you need to update or modify the content of an existing OneNote page within a SharePoint site, such as adding new paragraphs, inserting images, modifying lists, or replacing/removing existing elements. This action is idempotent for replace, append, prepend, and insert operations, but delete operations are irreversible — deleted elements cannot be recovered once removed. |
| `ONENOTE_UPDATE_SITE_SECTION_GROUPS_SECTIONS` | Update site section group section | Updates a OneNote section within a section group in a SharePoint site notebook. Use this action when you need to modify properties of an existing OneNote section, such as updating its display name. This action uses a PATCH request to update the section entity at the specified path within the SharePoint site's notebook hierarchy. Note: Only the displayName property can be updated via this endpoint. Other properties are read-only. |
| `ONENOTE_UPDATE_USER_NOTEBOOKS_SECTIONS` | Update section in user notebook | Updates a OneNote section within a user's notebook. Use this action when you need to modify properties of an existing OneNote section, such as renaming it, for a specific user identified by their Microsoft Graph user ID. This action uses a PATCH request to update the section entity at the specified path within the user's notebook hierarchy. Note: Only the displayName property can be updated via this endpoint. Other properties like isDefault, createdDateTime, etc. are read-only. |
| `ONENOTE_VALIDATE_CREDENTIAL` | Validate OneNote credentials | Validates OneNote API credentials by attempting to access the user's notebooks. Use this action when you need to verify that the provided authentication token has valid permissions to access Microsoft OneNote. This action makes a lightweight API call to confirm the credentials work before performing other operations. |

## Supported Triggers

None listed.

## Creating MCP Server - Stand-alone vs Composio SDK

The Microsoft OneNote MCP server connects Claude Cowork to your Microsoft OneNote account through Composio. Once connected, Cowork can use the available Microsoft OneNote tools and triggers to complete tasks on your behalf.

## Complete Code

None listed.

## How to build Microsoft OneNote MCP Agent with another framework

- [Codex](https://composio.dev/toolkits/onenote/framework/codex)

## Related Toolkits

- [Google Sheets](https://composio.dev/toolkits/googlesheets) - Google Sheets is a cloud-based spreadsheet tool for real-time collaboration and data analysis. It lets teams work together from anywhere, updating information instantly.
- [Notion](https://composio.dev/toolkits/notion) - Notion is a collaborative workspace for notes, docs, wikis, and tasks. It streamlines team knowledge, project tracking, and workflow customization in one place.
- [Airtable](https://composio.dev/toolkits/airtable) - Airtable combines the flexibility of spreadsheets with the power of a database for easy project and data management. Teams use Airtable to organize, track, and collaborate with custom views and automations.
- [Asana](https://composio.dev/toolkits/asana) - Asana is a collaborative work management platform for teams to organize and track projects. It streamlines teamwork, boosts productivity, and keeps everyone aligned on goals.
- [Google Tasks](https://composio.dev/toolkits/googletasks) - Google Tasks is a to-do list and task management tool integrated into Gmail and Google Calendar. It helps you organize, track, and complete tasks across your Google ecosystem.
- [Linear](https://composio.dev/toolkits/linear) - Linear is a modern issue tracking and project planning tool for fast-moving teams. It helps streamline workflows, organize projects, and boost productivity.
- [Jira](https://composio.dev/toolkits/jira) - Jira is Atlassian’s platform for bug tracking, issue tracking, and agile project management. It helps teams organize work, prioritize tasks, and deliver projects efficiently.
- [Clickup](https://composio.dev/toolkits/clickup) - ClickUp is an all-in-one productivity platform for managing tasks, docs, goals, and team collaboration. It streamlines project workflows so teams can work smarter and stay organized in one place.
- [Monday](https://composio.dev/toolkits/monday) - Monday.com is a customizable work management platform for project planning and collaboration. It helps teams organize tasks, automate workflows, and track progress in real time.
- [Addressfinder](https://composio.dev/toolkits/addressfinder) - Addressfinder is a data quality platform for verifying addresses, emails, and phone numbers. It helps you ensure accurate customer and contact data every time.
- [Agiled](https://composio.dev/toolkits/agiled) - Agiled is an all-in-one business management platform for CRM, projects, and finance. It helps you streamline workflows, consolidate client data, and manage business processes in one place.
- [Ascora](https://composio.dev/toolkits/ascora) - Ascora is a cloud-based field service management platform for service businesses. It streamlines scheduling, invoicing, and customer operations in one place.
- [Basecamp](https://composio.dev/toolkits/basecamp) - Basecamp is a project management and team collaboration tool by 37signals. It helps teams organize tasks, share files, and communicate efficiently in one place.
- [Beeminder](https://composio.dev/toolkits/beeminder) - Beeminder is an online goal-tracking platform that uses monetary pledges to keep you motivated. Stay accountable and hit your targets with real financial incentives.
- [Boxhero](https://composio.dev/toolkits/boxhero) - Boxhero is a cloud-based inventory management platform for SMBs, offering real-time updates, barcode scanning, and team collaboration. It helps businesses streamline stock tracking and analytics for smarter inventory decisions.
- [Breathe HR](https://composio.dev/toolkits/breathehr) - Breathe HR is cloud-based HR software for SMEs to manage employee data, absences, and performance. It simplifies HR admin, making it easy to keep employee records accurate and up to date.
- [Breeze](https://composio.dev/toolkits/breeze) - Breeze is a project management platform designed to help teams plan, track, and collaborate on projects. It streamlines workflows and keeps everyone on the same page.
- [Bugherd](https://composio.dev/toolkits/bugherd) - Bugherd is a visual feedback and bug tracking tool for websites. It helps teams and clients report website issues directly on live sites for faster fixes.
- [Canny](https://composio.dev/toolkits/canny) - Canny is a platform for managing customer feedback and feature requests. It helps teams prioritize product decisions based on real user insights.
- [Chmeetings](https://composio.dev/toolkits/chmeetings) - Chmeetings is a church management platform for events, members, donations, and volunteers. It streamlines church operations and improves community engagement.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Microsoft OneNote MCP?

With a standalone Microsoft OneNote MCP server, the agents and LLMs can only access a fixed set of Microsoft OneNote tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Microsoft OneNote and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Claude Cowork?

Yes, you can. Claude Cowork fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Microsoft OneNote tools.

### Can I manage the permissions and scopes for Microsoft OneNote while using Tool Router?

Yes, absolutely. You can configure which Microsoft OneNote scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Microsoft OneNote data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
