Skip to main content
Glama
sharepoint-online-mcp

sharepoint-online-mcp

by dYn36

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-mcp

Add 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_sites

Search for SharePoint sites by keyword

get_site_details

Get detailed information about a site

get_site_by_url

Resolve a site from its SharePoint URL

connect_to_site

Connect to a site (auto tenant discovery + auth)

list_my_sites

List sites you follow

Pages

list_pages

List pages in a site

get_page

Get page content and metadata

create_page

Create a new modern page

update_page

Update page title or description

publish_page

Publish a draft page

delete_page

Delete a page

Layout

add_section

Add a section with column layout

get_page_layout

Get the layout structure of a page

Web Parts

add_text_webpart

Add a text/HTML web part

add_image_webpart

Add an image web part

add_spacer

Add a spacer web part

add_divider

Add a divider web part

add_custom_webpart

Add any web part by type ID

Navigation

get_navigation

Get Quick Launch or Top Navigation

add_navigation_link

Add a navigation link

remove_navigation_link

Remove a navigation link

Branding

set_site_logo

Set the site logo

upload_asset

Upload a file to Site Assets

Utility

get_design_templates

List available site design templates

disconnect

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 AADSTS50076 or AADSTS53003, 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 disconnect tool and try again

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 ~/.sharepoint-mcp-cache.json and re-authenticate

License

MIT

Available Tools

25 tools
add_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_navigationB

Get site navigation (Quick Launch or Top Navigation)

Inputs: navType (required), siteUrl (required).

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).

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

    C2.6/5.0

    Scored across 25 tools

    Disambiguation3/5

    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.

    Naming Consistency4/5

    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.

    Tool Count3/5

    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.

    Completeness4/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      B
      maintenance
      An 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.
      4
      2,279 npm
      135
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Remote 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