Microsoft OneNote
DOCS & KNOWLEDGE · TASKS
Notebooks, sections and pages read and written as the person the agent acts for.
Acts as the person, not as itself
Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.
Credentials never touch the agent
Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.
Every call on the record
Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.
What an agent can do
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
onenote_copy_notebookWRITECopy a whole notebook (asynchronous: answers 202 with an operation_id -- poll it with the get-operation tool). The body may name renameAs, and groupId/siteCollectionId/siteId to copy into a group or site via POST /v1.0/me/onenote/notebooks/{notebook_id}/microsoft.graph.copyNotebook
onenote_copy_page_to_sectionWRITECopy a page into a section (asynchronous: answers 202 with an operation_id). The body's id is the destination section via POST /v1.0/me/onenote/pages/{page_id}/microsoft.graph.copyToSection
onenote_copy_section_to_notebookWRITECopy a section into a notebook (asynchronous: answers 202 with an operation_id). The body's id is the destination notebook; renameAs optionally renames the copy via POST /v1.0/me/onenote/sections/{section_id}/microsoft.graph.copyToNotebook
onenote_copy_section_to_section_groupWRITECopy a section into a section group (asynchronous: answers 202 with an operation_id). The body's id is the destination section group; renameAs optionally renames the copy via POST /v1.0/me/onenote/sections/{section_id}/microsoft.graph.copyToSectionGroup
onenote_create_notebookWRITECreate a new OneNote notebook; the body's displayName is the notebook title (must be unique, max 128 characters) via POST /v1.0/me/onenote/notebooks
onenote_create_pageWRITECreate a page in the default section from an XHTML document (content is the full document; the <title> element becomes the page title). Use create-page-in-section to target a section. Text and standard HTML only -- binary parts need multipart, which this surface does not carry via POST /v1.0/me/onenote/pages
onenote_create_page_in_sectionWRITECreate a page in a specific section from an XHTML document (content is the full document; the <title> element becomes the page title). Text and standard HTML only -- binary parts need multipart, which this surface does not carry via POST /v1.0/me/onenote/sections/{section_id}/pages
onenote_create_sectionWRITECreate a section in a notebook; the body's displayName is the section name (must not contain ?*\/:<>|&#''%%~) via POST /v1.0/me/onenote/notebooks/{notebook_id}/sections
onenote_create_section_groupWRITECreate a section group in a notebook; the body's displayName is the group name via POST /v1.0/me/onenote/notebooks/{notebook_id}/sectionGroups
onenote_create_section_in_section_groupWRITECreate a section inside a section group; the body's displayName is the section name via POST /v1.0/me/onenote/sectionGroups/{section_group_id}/sections
onenote_delete_pageWRITEPermanently delete a page by id via DELETE /v1.0/me/onenote/pages/{page_id}
onenote_get_notebookREADRead one notebook's metadata by id via GET /v1.0/me/onenote/notebooks/{notebook_id}
onenote_get_notebook_from_web_urlWRITEResolve a notebook from its OneNote web link (the body's webUrl); answers the notebook's metadata so its id can be used with the other tools via POST /v1.0/me/onenote/notebooks/microsoft.graph.getNotebookFromWebUrl
onenote_get_operationREADPoll an asynchronous OneNote operation (a notebook, section or page copy) by the operation_id its 202 answer carried; status moves NotStarted -> Running -> Completed/Failed, and resourceId names the created copy via GET /v1.0/me/onenote/operations/{operation_id}
onenote_get_pageREADRead one page's metadata by id -- title, timestamps, links and contentUrl ($expand can pull parentSection or parentNotebook) via GET /v1.0/me/onenote/pages/{page_id}
onenote_get_page_contentREADRead a page's content as HTML (returned under the `raw` key). Pass includeIDs=true to get the data-id anchors the patch-content commands address via GET /v1.0/me/onenote/pages/{page_id}/content
onenote_get_page_previewREADRead a page's text preview (previewText and an optional preview image link) without fetching the full content via GET /v1.0/me/onenote/pages/{page_id}/microsoft.graph.preview()
onenote_get_recent_notebooksREADList the notebooks the signed-in user has most recently touched; includePersonalNotebooks says whether to include notebooks from the user's personal OneDrive alongside organizational ones. Signed-in user only: Microsoft documents this function on the user's own tree, so it takes no group_id/site_id via GET /v1.0/me/onenote/notebooks/microsoft.graph.getRecentNotebooks(includePersonalNotebooks={includePersonalNotebooks})
onenote_get_sectionREADRead one section's metadata by id ($expand can pull its parentNotebook or parentSectionGroup in the same call) via GET /v1.0/me/onenote/sections/{section_id}
onenote_get_section_groupREADRead one section group's metadata by id ($expand can pull its parentNotebook, sections or child sectionGroups in the same call) via GET /v1.0/me/onenote/sectionGroups/{section_group_id}
onenote_list_child_section_groupsREADList the section groups nested inside one section group via GET /v1.0/me/onenote/sectionGroups/{section_group_id}/sectionGroups
onenote_list_notebook_section_groupsREADList the section groups directly inside one notebook via GET /v1.0/me/onenote/notebooks/{notebook_id}/sectionGroups
onenote_list_notebook_sectionsREADList the sections directly inside one notebook via GET /v1.0/me/onenote/notebooks/{notebook_id}/sections
onenote_list_notebooksREADList the OneNote notebooks in the signed-in user's account (or in a Microsoft 365 group or SharePoint site via group_id/site_id), with OData paging and filtering via GET /v1.0/me/onenote/notebooks
onenote_list_pagesREADList pages across the whole account ($search matches page content; $filter and $orderby work on title and dates) via GET /v1.0/me/onenote/pages
onenote_list_section_group_sectionsREADList the sections inside one section group via GET /v1.0/me/onenote/sectionGroups/{section_group_id}/sections
onenote_list_section_groupsREADList every section group in the account, across notebooks via GET /v1.0/me/onenote/sectionGroups
onenote_list_section_pagesREADList the pages inside one section via GET /v1.0/me/onenote/sections/{section_id}/pages
onenote_list_sectionsREADList every section in the account, across notebooks via GET /v1.0/me/onenote/sections
onenote_update_page_contentWRITEEdit a page's content with patch commands: the body's commands array holds {target, action, position, content} entries (actions Append/Insert/Prepend/Replace/Delete; targets are body, title, or a data-id/id from the content read) via POST /v1.0/me/onenote/pages/{page_id}/microsoft.graph.onenotePatchContent
Often connected alongside
Put Microsoft OneNote behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.