CONNECT APP
Build with Microsoft OneNote
Productivity
- OAuth
MCP
Give your agent Microsoft OneNote tools
Every Microsoft OneNote action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's Microsoft OneNote account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "onenote",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Create Notebook:
const result = await mcp.callTool({
name: "onenote-create-notebook",
arguments: {
displayName: "Display name",
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "onenote",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Create Notebook:
result = await session.call_tool("onenote-create-notebook", {
"displayName": "Display name",
})API PROXY
Call the Microsoft OneNote API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the Microsoft OneNote API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://graph.microsoft.com/v1.0/me",
})
// Any allowed Microsoft OneNote endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://graph.microsoft.com/v1.0/me
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9ncmFwaC5taWNyb3NvZnQuY29tL3YxLjAvbWU?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run Microsoft OneNote actions from your backend
Connect a user's Microsoft OneNote account once, then run Create Notebook on their behalf from your own code — TypeScript, Python, or plain HTTP.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "onenote-create-notebook",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
onenote: { authProvisionId: "apn_xxxxxxx" },
displayName: "Display name",
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="onenote-create-notebook",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"onenote": {"authProvisionId": "apn_xxxxxxx"},
"displayName": "Display name",
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "onenote-create-notebook",
"configured_props": {
"onenote": { "authProvisionId": "apn_xxxxxxx" },
"displayName": "Display name"
}
}'TOOLS
Microsoft OneNote actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Create Notebook
actionCreates a notebook. See the documentationWritev0.0.4 -
Create Page
actionCreates a page. See the documentationWritev0.0.4 -
Create Section
actionCreates a section. See the documentationWritev0.0.4 -
Get Page
actionGets a page. See the documentationRead-onlyv0.0.2 -
Get Page Content
actionRetrieve the body content of a OneNote page as HTML or Markdown. Use Get Page for the page's metadata (title, parent section, URLs, timestamps); use this action when you need the actual page content. Use Search Pages first to resolve a page name to apageId. SetconvertToMarkdowntotruefor cleaner, more compact output (recommended when the consumer is an LLM). SetincludeIDstotrueif you need element IDs for a later update operation. Note: combiningincludeIDswithconvertToMarkdownmay stripdata-idattributes during conversion. See the documentationRead-onlyv0.0.2 -
List Notebook ID Options
actionRetrieves available options for the Notebook ID field.Read-onlyv0.0.1 -
List Page ID Options
actionRetrieves available options for the Page ID field.Read-onlyv0.0.1 -
List Section ID Options
actionRetrieves available options for the Section ID field.Read-onlyv0.0.1 -
Search Notebooks
actionSearches for notebooks. See the documentationRead-onlyv0.0.2 -
Search Pages
actionSearch and list OneNote pages. Supports free-text title search, OData filtering, expansion of related resources, and pagination. Usesearchfor natural-language queries against page titles (e.g.,weekly notes,feeding schedule). Translated server-side to a case-insensitivecontainsfilter on the page title. Usefilterfor structured OData queries (e.g.,createdDateTime gt 2026-01-01T00:00:00Z).searchandfiltercan be combined and are joined withand. Limitation: Microsoft Graph does not support searching OneNote page body content via this endpoint. To match on content, retrieve a candidate set by title and then call Get Page Content for each. Use Get Page Content to retrieve the body of a specific page after locating it here. Use Get Page for page metadata only. Returns the array of matching pages and anextLinkURL for pagination when more results are available. See the documentationRead-onlyv1.0.1 -
Search Sections
actionSearches for sections. See the documentationRead-onlyv0.0.2
EVENTS
Microsoft OneNote triggers
Event sources your backend can deploy for users and receive through a webhook.
No Microsoft OneNote triggers are available yet.
MULTI-APP
Use Microsoft OneNote with other popular apps
Most products don't stop at one integration. Pair Microsoft OneNote with the other apps your users rely on, and ship use cases that span both.
REFERENCE
App details
Reference metadata for the Microsoft OneNote connector in the Pipedream registry.
- App slug
- onenote
- Authentication
- OAuth
- Categories
- Productivity
- Actions
- 11
- Triggers
- 0
- API proxy
- Available
OAuth scopes
These are the scopes Pipedream's managed Microsoft OneNote OAuth client requests when one of your users connects an account. Supply your own OAuth client to request a different set.
- User.Read
- offline_access
- openid
- profile
- Notes.Create
- Notes.ReadWrite.All