search_filesLABSCO SUMMARY
SharePoint answered from Graph, not from the UI.
It authenticates as an application rather than as you, so search and file reads run unattended - and because the two permissions it asks for are the read-only pair, the most it can do is read.
What it is
A TypeScript MCP server over the Microsoft Graph API. It searches files across SharePoint, lists the sites the app registration can reach, opens a site's document libraries, walks folders inside them, and returns the contents of a text file. Sites are also exposed as resources under sharepoint://site/{siteId}.
What you get
- Files found across SharePoint through the Graph Search API
- The sites your app registration can reach, filtered by display name
- One site's details, from its URL
- The document libraries in a site
- The files and folders in a library, from the root or from a folder path
- The contents of a text file
Requirements
An Azure app registration with Sites.Read.All and Files.Read.All granted as application permissions, with admin consent given - without the consent step the tools come back empty. Four environment variables: the SharePoint site URL, your tenant id, and the app's client id and secret. The permissions are read-only, and file contents are returned for text files only.
Setup effort
Build from source
USE CASES
Finding a document nobody remembers the name of
Graph search covers the files across sites, not one library at a time.
Reading a policy file into the conversation
Search for it, then pull the text content straight out of the library.
Mapping what lives in a site
List the document libraries, then walk the folders inside the one that matters.
Auditing which sites an integration can reach
The site list is exactly what the app registration has been granted, and details fill in the rest.
Pulling a spec out of a library mid-task
Walk to the folder, then read the file without leaving the editor.
6 tools
Listed in project docs. Your client may show a different list.
list_sitesget_site_infolist_site_driveslist_drive_itemsget_file_contentBEFORE YOU INSTALL
What to know first
Tools you get
6 tools named in the project's documentation. Every tool only reads; nothing uploads, edits or deletes, matching the read-only Sites.Read.All and Files.Read.All permissions it requests.
Requires
- TENANT_ID in your environment
- CLIENT_ID in your environment
- CLIENT_SECRET in your environment
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
git clone https://github.com/sekops-ch/sharepoint-mcp-server
cd sharepoint-mcp-server
npm install
npm run buildMCP Clients
Claude Desktop
{
"mcpServers": {
"sharepoint-mcp-server": {
"command": "node",
"args": [
"<YOUR_PATH_TO_SHAREPOINT_MCP_SERVER>/build/index.js"
],
"env": {
"SHAREPOINT_URL": "https://<YOUR_TENANT>.sharepoint.com",
"TENANT_ID": "<YOUR_TENANT_ID>",
"CLIENT_ID": "<YOUR_CLIENT_ID>",
"CLIENT_SECRET": "<YOUR_CLIENT_SECRET>"
}
}
}
}