ClawLink

How to connect SharePoint to OpenClaw

Connect SharePoint to OpenClaw with ClawLink in one click — 86 tools your AI agent can call from chat via hosted OAuth. No API keys, no manual setup.

Get started for free
OpenClaw
OpenClaw
ClawLink
ClawLink
SharePoint
SharePoint
SharePointOAUTH2MCP

Browse sites, lists, and files in SharePoint. Once connected, OpenClaw can read and act on SharePoint from chat — pairing, token refresh, and tool wiring handled for you.

86 tools

The usual route to SharePoint access for OpenClaw is an MCP server you configure and keep running, plus your own OAuth app or API keys. ClawLink gives OpenClaw a more practical SharePoint setup: install one ClawHub skill, connect SharePoint in the browser, and OpenClaw can call real SharePoint actions from any chat surface with no auth, token refresh, or tool wiring to build yourself.

Copy this prompt into OpenClaw, or open the SharePoint skill on ClawHub.

Prompt for OpenClaw
Before installing anything, inspect the ClawHub skill metadata and setup requirements.
If the skill asks you to install a third-party package or CLI, verify its source, maintainer, and package contents before running the install command.
Install the skill "SharePoint" (hith3sh/sharepoint-sites) from ClawHub only after those checks pass.
Skill page: https://clawhub.ai/hith3sh/sharepoint-sites
Keep the work scoped to this skill only.
After install, help me finish setup from verified skill metadata.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Setup

It takes three steps to connect OpenClaw to SharePoint.

  1. 1

    Install the plugin

    Paste the setup prompt into OpenClaw, or install from the terminal and ask OpenClaw to pair:

    openclaw plugins install clawhub:clawlink-plugin
  2. 2

    Connect SharePoint

    One-click OAuth in the dashboard.

  3. 3

    Use it from chat

    Ask OpenClaw: "What can you do with SharePoint?"

The install, start to finish. Run these once, then connect SharePoint in the dashboard:

openclaw plugins install clawhub:clawlink-plugin
openclaw skills install @hith3sh/sharepoint-sites

Start a fresh chat afterwards so OpenClaw reloads its tool catalog, then ask it to run clawlink_list_integrations to confirm SharePoint is connected.

Using a different agent?

The OpenClaw plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:

npx -y @useclawlink/cli login

login opens the same browser approval and stores a credential locally. Once SharePoint is connected in the dashboard, that agent calls the same 86 SharePoint tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.

SharePoint MCP for OpenClaw

Looking for a SharePoint MCP server for OpenClaw? ClawLink connects SharePoint to OpenClaw and exposes 86 SharePoint tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using Hermes instead? The Hermes SharePoint integration works the same way.

ClawLink connects OpenClaw to SharePoint with hosted OAuth: you never register an Entra app and no admin consent flow is involved. Every guide to giving an agent SharePoint access otherwise starts the same way: register an app in Azure, pick Graph permissions, grant admin consent, then handle the token refresh yourself. ClawLink removes that first half. You sign in with your normal Microsoft 365 account through a hosted OAuth flow, and the agent calls SharePoint tools from chat. The catch is the same one SharePoint has everywhere: the agent can only see what your account can see, and if a site or library is not shared with you, tools on it fail with an access-denied error no matter which service you use.

Is it safe to connect SharePoint to OpenClaw?

