AI workers for SharePoint
Ready-made AI workers for SharePoint: site libraries summarized, documents found across a sprawling estate, and change reports drawn from the libraries your team actually works in.
- Company Knowledge Concierge
Answers questions from your Drive, SharePoint, and Slack history, with citations to the source.
What is an AI worker for SharePoint?
An AI worker for SharePoint is an AI agent scoped to one document job inside your Microsoft 365 estate, such as reporting what changed in a team site or retrieving the current version of a policy nobody can find. It connects as your work account, inherits the access that account already has, and is narrowed further to the sites and libraries you scope it to.
What these workers do
Find the current version of a document
Searches the libraries you designate as authoritative and returns the live version with where it lives, rather than a copy somebody saved elsewhere.
Report what changed in a team site
Names the documents added or revised since the last run, so a site can be followed without anyone browsing it.
Summarize a policy or specification
Reads a long controlled document and returns what it requires in plain language, with the source named.
Flag documents that look abandoned
Surfaces material in an active library that has not been touched in a long time, so it can be retired or confirmed.
How an AI worker runs in SharePoint
It inherits your permissions, then gets narrower
Sites and libraries, not one search box
The estate nobody can navigate
SharePoint questions, answered.
Does an AI worker bypass SharePoint permissions?
No, and it has no mechanism to. It connects as an account with its own SharePoint access, and the scoping you apply on top can only narrow that further. Anything the account could not open remains unreadable to the worker, so the permissions your administrators designed continue to be the outer boundary.
Does my administrator need to approve the connection?
Connecting a Microsoft 365 work account follows your tenant's consent rules, so some organisations require an administrator to approve it once. After that, what the worker may do is governed by the permissions you set on it.
Can it write documents back into a library?
Only with write permission, which is frequently withheld for controlled libraries. A read only worker can summarize, locate, and report on documents with no ability to alter the record, which is usually what you want when the library is the authoritative copy of a policy or specification.
Which sites can it reach?
Only the sites and libraries you scope it to. Estates grow large and fill with abandoned material, so narrow scoping is not only a safety measure, it is what makes the answers correct: a worker reading three authoritative libraries beats one reading four hundred sites of varying age.
What AI workers can do in SharePoint
The tools a worker can be granted in SharePoint once you connect it. A kit grants only the ones its job needs, and you can narrow them further on the worker.
Read File as Model Input
Read an authorized PDF, PNG or JPEG as native model input. Requires download_file and forward_attachments. For supported Office documents, request representation=pdf for Microsoft conversion.
Search Files
Search or browse files across OneDrive-for-Business and SharePoint document libraries. Pass q for free-text search by name and content, or folderId to list one folder. Returns file metadata (name, size, owners, sharing, parent folder) with provider-prefixed IDs. Paginate via nextPageToken -> pageToken. An empty or short result with a non-null accessInfo means a token rule clamped the results, not that no files exist; render accessInfo verbatim. A partial result may carry authWarnings (provider refresh failures) — surface those as soft warnings, not errors.
Get File
Get metadata for a single file: name, MIME type, size, timestamps, owners, and parent folder. A 404 can mean the item is missing or blocked by policy — when the body's errorCode is BLOCKED, treat it as a policy denial (the item exists but is withheld), not a missing file.
Get File Download Links
Get view and download URLs for a file (always JSON, never binary). The downloadUrl is short-lived and unauthenticated — fetch it fresh each time and never cache it. exportLinks is always null for SharePoint.
Get File Permissions
List who can access a file: each entry's type (user, group, domain, anyone), role (owner, writer, reader), and identity. Check this before changing sharing with sharepoint_share_file.
Create Folder
Create a folder. `name` may be a relative path such as 'Reports/2026/Q3': each segment is created, or reused when a folder of that name is already there, and the deepest folder's ID is returned. parentFolderId is an existing folder ID, or a library's rootFolderId from sharepoint_list_drives.
Rename File
Rename a file or folder. Changes only the display name, not its location.
Move File
Move a file or folder to another folder in the same document library. Moving across libraries is rejected.
Delete File
Move a file or folder to the SharePoint recycle bin. Restorable during the tenant retention window; not a permanent delete.
Share File
Grant a person or group access to a file, and return the new permissionId. Microsoft emails the recipient unless sendNotification is false. SharePoint has no per-domain sharing: use sharepoint_create_share_link when you need the link URL back, an organization-only scope, an expiry, or a password.
Get File Sensitivity Label
Read the Microsoft sensitivity label assigned to a file: labelId, display name, assignment method (standard/privileged/auto), and assigned time. Returns success=false when the file is unlabelled.
Create Sharing Link
Mint a shareable URL for a file or folder and return it. `scope` decides who can use the link: anonymous (anyone with the link), organization (anyone signed in to the tenant), or users (only the listed recipients). Set expirationDateTime to time-box it. The tenant's sharing policy can refuse a scope or an expiry, which returns LINK_NOT_ALLOWED — that is an admin setting, not a token permission. Keep the returned permissionId to change or revoke the link later.
Update Permission
Change an existing permission's access level and/or expiry — use it to downgrade a collaborator from edit to read, or to add an expiry to a sharing link. Supply roles, expirationDateTime, or both; sending neither is rejected. SharePoint only accepts expirationDateTime on sharing links, not on a person's direct access.
Remove Permission
Revoke access: removes a person's or group's permission, or deletes a sharing link so its URL stops working. Get permission IDs from sharepoint_get_permissions. Removing a permission that no longer exists returns NOT_FOUND.
Copy File
Copy a file or folder, optionally into a different library. SharePoint copies asynchronously: a large item can still be copying when the call returns, which comes back as COPY_PENDING with no ID — list the destination folder a moment later to find the copy. A name that already exists in the destination is auto-renamed rather than overwritten.
Create File
Create a file from inline content: UTF-8 text in `content`, or binary as base64 in `contentBase64` (10 MB decoded limit) — exactly one of the two, or neither for an empty file. folderId is a folder ID, or a library's rootFolderId from sharepoint_list_drives.
List Sites
List the SharePoint sites the connection can see, optionally filtered by q (substring of display name and URL). Each site carries a provider-prefixed id (use as siteId), displayName, and webUrl. Paginate via nextPageToken -> pageToken.
Get Site
Get one SharePoint site's metadata (display name, URL, timestamps) by its provider-prefixed ID.
List Site Lists
List the lists and document libraries in a site. Each carries a provider-prefixed id (use as listId) and a template (genericList, documentLibrary, tasks, events, ...). Columns are omitted here — fetch one list with sharepoint_get_list for its column schema. Paginate via nextPageToken -> pageToken.
Get List
Get one list with its full column schema. Each columns[].name is the API name to use in filter, orderBy, selectFields, and item field keys — it is not the human-friendly displayName.
List List Items
List items in a list. Set selectFields to the comma-separated column API names you need — omitting it expands every column and is the top cause of Graph throttling. filter and orderBy are OData clauses passed through verbatim (you quote and escape). fields is null on each item when field values are masked off. Paginate via nextPageToken -> pageToken.
Get List Item
Get one list item by ID, including its field values (null when field values are masked off).
Create List Item
Create a list item. fields is keyed by column API name (from sharepoint_get_list), not displayName. A personOrGroup column takes the target's integer user ID under an 'Id'-suffixed key (e.g. AssignedToId). Returns the new item's provider-prefixed ID.
Update List Item
Update a list item's fields. Only the fields you include change; omitted fields are left as-is. Keys are column API names (from sharepoint_get_list).
Delete List Item
Delete a list item.
List Sensitivity Labels
List the tenant's sensitivity-label catalogue (id, displayName, color, sensitivity, tooltip). The catalogue is tenant-wide and rarely changes; cache it for the session. Use it to resolve the labelId that sharepoint_get_item_label returns into a human-readable label name.
Search SharePoint
Run a Microsoft Search KQL query across SharePoint files, list items, lists, and sites. q is KQL (e.g. Title:"Q1", FileType:docx, ContentType:Task), not SQL or Lucene — quote multi-word phrases. Hits carry an entityType and a provider-prefixed id, and are already filtered to what token rules allow. total is the unfiltered Graph hit count, so use moreResultsAvailable as the authoritative next-page signal and advance from by limit to page.
List Document Libraries
List a site's document libraries. Each carries a `rootFolderId` — pass it as folderId to sharepoint_search_files to browse that library, or as parentFolderId to sharepoint_create_folder. A site usually has several libraries, so start here rather than assuming one.
List Site Pages
List a site's modern pages and news posts: title, description, layout, publishing state and web URL. This is site content, not files — the page body and its web parts are not exposed.
Get Site Page
Get one site page's metadata: title, description, layout, promotion kind (page or news post) and publishing state. Page body content and web parts are not available.
Update Site Page
Update a site page's METADATA — title, description, whether it is a page or a news post, and the comment/recommendation toggles. The page body and its web parts cannot be edited here. A page in draft stays in draft until sharepoint_publish_page runs.
Publish Site Page
Publish a site page so readers can see it. A newly created or edited page stays in draft until it is published. Publishing an already-published page is harmless.