WorkerKit

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.

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

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.

Browse SharePoint kits

All apps