ClawLink

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.

Get started for free
Hermes Agent
Hermes Agent
ClawLink
ClawLink
SharePoint
SharePoint
SharePointOAUTH2MCP

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.

86 tools

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.

Prompt for Hermes
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.

  1. 1

    Install and pair

    Install the ClawLink plugin, then pair Hermes with a one-time browser approval:

    hermes plugins install ClawLink-HQ/hermes-plugin --enable
  2. 2

    Connect SharePoint

    One-click OAuth in the dashboard.

  3. 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 test

Then 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 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 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

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 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, and share_point_list_drives_rest_api are 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_api takes no site_id. Passing one fails. This catches agents that have just called share_point_list_sites and reasonably assume the GUID belongs somewhere.
  • Two ways to open a list, and they take different keys. share_point_get_list_by_title takes a human title; share_point_get_list_by_guid takes 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_query is the fastest way to find a document across sites without knowing the path, and share_point_search_suggest completes partial terms. Neither reaches past your own permissions.
  • Uploads have two shapes. share_point_upload_file sends bytes; share_point_upload_from_url fetches 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, and share_point_undo_checkout_file mirror 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_file and share_point_recycle_list_item are recoverable through share_point_restore_recycle_bin_item. share_point_delete_recycle_bin_item_permanent is not.

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.

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 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.