
List the user's OneNote notebooks. Supports pagination with top/skip, sorting with orderby, and OData filtering. Expand 'sections' or 'sectionGroups' to include children.
Get a specific OneNote notebook by ID. Use list_notebooks to find valid notebook IDs. Expand 'sections' or 'sectionGroups' to include children.
Create a new OneNote notebook with the given display name. The name must be unique across the user's notebooks. Max 128 characters.
Copy a OneNote notebook. This is an async operation - returns an operation URL to poll for status. Use list_notebooks to find valid notebook IDs.
Get a list of recently accessed OneNote notebooks, including notebooks from other users shared with the current user.
Get the user's default OneNote notebook. Returns the notebook marked as default, or the first notebook if none is marked as default.
List OneNote pages in a specific section. Always requires sectionid for performance (global page listing can fail). Use listsections to find valid section IDs.
Get OneNote page metadata by ID (title, dates, links). Does NOT include content - use getpagecontent for HTML body. Use list_pages to find valid page IDs.
Get the HTML content of a OneNote page. Set includeids=true to get data-id attributes needed for PATCH updates. Use listpages to find valid page IDs.
Create a new OneNote page in a section. Provide HTML content (e.g. '<p>Hello</p>'). The title becomes the page heading. Use list_sections to find valid section IDs.
Update a OneNote page using PATCH operations. Each operation needs: target ('body' or element ID), action ('append','replace','prepend','insert'), content (HTML). Use getpagecontent with include_ids=true to find element IDs.
Delete a OneNote page permanently. This action cannot be undone. Use list_pages to find valid page IDs.
Copy a OneNote page to a different section. Async operation - returns operation URL to poll. Use listpages and listsections to find valid IDs.
List OneNote section groups. Filter by notebookid to list groups in a specific notebook, or omit to list all section groups. Use listnotebooks to find valid IDs.
Get a specific OneNote section group by ID. Expand 'sections' or 'sectionGroups' to include children. Use listsectiongroups to find valid IDs.
Create a new OneNote section group in a notebook. Section groups organize sections into folders. Use list_notebooks to find valid notebook IDs.
List OneNote sections. Filter by notebookid or sectiongroupid, or omit both to list all sections. Use listnotebooks to find valid notebook IDs.
Get a specific OneNote section by ID. Use list_sections to find valid section IDs. Expand 'pages' or 'parentNotebook' to include related data.
Create a new OneNote section in a notebook or section group. Provide either notebookid or sectiongroupid. Use listnotebooks to find valid IDs.
Copy a OneNote section to a different notebook. Async operation - returns operation URL. Use listsections and listnotebooks to find valid IDs.
Copy a OneNote section to a section group. Async operation - returns operation URL. Use listsections and listsection_groups to find valid IDs.
Validate OneNote credentials. Verifies credentials during setup.

In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}A OneNote MCP is an MCP server that connects your agents to Microsoft OneNote via tools. Your agents can invoke these tools to create notebooks and sections, write and update pages, retrieve page content, and organize notes programmatically, and more.
Microsoft doesn't offer an MCP server purpose built for OneNote, but you can use one from a third-party platform, like Merge Agent Handler.
The use cases naturally depend on the agent you've built, but here are a few common ones:
Here are some of the most commonly used tools:
create_page: creates a new page in a specified OneNote section with HTML content. Use this when an agent needs to write structured notes, a summary, or generated output into OneNote as part of a larger workflowget_page_content: retrieves the full HTML content of a OneNote page. Call this when an agent needs to read an existing note before updating it, extracting information, or passing its contents to another toollist_pages: returns all pages in a section with title and metadata. Helpful when an agent needs to find the right page before reading or modifying it, especially in sections with many entriesupdate_page: modifies the content of an existing OneNote page using PATCH-based element targeting. Good for agents that append new entries to a running log or update a specific section of a structured notecreate_section: adds a new section to a notebook. Use this when an agent is setting up a structured workspace for a project, team, or recurring workflow that needs its own dedicated arealist_notebooks: returns all notebooks accessible to the authenticated user. Call this when an agent needs to locate the right notebook before navigating to a section or page within itA few things distinguish Merge Agent Handler's OneNote MCP server from community alternatives or a self-hosted implementation:
You can take the following steps:
1. Create or log into your Merge Agent Handler account and navigate to Tool Packs (collections of connector tools scoped to a specific use case).
2. Create a new Tool Pack, then find and enable the OneNote connector. Choose which tools to include: enable read tools for content retrieval use cases, or add write tools if your agent needs to create pages, update notes, or organize notebooks and sections.
3. Add a Registered User inside the Tool Pack. This is the identity context under which your agent operates. Merge generates a unique MCP URL scoped to this user once it's created.
4. From the Registered User detail page, authenticate OneNote by completing the OAuth flow. Merge stores and manages the credentials going forward.
5. Copy the MCP URL from the Tool Pack detail page and generate an API key from Settings. You'll need both to connect your agent.
6. Add the MCP server to your agent or IDE using the MCP URL and API key. Your OneNote tools are now accessible through that endpoint.
Yes, Agent Handler for Employees lets your employees connect Claude, ChatGPT, Microsoft Copilot, Cursor, and other MCP-compatible AI tools to OneNote without bypassing IT governance.
Instead of setting up direct connections with personal credentials that IT can't monitor or revoke, each employee authenticates through Agent Handler and gets individual credentials tied to their identity.
IT also provisions access by role or group via SCIM. A sales rep, for example, gets OneNote access to log call notes and account research, Salesforce to update CRM records, and Outlook to manage follow-up communications; while a project manager gets OneNote access to capture meeting notes and decisions, Microsoft Teams to coordinate with stakeholders, and SharePoint to publish project documentation.
Every tool call an employee's AI makes to OneNote is also inspected against your DLP rules and logged to a searchable audit trail, giving security teams full visibility into what data was accessed and by whom.
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now