SharePoint is a work account in a tenant controlled by your IT team, so the safety questions are different from a personal account. Here is the specific version.

  • The agent acts as you, with your permissions. The connection is delegated: tools run as the Microsoft 365 account that signed in, with exactly the access that account has in the tenant. No separate admin rights, no elevated service account, and no way around SharePoint's own permission model — search results and lists are security-trimmed to what you can already see.
  • There is no admin consent screen. The self-hosted route needs an Entra app with admin-consented permissions, which is why those guides start with "ask your IT department". Our hosted client signs in like a normal app. In tenants that restrict user consent, an admin may still need to approve the app once; the connection then works for the approved account.
  • What the connection can reach. The grant is the full set of SharePoint permissions on the app registration (Microsoft's .default scope), which is what read and write tools need. It is not a read-only grant, and it is not limited to one site. Writes — creating folders, uploading files, changing permissions — require your confirmation before they run, and everything appears in Microsoft 365 audit logs as your account.
  • Revoking it is instant. Remove the app from your account or ask your admin to revoke it in Azure; the token stops working and the agent's SharePoint calls fail until the connection is removed or reconnected.

The genuinely risky setups are the self-hosted ones that store a client secret or certificate on a machine you may not control and connect with app-only FullControl over the whole tenant. Delegated user access is the narrower and more auditable of the two.

What the OpenClaw SharePoint integration can do

86 SharePoint tools are ready for OpenClaw once the account is connected. The 30 below are the ones people reach for most; your agent can call all 86.

30 of 86 SharePoint tools for OpenClaw

ToolWhat it does
Share point add attachment to list item share_point_add_attachment_to_list_itemTool to add an attachment to a SharePoint list item. Use when you need to upload a binary file as an attachment to a specified list item.
Share point add field link to content type share_point_add_field_link_to_content_typeTool to add a field link to a list content type. Use when you want to associate an existing list field with a content type.
Share point add role assignment to item share_point_add_role_assignment_to_itemTool to add a role assignment to a list item. Use when granting specific permissions to a user or group after breaking inheritance if needed.
Share point add role assignment to list share_point_add_role_assignment_to_listTool to add a role assignment to a SharePoint list.
Share point break role inheritance on item share_point_break_role_inheritance_on_itemTool to break permission inheritance on a list item.
Share point break role inheritance on list share_point_break_role_inheritance_on_listBreaks permission inheritance on a SharePoint list, allowing you to set unique permissions.
Share point check in file share_point_check_in_fileTool to check in a file. Use after uploading or editing a document and you're ready to finalize changes.
Share point create content type share_point_create_content_typeTool to create a new content type in SharePoint. Use when you need to define a custom content type with specific metadata structure for lists or libraries.
Share point create drive item sharing link share_point_create_drive_item_sharing_linkTool to create a sharing link for a drive item in SharePoint or OneDrive.
Share point create list field share_point_create_list_fieldTool to create a new field (column) in a SharePoint list. Use when you need to programmatically add a column after confirming the list GUID.
Share point create list item by ID share_point_create_list_item_by_idTool to create a new item in a SharePoint list using the list's GUID. Use when you have the list GUID rather than the list title.
Share point create list item in folder share_point_create_list_item_in_folderTool to create a list item in a specific folder within a SharePoint list. IMPORTANT: This action works ONLY with SharePoint lists (not document libraries).
Share point download file by server relative URL share_point_download_file_by_server_relative_urlDownload a file by server-relative URL
Share point get all folders share_point_get_all_foldersRetrieve all folders in the SharePoint web
Share point get changes share_point_get_changesRetrieve changes from SharePoint list change log
Share point get content type share_point_get_content_typeRetrieve a single SharePoint content type by its ID
Share point get content types share_point_get_content_typesRetrieves all content types from the current SharePoint site
Share point get content types for list share_point_get_content_types_for_listRetrieve all content types for a specific SharePoint list by GUID
Share point get context info share_point_get_context_infoRetrieve SharePoint context information including the form digest value
Share point get current user share_point_get_current_userRetrieve the current user for the site
Share point get drive item analytics share_point_get_drive_item_analyticsGet analytics for a SharePoint drive item
Share point get group users share_point_get_group_usersRetrieves all users who are members of a specified SharePoint group
Share point get group users by ID share_point_get_group_users_by_idRetrieve all users in a specific SharePoint site group by group ID
Share point get item attachment content share_point_get_item_attachment_contentDownload an attachment from a SharePoint list item
Share point get list by guid share_point_get_list_by_guidRetrieve a SharePoint list by its GUID
Share point get list by title share_point_get_list_by_titleRetrieve a SharePoint list by its title
Share point get list content type by ID share_point_get_list_content_type_by_idRetrieve a specific content type from a SharePoint list by its ID
Share point get list item by ID share_point_get_list_item_by_idRetrieve a SharePoint list item by ID
Share point get list item version share_point_get_list_item_versionRetrieve a specific version of a SharePoint list item
Share point get list items share_point_get_list_itemsRetrieve items from a SharePoint list

Try it: find the SharePoint tool you need

Browse the 30 SharePoint tools

Click any tool to see exactly what OpenClaw can do and copy a ready-to-use prompt.

Example prompts

Search SharePoint for 'quarterly report' restricted to Word documents (share_point_search_query with querytext FileType:docx), list the top 5 results with their web URLs, then summarize the newest one.

Use share_point_get_list_items on the list titled 'Projects' and show the Title and Status of each item. If the title does not match, list all lists first with share_point_list_all_lists and use the exact title.

Upload the file report-q2.docx to the folder /Shared Documents/Reports using share_point_upload_file, overwriting the existing file if there is one.

Create a new item in the 'Tasks' list with Title 'Complete Q4 report' and Status 'Active' using share_point_sharepoint_create_list_item. Confirm the list title with share_point_list_all_lists first.

What to tell the agent when it calls SharePoint

These are the argument rules the SharePoint tools actually run with, checked against the live schemas. The first two cause most of the failed calls in production logs.

  • list_title must match the list's real title exactly, and titles are localized per site — 'Documents' can be 'Dokumente' on a German site. When a lookup fails with "List 'X' does not exist", have the agent resolve the list GUID first via share_point_get_list_by_guid instead of guessing the title.
  • share_point_get_list_items accepts real OData: filter (e.g. Title eq 'Test'), select (Title,Id or *), orderby (Created desc), expand (Author,Editor), and top for paging with skiptoken.
  • share_point_search_query uses Keyword Query Language (KQL), not plain words: IsDocument:1, FileType:docx, Author:"Jane Doe", plus refinementfilters like FileType:equals("docx"). rowlimit caps at 500. Results are security-trimmed — content you cannot access never appears.
  • share_point_list_drive_children needs the document library's drive GUID (drive_id), which the agent should look up with share_point_list_drives_rest_api. The library name alone is not accepted.
  • share_point_create_list_item_by_id additionally requires metadata_type in the form SP.Data.\{ListName\}ListItem — for a Tasks list that is SP.Data.TasksListItem. The plain create tool (share_point_sharepoint_create_list_item) needs only list_name and item_properties with internal column names.
  • share_point_upload_file takes folder_relative_url starting with //Shared Documents, never Shared Documents — and overwrite defaults to true. share_point_download_file_by_server_relative_url has the same leading-slash rule.
  • site_name scopes a single call to a subsite (e.g. marketing); omitted, calls hit the tenant's root site. The connection itself is per-tenant, not per-site.

The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for OpenClaw. That is fine if you want to build and maintain the integration yourself. Most teams just want SharePoint working from chat.

ManualClawLink
Connection flowRegister a SharePoint app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift.Users connect SharePoint through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code.
Ongoing maintenanceYou own refresh logic, permission debugging, environment config, and every provider-specific edge case for SharePoint.ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure.
Agent usabilityYou still need to expose the right SharePoint actions to the runtime in a format your agent can reliably use.86 tools for SharePoint are already exposed through ClawLink, so the agent can read and act from chat immediately.

Composio also exposes SharePoint to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for OpenClaw users instead. You install the plugin once, connect SharePoint in the browser, and the 86 tools above work from chat. There is no SDK, no config file, and no API key handling. Choosing between them? Read the full Composio alternatives comparison.

Troubleshooting

OpenClaw installed the SharePoint skill but can't call the tools

The ClawHub skill teaches OpenClaw about SharePoint, but the calls run through the ClawLink plugin and your connected account. Make sure SharePoint is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.

Connection succeeds but no tools appear

Reconnect SharePoint from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.

"Tool schema not loaded yet" error when calling SharePoint tools

SharePoint tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every SharePoint call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.

SharePoint returns 403 or "permission denied" on one action while others work

Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.

"Attempted to perform an unauthorized operation." (403) on SharePoint calls

The single most common SharePoint failure in production logs (the full error is a 403 with System.UnauthorizedAccessException and this message, sometimes in the tenant's own language). Two causes, in order of likelihood. First, the connected account does not have access to that specific site, list, or library — SharePoint does not tell you which one, so ask the agent to list the sites it can see with share_point_list_sites and confirm the target is among them. Second, the connection is stale: if every SharePoint call fails this way, reconnect the integration from the dashboard.

Ask the agent to diagnose it:

Run clawlink_list_integrations and report SharePoint's status, then run share_point_list_sites and list what it returns. Do not retry the failing call first.
"Failed to create folder: Access denied."

The most frequent missing-scope error in the logs. Creating a folder is a write that needs the account to have edit permission on the destination library, and some tenants block folder creation by policy even for site owners. Check the account has edit access to that library in the browser first. If it does and the error persists, the tenant's permissions on the app may need an admin to approve them — reconnect and if the same call fails again, raise it with your IT team with this exact error string.

"List 'Site Pages' does not exist at site with URL ..."

This is a real SharePoint API error, and it usually means the agent asked for a list by a title that does not match anything on the site — the actual list may be named differently or live on a different site. SharePoint titles are exact and localized. Tell the agent to run share_point_list_all_lists (or share_point_get_list_by_guid) and use the real title or GUID from the results instead of the name it guessed.

"Server relative urls must start with SPWeb.ServerRelativeUrl"

The path arguments on the file and folder tools — folder_relative_url, server_relative_url — must start with a leading slash: /Shared Documents/Reports, not Shared Documents/Reports. This is the second most common argument error in the logs. Have the agent copy the path from share_point_list_drives_rest_api or share_point_list_files_in_folder results.

"Connection N needs to be reconnected before ... can run."

ClawLink's own re-auth message: the SharePoint token could not be refreshed, usually because access was revoked in Microsoft, a password change invalidated it, or the tenant requires re-consent. Reconnect SharePoint from the dashboard (one click, same sign-in flow) and the tools work again in the same chat. It is not a code or permission problem in your agent setup.

Ask the agent to diagnose it:

Tell me to reconnect SharePoint from the ClawLink dashboard. After I confirm, run clawlink_list_integrations and show me the status before retrying the call.
"arguments.list_title is required"

The agent called a list tool without the required list_title argument. The fix is not to guess the value — it is to have the agent run share_point_list_all_lists first and pass the exact title from the results. The same pattern applies to drive_id on share_point_list_drive_children and folder_relative_url on the file tools.

OAuth finished in the browser but the account is still missing

Try reconnecting SharePoint and complete the consent flow in the same browser session. Partial OAuth approvals or switching accounts mid-flow can leave the connection incomplete.

FAQ

Is there a OpenClaw SharePoint integration?

Yes. ClawLink is the fastest way to connect OpenClaw to SharePoint: link your SharePoint account once in the browser and OpenClaw can call the SharePoint API through 86 ready-made tools — no custom code or token handling.

How do I add SharePoint to OpenClaw with ClawLink?

Paste the setup prompt from this page into OpenClaw. It installs the ClawLink SharePoint skill from ClawHub, then you click Connect in the dashboard to authorize SharePoint. OpenClaw calls the tools from the next message — no config files or API keys to manage.

How long does it take to connect SharePoint to OpenClaw?

About two minutes. Sign in, click Connect next to SharePoint in the dashboard, authenticate, and OpenClaw can use it from the next chat message.

Why use ClawLink instead of wiring SharePoint up myself?

The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for OpenClaw. That is fine if you want to build and maintain the integration yourself. Most teams just want SharePoint working from chat.

Does connecting SharePoint to OpenClaw need an Azure app registration?

Not with ClawLink. The self-hosted route — a SharePoint MCP server or an OpenClaw skill — always starts with registering an application in Microsoft Entra (Azure AD), selecting Graph or SharePoint permissions, and in most tenants granting admin consent before anything works. ClawLink uses a Microsoft-registered OAuth client: you click Connect, sign in with your Microsoft 365 account, approve the consent screen, and the agent can call the SharePoint tools from the next message. No Entra app, no client secret, no admin consent flow.

Does ClawLink's SharePoint integration work with on-premises SharePoint Server?

No. The connection is a Microsoft 365 (SharePoint Online) account, so it only reaches sites under *.sharepoint.com. On-premises SharePoint Server and hybrid farms use different APIs and authentication, and the agent cannot reach them through this integration. If your content lives on an on-premises farm, you are looking at the self-hosted routes instead.

OpenClaw installed the SharePoint skill but can't call the tools

The ClawHub skill teaches OpenClaw about SharePoint, but the calls run through the ClawLink plugin and your connected account. Make sure SharePoint is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.