Any connector can list files. The reason to reach for this one is that a PDF or a spreadsheet comes back as text the model can actually reason over, so "summarise the Q3 report in the Finance folder" is one call and not a download-and-convert dance. Tree depth is bounded by SHP_MAX_DEPTH and SHP_MAX_FOLDERS_PER_LEVEL, which matters on a large library.
A Microsoft SharePoint server for MCP clients. It walks a document library, reads file contents as text, searches with Keyword Query Language, and writes files and metadata back.
- `Get_Document_Content` extracts text automatically from .pdf, .docx, .doc, .xlsx, .xls and plain formats; binaries come back Base64
- `Search_SharePoint` runs a KQL query such as `filename:report OR content:budget` and returns Title, Path, FileExtension, ServerRelativeUrl, HitHighlightedSummary and Author
- `List_SharePoint_Folders` and `Get_SharePoint_Tree` browse the library, flat or as a recursive tree
- `List_SharePoint_Documents` lists files in a folder with name, url, size, created and modified
- `Upload_Document` takes content inline; `Upload_Document_From_Path` sends a local file with no Base64 step; `Update_Document` overwrites; `Download_Document` saves one locally
- `Create_Folder`, `Delete_Folder` and `Delete_Document` handle structure — deleting a folder fails unless it is empty
- `Get_File_Metadata` and `Update_File_Metadata` read and set SharePoint list-item fields
The PyPI package sharepoint-mcp, version 1.0.0, over uvx and stdio, or the Docker image. It needs an Azure AD app registration: SHP_ID_APP, SHP_ID_APP_SECRET, SHP_TENANT_ID and SHP_SITE_URL are all required; SHP_DOC_LIBRARY defaults to `Shared Documents/mcp_server`.
One command plus a key — pip install sharepoint-mcp, then supply credentials
