How to connect SharePoint to Hermes Agent
Connect SharePoint to Hermes Agent with ClawLink: no Azure app registration, no admin consent request, no client secret. 86 SharePoint tools your agent calls from chat.


Browse sites, lists, and files in SharePoint. Once connected, Hermes Agent can read and act on SharePoint from chat — pairing, token refresh, and tool wiring handled for you.
Most guides for giving Hermes Agent SharePoint access start with registering your own OAuth app or pasting API keys into env files, then leave the token refresh and tool wiring to you. ClawLink gives Hermes a more practical SharePoint setup: pair once in the browser and your always-on Hermes agent can act on SharePoint for you, reading and doing real work on your behalf with no auth, token refresh, or tool wiring to build yourself.
Copy this prompt into Hermes to install the plugin and pair your account.
Set up ClawLink for Hermes and tell me when it's ready.
1. Install the plugin:
hermes plugins install ClawLink-HQ/hermes-plugin --enable
2. Start pairing. It prints an approval link, so show me the link and stop, don't wait:
hermes clawlink begin
3. I'll approve it in my browser, then reply "approved".
4. When I say approved, finish setup:
hermes clawlink finish
5. Then run `hermes clawlink test` and tell me whether ClawLink is ready.Setup
It takes three steps to connect Hermes to SharePoint.
1Install and pair
Install the ClawLink plugin, then pair Hermes with a one-time browser approval:
hermes plugins install ClawLink-HQ/hermes-plugin --enable- 2
Connect SharePoint
One-click OAuth in the dashboard.
- 3
Use it from chat
Ask Hermes Agent: "What can you do with SharePoint?"
Install by command
The prompt above walks Hermes through this. By hand, it is four commands and a browser approval:
hermes plugins install ClawLink-HQ/hermes-plugin --enable
hermes clawlink begin # prints an approval link — open it and approve
hermes clawlink finish # after approving in the browser
hermes clawlink testThen connect SharePoint in the ClawLink dashboard — a one-click OAuth approval, no API keys.
Verify the connection by asking Hermes:
Use share_point_search_query to find documents mentioning "Q3 renewal" across the sites I can access. Show me the title, the site, and the last modified date for the top ten, then tell me which looks most current.
Using a different agent?
The Hermes 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 loginlogin 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 Hermes
Looking for a SharePoint MCP server for Hermes Agent? ClawLink connects SharePoint to Hermes Agent and exposes 86 SharePoint tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using OpenClaw instead? The OpenClaw SharePoint integration works the same way.
The usual path to SharePoint runs through Entra ID. Register an application, add Microsoft Graph permissions such as Sites.Read.All or Files.ReadWrite.All, request admin consent from someone in IT, then handle a client secret that expires. For most people the blocker is not the code, it is waiting on the consent request. ClawLink connects through Microsoft's own sign-in using an application that is already registered, so you sign in as yourself and the 86 tools below act with your permissions. The distinction that matters: this is delegated access, so the agent inherits what your account can already open. It cannot reach a site you cannot reach, which is why no tenant-wide admin grant is involved.
What the Hermes Agent SharePoint integration can do
86 SharePoint tools are ready for Hermes Agent 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 Hermes
| Tool | What it does |
|---|---|
Share point add attachment to list item share_point_add_attachment_to_list_item | Tool 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_type | Tool 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_item | Tool 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_list | Tool to add a role assignment to a SharePoint list. |
Share point break role inheritance on item share_point_break_role_inheritance_on_item | Tool to break permission inheritance on a list item. |
Share point break role inheritance on list share_point_break_role_inheritance_on_list | Breaks permission inheritance on a SharePoint list, allowing you to set unique permissions. |
Share point check in file share_point_check_in_file | Tool 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_type | Tool 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_link | Tool to create a sharing link for a drive item in SharePoint or OneDrive. |
Share point create list field share_point_create_list_field | Tool 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_id | Tool 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_folder | Tool 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_url | Download a file by server-relative URL |
Share point get all folders share_point_get_all_folders | Retrieve all folders in the SharePoint web |
Share point get changes share_point_get_changes | Retrieve changes from SharePoint list change log |
Share point get content type share_point_get_content_type | Retrieve a single SharePoint content type by its ID |
Share point get content types share_point_get_content_types | Retrieves all content types from the current SharePoint site |
Share point get content types for list share_point_get_content_types_for_list | Retrieve all content types for a specific SharePoint list by GUID |
Share point get context info share_point_get_context_info | Retrieve SharePoint context information including the form digest value |
Share point get current user share_point_get_current_user | Retrieve the current user for the site |
Share point get drive item analytics share_point_get_drive_item_analytics | Get analytics for a SharePoint drive item |
Share point get group users share_point_get_group_users | Retrieves all users who are members of a specified SharePoint group |
Share point get group users by ID share_point_get_group_users_by_id | Retrieve all users in a specific SharePoint site group by group ID |
Share point get item attachment content share_point_get_item_attachment_content | Download an attachment from a SharePoint list item |
Share point get list by guid share_point_get_list_by_guid | Retrieve a SharePoint list by its GUID |
Share point get list by title share_point_get_list_by_title | Retrieve a SharePoint list by its title |
Share point get list content type by ID share_point_get_list_content_type_by_id | Retrieve a specific content type from a SharePoint list by its ID |
Share point get list item by ID share_point_get_list_item_by_id | Retrieve a SharePoint list item by ID |
Share point get list item version share_point_get_list_item_version | Retrieve a specific version of a SharePoint list item |
Share point get list items share_point_get_list_items | Retrieve 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 Hermes can do and copy a ready-to-use prompt.
Example prompts
Use share_point_search_query to find documents mentioning "Q3 renewal" across the sites I can access. Show me the title, the site, and the last modified date for the top ten, then tell me which looks most current.
Run share_point_list_sites, then for the site I pick use share_point_list_all_lists and share_point_list_drive_children on the main document library. Tell me which files have not been touched in over a year and roughly how much space they take.
Find the folder called "Monthly reports" in the site I name using share_point_list_files_in_folder, then upload the file I give you with share_point_upload_file. Confirm the destination path before uploading.
Use share_point_get_list_by_title to open the "Vendor reviews" list, show me the items with status Pending, then update the two I name to Complete with share_point_update_list_item and add today's date to the review field.
How the SharePoint tools behave
Facts from the manifest and from Microsoft's permission model. The first two decide whether a first attempt works.
- List before you act.
share_point_list_sites,share_point_list_all_lists, andshare_point_list_drives_rest_apiare the discovery calls. Site ids and list GUIDs cannot be guessed, and an invented one produces a permissions-shaped error rather than a not-found. share_point_list_drives_rest_apitakes nosite_id. Passing one fails. This catches agents that have just calledshare_point_list_sitesand reasonably assume the GUID belongs somewhere.- Two ways to open a list, and they take different keys.
share_point_get_list_by_titletakes a human title;share_point_get_list_by_guidtakes the GUID. Titles change and GUIDs do not, so a saved workflow is safer with the GUID. - Search covers what your account can see.
share_point_search_queryis the fastest way to find a document across sites without knowing the path, andshare_point_search_suggestcompletes partial terms. Neither reaches past your own permissions. - Uploads have two shapes.
share_point_upload_filesends bytes;share_point_upload_from_urlfetches from a URL server-side, which avoids moving a large file through the agent at all. - Check-out and check-in are separate tools.
share_point_sharepoint_check_out_file,share_point_check_in_file, andshare_point_undo_checkout_filemirror the SharePoint UI. A file left checked out by an agent blocks other people editing it, so pair them in the same prompt. - Deletes go to the recycle bin by default.
share_point_recycle_fileandshare_point_recycle_list_itemare recoverable throughshare_point_restore_recycle_bin_item.share_point_delete_recycle_bin_item_permanentis not.
ClawLink vs. building it yourself
The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want SharePoint working from chat.
| Manual | ClawLink | |
|---|---|---|
| Connection flow | Register 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 maintenance | You 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 usability | You 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. |
ClawLink vs. Composio
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 Hermes Agent 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
Hermes paired but still can't use SharePoint
Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.
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.
SharePoint returns 403, "Access denied. You do not have permission to perform this action or access this resource", or Microsoft Graph returns "Authorization_RequestDenied"
Search results answer this with app-registration surgery: add Sites.Read.All in Entra ID, grant admin consent, check the token in jwt.ms, look at Site.Selected assignments. None of that applies to a delegated hosted connection, where the permissions were fixed at sign-in and there is no token for you to inspect. Two things cause it here instead. The first is genuine access: the connection acts as you, so a site or library your account cannot open returns 403, and it will keep doing so until someone shares it with you. Open the site in a browser as the same account to confirm in ten seconds. The second is a placeholder argument: an agent that has not listed anything yet invents a site id or list guid, and because those are structurally valid the call reaches Microsoft and comes back as a permissions failure rather than a bad id. Run share_point_list_sites and share_point_list_all_lists first, then retry with real values.
Ask the agent to diagnose it:
Run share_point_get_current_user and tell me which account is connected. Then run share_point_list_sites and show me every site you can see. Do not retry the failing call until both have returned.SharePoint calls fail on one site or library while the rest of the tenant works
This is unique permissions, and it is a SharePoint feature rather than a fault. Any site, library, folder, or single item can have its permission inheritance broken, so a person with access to the parent has none to the child. The agent hits exactly the same wall you would. share_point_get_user_effective_permissions_on_web reports what the connected account actually holds on a given web, which turns a guessing game into one call. If the answer is that you genuinely lack access, the fix is a person who owns that site granting it, and no amount of reconnecting will substitute.
Ask the agent to diagnose it:
Run share_point_get_user_effective_permissions_on_web for the site I name and tell me exactly which permissions the connected account has there.A SharePoint tool returns "tool not found", or the agent passes a site_id to a tool that does not take one
If the name looks right, the tool catalog had not loaded when the first call went out; schemas load on demand, so retrying once usually clears it. The more interesting failure is an argument that does not exist. share_point_list_drives_rest_api takes no site_id, so an agent that helpfully collected a site GUID from share_point_list_sites and passed it in gets an error that reads like a permissions or not-found problem. Tell the agent to call the tool with the arguments its schema actually declares. This is a different failure from what most search results describe, which is a local MCP server missing from an editor config; there is no local server here.
Ask the agent to diagnose it:
List the SharePoint tools you have available and show me the exact arguments the one you just called accepts. Then call it again with only those arguments.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 Hermes Agent SharePoint integration?
Yes. ClawLink is the fastest way to connect Hermes to SharePoint: link your SharePoint account once in the browser and Hermes Agent can call the SharePoint API through 86 ready-made tools — no custom code or token handling.
How do I connect SharePoint to Hermes with ClawLink?
Install the plugin with hermes plugins install ClawLink-HQ/hermes-plugin --enable, then pair once: run hermes clawlink begin, approve the link in your browser, and run hermes clawlink finish. Connect SharePoint in the dashboard and Hermes can use it from the next message — no config files or API keys to manage.
How long does it take to connect SharePoint to Hermes Agent?
About two minutes. Sign in, click Connect next to SharePoint in the dashboard, authenticate, and Hermes Agent 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 Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want SharePoint working from chat.
Can I connect SharePoint to an AI agent without my own Azure app registration?
Yes. Registering an app is what you do when you are building the integration: create the application in Entra ID, choose delegated or application permissions, get admin consent for the tenant, then manage a secret that expires on a schedule. ClawLink connects through an application that is already registered, so your side of it is a Microsoft sign-in. What you are approving is delegated access, meaning the connection acts as you rather than as a service with tenant-wide reach. Your administrator can still see and revoke the grant from the tenant's enterprise applications, and depending on how your tenant is configured they may need to approve it once before the connection completes.
Does the agent get access to everything in our SharePoint?
No, and the mechanism is worth understanding because it is the opposite of how the app-registration route usually works. A registered app with application permissions and admin consent can be granted tenant-wide reach across every site. This connection uses delegated access instead, so the ceiling is your own account. Sites you cannot open, you cannot reach through the agent. Libraries with unique permissions that exclude you stay excluded. If you want to know exactly what the agent can see before you trust it with anything, ask it to run share_point_list_sites and read the list back.
Do I need to be a SharePoint or tenant administrator?
Not to use it. You need whatever access you already have to the sites you want the agent to work with. Whether you need an administrator involved at all depends on your tenant's consent policy: many organizations allow users to consent to applications themselves, and others route every new application to an admin approval queue. If your sign-in ends on a screen saying approval is required, that is the tenant policy rather than a ClawLink setting, and the fix is your IT team approving the application once for everyone.
Does this work with SharePoint Server on-premises?
No. The connection targets SharePoint Online in Microsoft 365. An on-premises SharePoint Server farm is not reachable through this flow, and the community MCP servers that do target it need credentials you manage and a network path to the farm.
Hermes paired but still can't use SharePoint
Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.