sharepoint-online-mcp
SharePoint Online MCP Server
MCP server for SharePoint Online — zero-config, no Azure Portal, no env vars.
Quick Start
Install and run:
npx sharepoint-online-mcpAdd to Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"sharepoint": {
"command": "npx",
"args": ["-y", "sharepoint-online-mcp"]
}
}
}No environment variables needed. That's the entire setup.
Related MCP server: sharepoint-mcp
How It Works
Uses the Microsoft Office well-known client ID — no Azure app registration needed
On first use, prompts for device code authentication (open a URL, enter a code)
Auto-discovers your tenant ID from the SharePoint URL
Caches tokens in
~/.sharepoint-mcp-cache.json— persists across restarts
Usage
Start by asking Claude to connect to your SharePoint site:
"Connect to https://contoso.sharepoint.com/sites/marketing"
Claude will handle the authentication prompts. Once connected, use any tool — search sites, create pages, manage navigation, and more.
Tools
Category | Tool | Description |
Sites |
| Search for SharePoint sites by keyword |
| Get detailed information about a site | |
| Resolve a site from its SharePoint URL | |
| Connect to a site (auto tenant discovery + auth) | |
| List sites you follow | |
Pages |
| List pages in a site |
| Get page content and metadata | |
| Create a new modern page | |
| Update page title or description | |
| Publish a draft page | |
| Delete a page | |
Layout |
| Add a section with column layout |
| Get the layout structure of a page | |
Web Parts |
| Add a text/HTML web part |
| Add an image web part | |
| Add a spacer web part | |
| Add a divider web part | |
| Add any web part by type ID | |
Navigation |
| Get Quick Launch or Top Navigation |
| Add a navigation link | |
| Remove a navigation link | |
Branding |
| Set the site logo |
| Upload a file to Site Assets | |
Utility |
| List available site design templates |
| Clear auth tokens and disconnect |
Requirements
Node.js >= 18
A Microsoft 365 / SharePoint Online account
Known Limitations
Some organizations block device code authentication via Conditional Access policies. If you see error
AADSTS50076orAADSTS53003, contact your IT administrator.Only works with SharePoint Online (Microsoft 365), not on-premises SharePoint Server.
Permissions depend on your Microsoft 365 account — you can only access sites you have permission to.
Troubleshooting
Problem | Solution |
Authentication failed | Run the |
Tenant discovery failed | Check that the SharePoint URL is correct and accessible |
Access denied (403) | Your account may not have permission for this site or operation |
Resource not found (404) | Verify the site URL, page ID, or resource exists |
Token issues | Delete |
License
MIT
Available Tools
25 toolsadd_custom_webpartC
Add a custom web part from a JSON definition (advanced)
Inputs: pageId (required), siteId (required), columnIndex (required), webPartJson (required), +1 more.
add_dividerC
Add a horizontal divider
Inputs: pageId (required), siteId (required), columnIndex (required), sectionIndex (required).
add_image_webpartC
Add an image web part to a section
Inputs: pageId (required), siteId (required), imageUrl (required), columnIndex (required), +3 more.
add_sectionC
Add a new section to a page
Inputs: pageId (required), siteId (required), sectionTemplate (required), emphasis.
add_spacerC
Add a spacer web part
Inputs: pageId (required), siteId (required), columnIndex (required), sectionIndex (required), +1 more.
add_text_webpartC
Add a text web part (HTML) to a section
Inputs: html (required), pageId (required), siteId (required), columnIndex (required), +1 more.
connect_to_siteA
Connect to a SharePoint site from its URL. Automatically discovers the tenant and resolves the site. Use this as the starting point when a user provides a SharePoint URL.
Inputs: url (required).
create_pageC
Create a new SharePoint page with optional layout and title area template
Inputs: name (required), title (required), siteId (required), layout, +3 more.
delete_pageD
Delete a page
Inputs: pageId (required), siteId (required).
disconnectA
Disconnect from SharePoint and clear cached authentication. Use this to switch accounts or re-authenticate.
Inputs: no named parameters.
get_design_templatesA
Get available design templates for sections, title areas, and web parts
Inputs: no named parameters.
get_pageB
Get the full content of a page including canvas layout and web parts
Inputs: pageId (required), siteId (required).
get_page_layoutC
Get the canvas layout of a page (sections, columns, web parts)
Inputs: pageId (required), siteId (required).
get_site_by_urlC
Find a site by hostname and path
Inputs: hostname (required), sitePath (required).
get_site_detailsB
Get details of a SharePoint site (ID, URL, description, lists)
Inputs: siteId (required).
list_my_sitesB
List SharePoint sites the current user follows
Inputs: no named parameters.
list_pagesC
List all pages of a SharePoint site
Inputs: siteId (required).
publish_pageC
Publish a page
Inputs: pageId (required), siteId (required).
search_sitesC
Search for SharePoint sites by keyword
Inputs: query (required).
set_site_logoB
Set a SharePoint site logo
Inputs: logoUrl (required), siteUrl (required).
update_pageC
Update page properties (title, title area, etc.)
Inputs: pageId (required), siteId (required), title, titleLayout, +3 more.
upload_assetC
Upload a file (image, CSS, etc.) to Site Assets
Inputs: siteId (required), fileName (required), base64Content (required), folder.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 25 tools
Clear/ambiguous split: connection and navigation tools are distinct, but multiple 'add_*' webpart tools (add_image_webpart, add_spacer, add_divider, add_text_webpart, add_custom_webpart) and section/layout tools overlap conceptually. An agent could reasonably hesitate between add_custom_webpart and the specific webpart adders, or between get_page, get_page_layout, and get_site_details.
Predominantly consistent snake_case verb_noun convention (add_image_webpart, remove_navigation_link, get_site_details, create_page). Minor inconsistency: set_site_logo and disconnect lack the noun/object pattern, and add_spacer/add_divider omit the webpart suffix used by siblings.
25 tools is at the heavy end of the acceptable range and reflects a rich domain (pages, sections, webparts, navigation, site admin, auth). However, no bulk or read-only toolset split exists and the surface feels padded with granular webpart adders rather than more general operations.
Covers the full page lifecycle (list, get, create, update, publish, delete) plus sections, webparts, navigation, site discovery, assets, and auth. Gaps exist: no update/delete for webparts or sections, no unpublish, no list/page-versioning, and no comment or permission management.
Maintenance
Related MCP Connectors
Official Microsoft MCP Server to query Microsoft Entra data using natural language
MCP server that lets your AI assistant build and deploy apps, hosting each one at a live URL.
The MCP server for Azure DevOps, bringing the power of Azure DevOps directly to your agents.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Related MCP Servers
- AlicenseBqualityBmaintenanceAn MCP server that enables running CLI for Microsoft 365 commands through GitHub Copilot Agent, allowing users to interact with Microsoft 365 services using natural language.42,279 npm135MIT
- AlicenseAqualityDmaintenanceA production-grade Model Context Protocol (MCP) server for Microsoft SharePoint that connects AI agents to read files, manage folders, and reason over organizational knowledge.14353 PyPI12MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that connects AI assistants to SharePoint via Microsoft Graph API, enabling natural language queries for documents, lists, and site management.94-
- AlicenseNot gradedqualityDmaintenanceRemote MCP server for Microsoft Graph with delegated OAuth support, enabling interaction with Microsoft 365 services like mail, calendar, OneDrive, SharePoint, Teams, and more via natural language.MIT