Access OneDrive and SharePoint via Microsoft Graph API with managed OAuth authentication. Browse files, search folders, inspect details, create folders, share links, upload files, and manage drive metadata.
This skill uses ClawLink for hosted connection flows and credentials so you do not need to configure Microsoft Graph access yourself.
Step 1: InstallStep 2: Pair AccountStep 3: Connect OneDrive
_App-specific connection GIF coming soon_Run the install command in OpenClawSign in and approve the deviceOpen the dashboard and connect OneDrive
text
┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ OpenClaw │────▶│ ClawLink │────▶│ Microsoft Graph │
│ (User Chat) │ │ (OAuth) │ │ (OneDrive API) │
└─────────────────┘ └──────────────┘ └──────────────────┘
│ │ │
│ 1. Install Plugin │ │
│ 2. Pair Device │ │
│ 3. Connect OneDrive │ │
│ │ 4. Secure Token │
│ │ 5. Proxy Requests │
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ SKILL │ │ Dashboard│ │ OneDrive│
│ File │ │ Auth │ │ /SharePt│
└──────────┘ └──────────┘ └──────────┘
Install the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat.
bash
openclaw plugins install clawhub:clawlink-plugin
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart
Then tell the user: "OpenClaw has been restarted. Send /new as a standalone message to start a fresh chat, then ask for OneDrive again."
bash
# List items in OneDrive root
clawlink_call_tool --tool "one_drive_onedrive_list_items" --params '{}'
# Search for files
clawlink_call_tool --tool "one_drive_search_items" --params '{"query": "report.xlsx"}'
# Get file metadata
clawlink_call_tool --tool "one_drive_get_item" --params '{"item_id": "FILE_ID"}'
All OneDrive tool calls are authenticated automatically by ClawLink using the user's connected Microsoft account.
No API key is required in chat. ClawLink stores the OAuth token securely and injects it into every Microsoft Graph request on the user's behalf.
clawlink_begin_pairing if it is not configured yet.clawlink_list_integrations to verify the connection is active.bash
clawlink_list_integrations
Response: Returns all connected integrations. Look for onedrive in the list.
bash
clawlink_list_tools --integration onedrive
Response: Returns the live tool catalog for OneDrive.
If OneDrive tools are missing or the connection shows an error:
clawlink_list_integrations to verifyclawlink_list_tools --integration onedriveToolDescriptionModeone_drive_list_drivesList all drives accessible to the authenticated userReadone_drive_get_driveGet drive properties by IDReadone_drive_get_rootGet the root folder of the user's OneDriveReadone_drive_get_itemGet file or folder metadata by IDReadone_drive_get_item_permissionsList permissions on a file or folderReadone_drive_get_item_thumbnailsGet thumbnail URLs for a fileReadone_drive_get_item_versionsGet version history of a fileReadone_drive_list_folder_childrenList contents of a folder by ID or pathReadone_drive_list_root_drive_changesTrack changes in the drive root via delta tokenReadone_drive_search_itemsSearch files and folders by keywordReadone_drive_get_recent_itemsGet recently accessed filesReadone_drive_get_shared_itemsGet items shared with the userReadone_drive_preview_drive_itemGenerate a short-lived preview URL for a fileRead
ToolDescriptionModeone_drive_onedrive_list_itemsList files and folders in OneDrive rootReadone_drive_onedrive_find_fileFind a file in a specific folderReadone_drive_onedrive_find_folderFind folders by nameReadone_drive_onedrive_create_folderCreate a new folder in OneDriveWriteone_drive_onedrive_create_text_fileCreate a text file in OneDriveWriteone_drive_onedrive_upload_fileUpload a file to OneDriveWriteone_drive_move_itemMove a file or folder to a new locationWriteone_drive_copy_itemCopy a file or folder to a new locationWriteone_drive_update_drive_item_metadataUpdate file/folder metadata (rename, move)Writeone_drive_update_file_contentUpdate file content via upload sessionWriteone_drive_delete_itemDelete a file or folder (moves to recycle bin)Writeone_drive_delete_item_permanentlyPermanently delete a file or folderWrite
ToolDescriptionModeone_drive_create_linkCreate a sharing link for a file or folderWriteone_drive_invite_user_to_itemInvite a user to access a file or folderWriteone_drive_grant_share_permissionGrant access via a sharing URLWriteone_drive_create_item_permissionCreate a permission on an itemWriteone_drive_delete_item_permissionRemove a permission from an itemWriteone_drive_update_drive_items_permissionsUpdate permission rolesWriteone_drive_list_share_permissionsList permissions from a sharing URLRead
ToolDescriptionModeone_drive_checkout_itemCheck out a file to prevent others from editingWriteone_drive_checkin_itemCheck in a previously checked-out fileWriteone_drive_discard_checkoutDiscard checkout and discard changesWrite
ToolDescriptionModeone_drive_get_siteGet SharePoint site metadataReadone_drive_get_site_page_contentGet SharePoint site page contentReadone_drive_list_site_listsList SharePoint lists in a siteReadone_drive_list_site_subsitesList subsites of a SharePoint siteReadone_drive_list_site_columnsList column definitions for a SharePoint siteReadone_drive_get_sharepoint_list_itemsGet items from a SharePoint listReadone_drive_get_group_driveGet the document library for a Microsoft 365 groupRead
ToolDescriptionModeone_drive_download_fileDownload a file by ID (returns S3 URL)Readone_drive_download_file_by_pathDownload a file by pathReadone_drive_download_item_as_formatDownload a file converted to PDF or HTMLReadone_drive_download_item_versionDownload a specific previous version of a fileRead
ToolDescriptionModeone_drive_follow_itemFollow a file or folderWriteone_drive_unfollow_itemStop following a file or folderWriteone_drive_get_followed_itemGet a followed itemReadone_drive_list_activitiesGet recent activity on the driveReadone_drive_list_item_activitiesGet activities for a specific itemRead
ToolDescriptionModeone_drive_get_drive_item_by_sharing_urlResolve a sharing URL to item metadataReadone_drive_get_shareGet a shared item by share IDRead
bash
clawlink_call_tool --tool "one_drive_list_folder_children" \
--params '{
"item_id": "FOLDER_ID"
}'
bash
clawlink_call_tool --tool "one_drive_search_items" \
--params '{
"query": "quarterly report",
"filter": "file neq null"
}'
bash
clawlink_call_tool --tool "one_drive_create_link" \
--params '{
"item_id": "FILE_ID",
"type": "view",
"scope": "organization"
}'
bash
clawlink_call_tool --tool "one_drive_onedrive_upload_file" \
--params '{
"parent_folder_id": "FOLDER_ID",
"file_name": "document.pdf",
"file_content": "BASE64_ENCODED_CONTENT"
}'
bash
clawlink_call_tool --tool "one_drive_move_item" \
--params '{
"item_id": "FILE_ID",
"parent_folder_id": "NEW_FOLDER_ID"
}'
clawlink_list_integrations to confirm OneDrive is connected.clawlink_list_tools --integration onedrive to see the live catalog.clawlink_search_tools with a short query and integration onedrive.text
┌─────────────────────────────────────────────────────────────┐
│ READ OPERATIONS (Safe) │
│ list → get → search → describe → call │
│ │
│ Example: List folder → Get file → Show metadata │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ WRITE OPERATIONS (Require Confirmation) │
│ list → get → describe → preview → confirm → call │
│ │
│ Example: Describe tool → Preview changes → User approves │
│ → Execute update │
└─────────────────────────────────────────────────────────────┘
clawlink_describe_tool first.whenToUse, askBefore, safeDefaults, examples, and followups to shape the call.clawlink_preview_tool first.clawlink_call_tool. Pass confirmation only after the preview matches the user's intent.{ and } must be URL-encoded ( %7B and %7D) in raw Graph URLs. ClawLink handles this automatically.delete_item_permanently.Retry-After header — use exponential backoff.Status / ErrorMeaningTool not foundThe tool name does not exist in the current catalog. Verify with clawlink_list_tools --integration onedrive.Missing connectionOneDrive is not connected. Direct the user to https://claw-link.dev/dashboard?add=onedrive.ItemNotFoundFile or folder does not exist. Check the item_id or path.nameAlreadyExistsA file or folder with that name already exists at the destination.InvalidArgumentInvalid parameter or missing required field. Review the tool schema with clawlink_describe_tool.Write rejectedUser did not confirm a write action. Always confirm before executing writes.
Check that the ClawLink plugin is installed: bash
openclaw plugins list
If the plugin is installed but tools are missing, tell the user to send /new as a standalone message to reload the catalog.
If a fresh chat does not help, run: bash
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart
After restart, tell the user to send /new again and retry.
onedrive.clawlink_describe_tool to verify parameter names and types before calling.clawlink_preview_tool first.Powered by ClawLink — an integration hub for OpenClaw
