mcp-server-sharepoint
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SP_PROFILE | No | Profile name for multi-tenant token caching. Default: 'default'. | |
| SP_AUTH_MODE | No | Authentication mode: 'device-code' (default) or 'service-principal'. Setting SP_CLIENT_SECRET overrides this. | |
| SP_CLIENT_ID | No | Azure AD app registration client ID. Override the built-in multi-tenant app. | |
| SP_TENANT_ID | No | Azure AD tenant ID. Required when using a custom app registration. | |
| SP_TOKEN_STORE | No | Token storage backend: 'keyring', 'file', or 'encrypted-file'. Default: auto-detect. | |
| SP_TOOL_GROUPS | No | Comma-separated list of tool groups to register (auth, site, drive, list, share, search). Default: all groups. | |
| SP_ALLOW_WRITES | No | Set to 'true' to enable write tools (file checkout/checkin, upload, etc.). Default: 'false'. | |
| SP_CLIENT_SECRET | No | Client secret for service-principal (unattended) authentication. If set, SP_AUTH_MODE is implicitly 'service-principal'. | |
| SP_TOKEN_PASSPHRASE | No | Passphrase for encrypted token storage. Only used when SP_TOKEN_STORE='encrypted-file'. | |
| SP_CHUNKED_UPLOAD_THRESHOLD_MB | No | Threshold in MB above which resumable upload sessions are used. Default: '100'. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| sp_auth_beginA | Initiate Microsoft Identity Device Code login for Idempotency: if a pending session already exists for this profile, the existing session is returned unchanged unless force=True (which cancels and restarts). AGENT_INSTRUCTIONS: Present the verification code to the user inside a fenced code block (so it can be copied with one click) and present the verification URL as a plain markdown link on its own line. Do not paraphrase, do not embed the code inside prose, do not wrap the URL in bold. Example: Rationale: in a chat UI, a code inside a fenced block gets a one-click copy button; a bare URL becomes clickable; bold-wrapped links and inline codes do not. |
| sp_auth_statusA | Return the current sign-in state for
Recently-terminal sessions ( AGENT_INSTRUCTIONS: When status='pending', present the verification code to the user inside a fenced code block (so it can be copied with one click) and present the verification URL as a plain markdown link on its own line. Do not paraphrase, do not embed the code inside prose, do not wrap the URL in bold. Same format as sp_auth_begin. |
| sp_site_listA | Discover SharePoint sites the signed-in user has access to. |
| sp_site_followed_listA | List sites the signed-in user has marked as Followed in SharePoint. Useful 'my SharePoint' entry point for an agent starting from the user's curated list rather than guessing site URLs. Not available in service-principal auth mode (no signed-in user) — falls back to a clear error there. Read-only. |
| sp_site_drive_listA | List all document libraries (drives) on a SharePoint site — default Shared Documents plus Site Assets, Style Library, and any custom libraries. |
| sp_site_page_listA | List all modern SharePoint Pages (Site Pages) on a site. Returns each page's id, name (filename), title, web_url, description, page_layout, thumbnail_web_url, last_modified, last_modified_by. Read-only. |
| sp_site_page_readA | Fetch a single SharePoint Page including its canvasLayout (sections, columns, web parts) as JSON. page_url shape: https:///sites//SitePages/.aspx. Read-only. |
| sp_site_trash_listA | List items in the SharePoint site's recycle bin. Returns each item's id, name, size, deleted_date_time, deleted_from_location (original folder), and deleted_by (display name). Read-only. NOTE: Microsoft Graph does not expose a restore action at site scope; items currently have to be restored via the SharePoint web UI. This tool uses Graph's /beta endpoint — the site-level recycle-bin API has not yet been promoted to v1.0. Schema may shift; we'll migrate when v1.0 lands. |
| sp_drive_folder_listA | List the immediate children of a SharePoint or OneDrive folder. |
| sp_drive_file_readA | Download a SharePoint file's content to a local temp file. Returns the absolute path of the temp file with the original extension preserved. Read-only — does NOT acquire a checkout/lock; use sp_drive_file_checkout for that. |
| sp_drive_file_historyA | List a SharePoint file's version history. Returns up to |
| sp_drive_file_version_getA | Download a specific historical version of a SharePoint file to a local temp file. Returns the absolute path. Use sp_drive_file_history first to find the version_id you want. Read-only — does NOT acquire a checkout, does NOT modify SharePoint state. |
| sp_drive_change_trackA | Return items in a SharePoint site's default drive that changed since the optional |
| sp_drive_checkout_listA | List the files this MCP profile currently has checked out (acquired via sp_drive_file_checkout). Returns each entry's original path, when checkout happened, and the local working-copy path. Read-only. With verify=True, additionally queries SharePoint to confirm the server-side lock state (server_locked + lock_holder fields); costs one Graph call per registry entry. Default verify=False is sub-second, registry-only — sp_drive_file_checkin's ETag round-trip catches divergence at write time. |
| sp_list_listA | List all SharePoint Lists on a site (Issue Trackers, Tasks, Custom Lists, etc.). Returns each list's id, name, display_name, web_url, description, created_date_time, last_modified_date_time, and template (e.g. 'genericList', 'documentLibrary', 'tasks'). Read-only. |
| sp_list_column_listA | Return the column definitions (schema) of a SharePoint List. Each column: id, display_name, name (internal), description, required, hidden, read_only, indexed, type (text/choice/number/boolean/datetime/person/lookup/calculated/hyperlink/currency). list_url shape: https:///sites//Lists/. Read-only. |
| sp_list_item_listA | List items in a SharePoint List with their full fields expanded. |
| sp_list_item_getA | Fetch a single SharePoint List item by id with all expanded fields. Returns id, created_date_time, last_modified_date_time, created_by, last_modified_by, web_url, fields (dict). list_url shape: https:///sites//Lists/. Read-only. |
| sp_share_link_listA | List existing sharing links on a SharePoint file or folder. Each entry: id (use with sp_share_link_revoke), web_url (the share URL), type (view/edit/embed/blocksDownload), scope (organization/anonymous/users), roles, expiration, has_password. Read-only — does not create or revoke. Use sp_share_link_create to make a new link, sp_share_link_revoke to remove one. SCOPE: only sharing-link permissions. For ALL access grants (direct user/group assignments, inherited site permissions, plus sharing links) use sp_share_permission_list instead. |
| sp_share_permission_listA | List who has access to a SharePoint file, folder, or site. Pass a site URL for site-level permissions or any item URL (file or folder) for that item's permissions. Returns each permission entry with id, roles (read/write/owner), grantee ({type, display_name, email, link_type, link_scope}), and inherited flag. Read-only — does not modify any permission state. Use this to answer 'who can see/edit this?' before suggesting changes or sharing links. SCOPE: all permission grants — direct user/group assignments, inherited site permissions, AND sharing links. To list only sharing links (and get their |
| sp_search_queryA | Search SharePoint document libraries the signed-in user has access to. Returns matching files with name, path, webUrl, last-modified date, and author. Read-only. Filter args: site (URL), folder (path), file_type (extension like 'docx'), modified_after (ISO date). SCOPE: currently driveItem-only (files in document libraries). Searching List items or sites by content is not yet supported — use sp_list_item_list with an OData filter for List-item lookup, sp_site_list for site discovery. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/XMV-Solutions-GmbH/sharepoint-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server