Connect to SharePoint and OneDrive to manage sites, lists, document libraries, files, folders, permissions, content types, and SharePoint operations via Microsoft Graph API.
This skill uses ClawLink for hosted connection flows and credentials so you do not need to configure Microsoft SharePoint API access yourself.
Step 1: InstallStep 2: Pair AccountStep 3: Connect SharePoint
_App-specific connection GIF coming soon_Run the install command in OpenClawSign in and approve the deviceOpen the dashboard and connect SharePoint
text
┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ OpenClaw │────▶│ ClawLink │────▶│ Microsoft Graph │
│ (User Chat) │ │ (OAuth) │ │ (SharePoint, │
│ │ │ │ │ OneDrive) │
└─────────────────┘ └──────────────┘ └──────────────────┘
│ │ │
│ 1. Install Plugin │ │
│ 2. Pair Device │ │
│ 3. Connect SharePoint │ │
│ │ 4. OAuth Proxy │
│ │ 5. Request Forward │
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ SKILL │ │ Dashboard│ │ SharePoint│
│ File │ │ Auth │ │ Online │
└──────────┘ └──────────┘ └──────────┘
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 SharePoint again."
bash
# List all sites accessible to the user
clawlink_call_tool --tool "share_point_list_sites"
# List all lists in a SharePoint site
clawlink_call_tool --tool "share_point_list_all_lists" --params '{"site_id": "YOUR_SITE_ID"}'
# Get current user info
clawlink_call_tool --tool "share_point_get_current_user"
All SharePoint tool calls are authenticated automatically by ClawLink using the user's connected Microsoft account via OAuth.
No OAuth setup is required in chat. ClawLink manages the OAuth flow and token refresh automatically.
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 sharepoint in the list.
bash
clawlink_list_tools --integration sharepoint
Response: Returns the live tool catalog for SharePoint.
If SharePoint tools are missing or the connection shows an error:
clawlink_list_integrations to verifyclawlink_list_tools --integration sharepointshare_point_get_role_definitions rather than hard-coding.ToolDescriptionModeshare_point_list_sitesRetrieve all SharePoint sites accessible to the userReadshare_point_get_site_collection_infoFetch site collection metadata (URL, ID, root web URI) — not item-level detailsReadshare_point_get_web_infoRetrieve current SharePoint web metadata (title, URL, language, template)Readshare_point_get_current_userRetrieve the current user for the site (confirms authentication)Read
ToolDescriptionModeshare_point_list_all_listsRetrieve all lists and document libraries in the current SharePoint webReadshare_point_get_list_by_titleFetch list metadata by titleReadshare_point_get_list_by_guidFetch list metadata by its unique identifier (prefer GUID over title)Readshare_point_get_list_itemsRetrieve items from a SharePoint list with optional OData parametersReadshare_point_get_list_items_by_guidRetrieve items from a SharePoint list using its GUIDReadshare_point_list_list_columnsList all column definitions in a SharePoint list (names, types, properties)Readshare_point_render_list_data_as_streamRetrieve list items with rich metadata and formatting via CAML queriesReadshare_point_get_changesRetrieve changes from the SharePoint list change log (for webhook processing)Read
ToolDescriptionModeshare_point_get_list_item_by_idFetch a specific list item by IDReadshare_point_get_list_item_versionAccess historical versions of a list itemReadshare_point_sharepoint_create_list_itemCreate a new item in a SharePoint list (returns item_id and timestamps)Writeshare_point_create_list_item_by_idCreate a new item in a list using the list's GUIDWriteshare_point_create_list_item_in_folderCreate a list item in a specific folder within a SharePoint listWriteshare_point_update_list_itemUpdate fields on an existing list item with ETag concurrency controlWriteshare_point_delete_list_itemPermanently delete a list item by its IDWriteshare_point_recycle_list_itemMove a list item to the Recycle Bin (soft-delete, restorable)Writeshare_point_restore_recycle_bin_itemRestore a deleted item by its GUIDWrite
ToolDescriptionModeshare_point_sharepoint_create_listCreate a new list in SharePoint (custom columns require separate calls)Writeshare_point_update_listUpdate list metadata (title, description, versioning settings)Writeshare_point_delete_listPermanently delete a SharePoint list by its GUIDWriteshare_point_delete_list_by_titlePermanently delete a SharePoint list by titleWrite
ToolDescriptionModeshare_point_list_drive_childrenList children (files and folders) in a drive root or folderReadshare_point_list_files_in_folderEnumerate all files in a folder by server-relative URL (non-recursive)Readshare_point_list_drives_rest_apiRetrieve document libraries and drives from a SharePoint siteReadshare_point_get_site_drive_item_by_pathGet metadata for a file or folder by its server-relative pathReadshare_point_download_file_by_server_relative_urlFetch raw bytes of a SharePoint file by its server-relative pathReadshare_point_list_drive_recent_itemsList recently modified items in a SharePoint driveRead
ToolDescriptionModeshare_point_sharepoint_check_out_fileCheck out a file in a document library to lock it for editingWriteshare_point_check_in_fileCheck in a file to finalize changes and release the lockWriteshare_point_undo_checkout_fileUndo a file checkout, discarding any changes made while checked outWriteshare_point_upload_fileUpload a file to a SharePoint document library or folderWriteshare_point_upload_from_urlFetch a file from a URL and upload it to SharePoint (with conflict behavior)Writeshare_point_update_drive_itemUpdate properties of a drive item (rename file/folder)Writeshare_point_recycle_fileMove a file to the Recycle BinWriteshare_point_restore_drive_item_versionRevert a file to an earlier versionWriteshare_point_delete_drive_item_version_contentDelete binary content of a specific version of a drive itemWrite
ToolDescriptionModeshare_point_list_subfolders_in_folderList immediate child folders within a SharePoint folderReadshare_point_get_all_foldersRetrieve all folders across the SharePoint siteReadshare_point_sharepoint_create_folderCreate a new folder in SharePoint (returns server_relative_url)Writeshare_point_delete_folderDelete a folder from a document library (moves to Recycle Bin)Writeshare_point_rename_folderRename a folder by updating its list item metadataWrite
ToolDescriptionModeshare_point_get_role_definitionsList role definitions at the web level (IDs are scoped per site — resolve dynamically)Readshare_point_break_role_inheritance_on_listBreak permission inheritance on a SharePoint list (must precede add_role_assignment_to_list)Writeshare_point_break_role_inheritance_on_itemBreak permission inheritance on a list itemWriteshare_point_add_role_assignment_to_listGrant permissions to a user or group on a SharePoint listWriteshare_point_add_role_assignment_to_itemGrant permissions to a user or group on a list itemWriteshare_point_ensure_userEnsure a user exists in a SharePoint site by login name (returns Id for permissions)Writeshare_point_get_user_effective_permissions_on_webGet a user's effective permissions on the current siteRead
ToolDescriptionModeshare_point_get_content_typesRetrieve all content types from the current SharePoint siteReadshare_point_get_content_typeRetrieve a specific content type by its IDReadshare_point_get_content_types_for_listRetrieve all content types for a specific SharePoint list by GUIDReadshare_point_get_list_content_type_by_idRetrieve a specific content type from a list by IDReadshare_point_add_field_link_to_content_typeAssociate an existing list field with a content typeWriteshare_point_create_content_typeCreate a new content type in SharePointWriteshare_point_update_content_typeUpdate a content type's properties (name, description, group, hidden status)Write
ToolDescriptionModeshare_point_create_list_fieldCreate a new field (column) in a SharePoint listWrite
ToolDescriptionModeshare_point_list_item_attachmentsList all attachments for a SharePoint list itemReadshare_point_get_item_attachment_contentDownload the binary contents of a specific attachmentReadshare_point_add_attachment_to_list_itemUpload a binary file as an attachment to a list itemWrite
ToolDescriptionModeshare_point_create_drive_item_sharing_linkCreate a sharing link for a drive item with specific permissions (view/edit/embed) and scopeWrite
ToolDescriptionModeshare_point_list_site_usersList users in the site collectionReadshare_point_list_site_groupsList SharePoint site groups for a site collectionReadshare_point_get_group_usersRetrieve all users who are members of a specified SharePoint groupReadshare_point_get_group_users_by_idRetrieve all users in a specific SharePoint site group by group IDReadshare_point_sharepoint_find_userSearch for a user by email address in the SharePoint siteReadshare_point_sharepoint_remove_userRemove a user from SharePoint (idempotent — returns success even if not a member)Write
ToolDescriptionModeshare_point_get_my_followedGet entities the current user is followingReadshare_point_get_my_followersGet the list of users who are following the authenticated userReadshare_point_is_followedCheck if the current user is following a specified actorReadshare_point_followFollow a SharePoint user, document, site, or tagWrite
ToolDescriptionModeshare_point_search_querySearch SharePoint content using Keyword Query Language (KQL)Readshare_point_search_suggestGet search query suggestions for autocompleteRead
ToolDescriptionModeshare_point_get_site_page_contentRetrieve modern SharePoint Site Pages content (CanvasContent1, LayoutWebpartsContent)Read
ToolDescriptionModeshare_point_get_webhook_subscriptionRetrieve a specific webhook subscription by IDReadshare_point_get_webhook_subscriptionsRetrieve all webhook subscriptions on a SharePoint listRead
ToolDescriptionModeshare_point_list_recycle_bin_itemsList items in the SharePoint Recycle BinReadshare_point_delete_recycle_bin_item_permanentPermanently delete a Recycle Bin item by its GUIDWrite
ToolDescriptionModeshare_point_create_webCreate a new SharePoint subsite under the current siteWriteshare_point_update_siteUpdate properties of the current SharePoint site (web)Write
ToolDescriptionModeshare_point_get_context_infoRetrieve SharePoint context information including form digest valueReadshare_point_get_drive_item_analyticsGet access statistics (view counts, unique viewers) for files or foldersReadshare_point_log_eventLog custom usage analytics events for tracking user activitiesWrite
bash
clawlink_call_tool --tool "share_point_list_sites"
bash
clawlink_call_tool --tool "share_point_get_list_by_title" \
--params '{"title": "Project Tasks"}'
clawlink_call_tool --tool "share_point_get_list_items" \
--params '{"list_name": "Project Tasks"}'
bash
clawlink_call_tool --tool "share_point_sharepoint_create_list_item" \
--params '{
"list_name": "Project Tasks",
"item": {
"Title": "Complete Q4 Report",
"Priority": "High",
"DueDate": "2024-12-31"
}
}'
bash
clawlink_call_tool --tool "share_point_upload_file" \
--params '{
"file_name": "report.xlsx",
"folder_url": "/Shared Documents/Reports",
"file_content": "BASE64_ENCODED_CONTENT"
}'
bash
clawlink_call_tool --tool "share_point_create_drive_item_sharing_link" \
--params '{
"item_id": "YOUR_FILE_ID",
"link_type": "view",
"scope": "organization"
}'
bash
clawlink_call_tool --tool "share_point_break_role_inheritance_on_list" \
--params '{"list_id": "YOUR_LIST_ID", "copy_role_assignments": true}'
clawlink_call_tool --tool "share_point_ensure_user" \
--params '{"login_name": "i:0#.f|membership|user@domain.com"}'
clawlink_call_tool --tool "share_point_add_role_assignment_to_list" \
--params '{"list_id": "YOUR_LIST_ID", "principal_id": "USER_ID_FROM_ENSURE_USER", "role_definition_id": 1}'
clawlink_list_integrations to confirm SharePoint is connected.clawlink_list_tools --integration sharepoint to see the live catalog.clawlink_search_tools with a short query and integration sharepoint.text
┌─────────────────────────────────────────────────────────────┐
│ READ OPERATIONS (Safe) │
│ list → get → search → describe → call │
│ │
│ Example: List sites → List lists → Get items → Show results │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ WRITE OPERATIONS (Require Confirmation) │
│ describe → preview → confirm → call │
│ │
│ Example: Describe tool → Preview changes → User approves │
│ → Execute create │
└─────────────────────────────────────────────────────────────┘
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./Shared Documents/FolderName or /Lists/ListName.share_point_get_role_definitions.break_role_inheritance_on_list) before adding unique role assignments.ensure_user is a write operation with provisioning side effects — it registers the user in the site collection but does not grant permissions.upload_from_url with conflict_behavior: 'rename' bypasses file locks on existing files.create_list_field after creating the list.get_site_page_content) read structured content from modern pages — .aspx files may need different handling.Status / ErrorMeaningTool not foundThe tool name does not exist in the current catalog. Verify with clawlink_list_tools --integration sharepoint.Missing connectionSharePoint is not connected. Direct the user to https://claw-link.dev/dashboard?add=sharepoint.ItemNotFoundThe file, list, or site does not exist. Check the ID or path.accessDeniedThe connected account lacks permissions to access this site, list, or item.invalidArgumentInvalid parameter or missing required field. Review the tool schema with clawlink_describe_tool.resourceModifiedThe item has been modified (ETag mismatch). Re-fetch and retry with updated ETag.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.
sharepoint.clawlink_describe_tool to verify parameter names and types before calling.clawlink_preview_tool first.list_sites and list_all_lists to discover IDs.Powered by ClawLink — an integration hub for OpenClaw
