JUHE API Marketplace
Zerg00s avatar
MCP Server

SharePoint Online MCP Server

Allows Claude to interact with SharePoint Online using the REST API, enabling users to query site information, lists, and list items through natural language commands.

20
GitHub Stars
11/22/2025
Last Updated
MCP Server Configuration
1{
2 "name": "server-sharepoint",
3 "command": "npx",
4 "args": [
5 "-y",
6 "server-sharepoint"
7 ],
8 "env": {
9 "AZURE_APPLICATION_ID": "",
10 "AZURE_APPLICATION_CERTIFICATE_THUMBPRINT": "",
11 "AZURE_APPLICATION_CERTIFICATE_PASSWORD": "",
12 "M365_TENANT_ID": ""
13 }
14}
JSON14 lines
  1. Home
  2. MCP Servers
  3. server-sharepoint

README Documentation

SharePoint Online MCP Server šŸš€

SharePoint MCP Server

Most powerful SharePoint MCP server enabling seamless interaction with SharePoint Online through the SharePoint REST API.

This MCP server is designed to be used with the Claude Desktop app, but could be used by other MCP clients such as Cline as well.

Table of Contents

  • SharePoint Operations Availability
    • Users
    • Sites
    • Regional Settings
    • Features
    • Lists
    • List Views
    • List Content Types
    • List Items
    • Site Content Types
    • Pages
    • Documents
    • Taxonomy
  • Authentication Options
    • Option 1: Client Secret Authentication
      • Configuration steps
      • Allow SharePoint-only apps
      • Create SharePoint-only App with Client Secret
      • Grant App Permissions
    • Option 2: Certificate Authentication
      • Clone the repo
      • Create Azure AD App with Certificate
      • Grant Admin Consent
  • Install Node.js
  • Install and Configure Claude Desktop
    • Config for Certificate Authentication
    • Config for Client Secret Authentication
  • How to "talk" to the MCP Server
  • For Contributors
    • Build a new npm package
    • Run MCP Inspector locally
    • MCP Server Context 7 Documentation for LLMs
    • SharePoint REST API Documentation
    • Local Development

SharePoint Operations Availability

Users

OperationAvailableNotes
List Site Usersāœ…
List Site Groupsāœ…
Get Group Membersāœ…
Add Group Memberāœ…
Remove Group Memberāœ…
Get User ProfileāŒ/_api/SP.UserProfiles.PeopleManager
Update User ProfileāŒ

Sites

OperationAvailable
Get Site Detailsāœ…
Update Site Propertiesāœ…
Get Global Navigation Linksāœ…
Get Quick Navigation Linksāœ…
Add Navigation Linkāœ…
Update Navigation Linkāœ…
Delete Navigation Linkāœ…
Get Subsitesāœ…
Create SubsiteāŒ
Delete Subsiteāœ…

Regional Settings

OperationAvailable
Get Regional Settingsāœ…
Update Regional SettingsāŒ

Features

OperationAvailable
Get Site Collection Featuresāœ…
Get All Site Featuresāœ…
Get Site Featureāœ…
Get All Site Featureāœ…
Activate FeatureāŒ
Deactivate FeatureāŒ

Lists

OperationAvailableNotes
Get All Listsāœ…
Create Listāœ…
Add Site Content Type to listāœ…
Remove Content Type from listāœ…
Add Field to List Content TypeāŒ
Remove Field from List Content TypeāŒ
Update Listāœ…
Get List Fieldsāœ…
Create List Fieldāœ…Basic scenarios only
Update List Fieldāœ…
Delete List Fieldāœ…
Set List Field formattingāŒ
Set List View formattingāŒ
Delete Listāœ…

List Views

OperationAvailable
Get List Viewsāœ…
Delete List Viewāœ…
Create List Viewāœ…
Update List Viewāœ…
Get View Fieldsāœ…
Add View Fieldāœ…
Remove View Fieldāœ…
Remove All View Fieldsāœ…
Move View Fieldāœ…

List Content Types

OperationAvailableNotes
Get All List Content Typesāœ…
Get List Content Typeāœ…
Create List Content TypeāŒ
Update List Content Typeāœ…Change CT title and group only
Delete List Content Typeāœ…

List Items

OperationAvailable
Get All List Itemsāœ…
Create List Itemāœ…
Update List Itemāœ…
Delete List Itemāœ…

Site Content Types

OperationAvailableNotes
Get All Site Content Typesāœ…
Get Site Content Typeāœ…
Create Site Content TypeāŒ
Update Site Content Typeāœ…Change CT title and group only
Delete Site Content Typeāœ…

Pages

OperationAvailable
Create Modern Pageāœ…
Delete Modern Pageāœ…
List Modern Pagesāœ…
Add Page Web PartāŒ
Delete Page Web PartāŒ
Move Page Web PartāŒ
Update Page Web PartāŒ

Documents

OperationAvailable
Create DocumentāŒ
Upload DocumentāŒ
Move DocumentāŒ
Copy DocumentāŒ

Taxonomy

OperationAvailable
Get Taxonomy GroupāŒ
Create Taxonomy LabelāŒ
Update Taxonomy LabelāŒ
Delete Taxonomy LabelāŒ

Search

OperationAvailable
Search within SharePoint Siteāœ…

Authentication Options

The server supports two authentication methods:

  1. Client Secret Authentication - Traditional client ID and secret. It's the App-only authentication that is deprecated and will not work after April 2026.
  2. Certificate Authentication - More modern method using Azure AD App Registration with certificate

Option 1: Client Secret Authentication (Will not work after April 2026)

This option requires the SharePoint administrator role.

Configuration steps

āš ļø You need to be a SharePoint tenant admin or a global admin to create a SharePoint app.

Allow SharePoint-only apps

  • Download and install the SharePoint Online Management Shell from here.
  • Open PowerShell and run the following command to make sure the SharePoint-only apps are enabled:
Connect-SPOService -Url https://<your-tenant>-admin.sharepoint.com/
Set-SPOTenant -DisableCustomAppAuthentication $false

Create SharePoint-only App with Client Secret

  • Open https://<your-tenant>.sharepoint.com/_layouts/15/appregnew.aspx
  • Click Generate to create a new client ID and secret.
  • Fill in the following fields:
    • App Domain: www.example.com (or any domain you own)
    • Redirect URL: http://example.com App registration
  • Click Create to create the app.
  • Copy the Client ID and Client Secret values to a safe place. You will need them later.

Grant App Permissions

  • Open https://<your-tenant>.sharepoint.com/_layouts/15/appinv.aspx
  • Paste the Client ID value in the App ID field and click Lookup. Lookup
  • Paste the following XML in the App Permission Request XML field:
<AppPermissionRequests AllowAppOnlyPolicy="true">
   <AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" />
</AppPermissionRequests>
  • Click Create and then Trust It to grant the app permissions. Trust it

Option 2: Certificate Authentication

Certificate-based authentication provides better security than client secrets. It uses a certificate to prove the identity of the application instead of a shared secret.

āš ļø This option requires the Global administrator role to provide the necessary permissions to the app.

Clone the repo

git clone https://github.com/Zerg00s/server-sharepoint.git

Create Azure AD App with Certificate

Navigate to the cloned repo and use the provided PowerShell script to create the Azure AD app with certificate:

.\Create-SPAppCertificate.ps1 -AppName "SharePoint-Server-MCP" -CertName "SharePoint-Server-MCP-Cert" -CertPassword "YourSecureP@ssw0rd!"

This script will

  1. Create a self-signed certificate in your certificate store
  2. Register an Azure AD application
  3. Add the certificate to the application
  4. Configure the required SharePoint permissions
  5. Generate configuration files with the necessary settings
  6. Output the claude_desktop_config.json that is compatible with Claude Desktop

Grant Admin Consent

After running the script, you'll get an Admin Consent URL. Open it in a browser and sign in as a Global Admin to grant consent for the permissions.


Install Node.js

Install Node.js version: 22.14.0 or later

Install and Configure Claude Desktop

  • Download Claude Desktop and install it.
  • In Claude Desktop, go to File > Settings > Developer. File > Settings
  • Click Edit Config Config
  • Open the claude_desktop_config.json config file in the editor. You can also use the claude_desktop_config.json file generated by the PowerShell script earlier.
  • Paste the following to the config and update the mcpServers section with your own values:

Config for Certificate Authentication

{
  "mcpServers": {
    "server-sharepoint": {
      "command": "npx",
      "args": [
        "-y",
        "server-sharepoint"
      ],
      "env": {
        "AZURE_APPLICATION_ID": "<your-app-id>",
        "AZURE_APPLICATION_CERTIFICATE_THUMBPRINT": "<your-certificate-thumbprint>",
        "AZURE_APPLICATION_CERTIFICATE_PASSWORD": "<your-certificate-password>",
        "M365_TENANT_ID": "<your-tenant-id>"
      }
    }
  }
} 

Config for Client Secret Authentication (not recommended)

{
  "mcpServers": {
    "server-sharepoint": {
      "command": "npx",
      "args": [
        "-y",
        "server-sharepoint"
      ],
      "env": {
        "SHAREPOINT_CLIENT_ID": "<your-client-id>",
        "SHAREPOINT_CLIENT_SECRET": "<your-client-secret>",
        "M365_TENANT_ID": "<your-tenant-id>"
      }
    }
  }
} 

šŸ’”Learn how to get the tenant ID from Entra ID

  • Save the config file and restart Claude Desktop. Make sure to quit the app completely via the tasks tray icon: Quick Claude App

How to "talk" to the MCP Server

  • Open Claude Desktop and ask a question like Get me the list of lists from https://<your-tenant>.sharepoint.com/sites/Dashboard-Communication. Present the results in a table form. don't use code.

Sample result


For Contributors

Build a new npm package

npm run build
npm publish
npx clear-npx-cache
npm cache clean --force

Run MCP Inspector locally

npx @modelcontextprotocol/inspector node build/src/index.js

MCP Server Context 7 Documentation for LLMs

MCP Server Context 7 Documentation for LLMs

SharePoint REST API Documentation

  • SharePoint REST API Documentation
  • Complete basic operations using SharePoint REST endpoints
  • Request XML Schema for /_vti_bin/client.svc/ProcessQuery

Local Development

  • Clone the repo
  • nvm use 22.14.0
  • npm install
  • Update MCP config in claude_desktop_config.json file. Sample:

For client secret authentication (Will not work after April 2026)

{
"mcpServers": {
  "sharepoint": {
      "command": "node",
      "args": [
        "C:\\trash\\server-sharepoint\\build\\index.js"
      ],
      "env": {
        "SHAREPOINT_CLIENT_ID": "aaa2ce0f-7c97-4e51-acd9-4ac99e6831d0",
        "SHAREPOINT_CLIENT_SECRET": "bbb0OFF+aWkua2NJRERUMGduMmhsWDhGUTVPUHJZLXd5dldSemNPUw==",
        "M365_TENANT_ID": "22bcd981-eaa6-475f-aac3-3afca0c35261"
      }
    }
  }
}

For certificate authentication (Recommended)

{
"mcpServers": {
  "sharepoint": {
      "command": "node",
      "args": [
        "C:\\trash\\server-sharepoint\\build\\index.js"
      ],
      "env": {
        "AZURE_APPLICATION_ID": "5bc793c7-3eb0-4b86-88bf-b464b2459c4c",
        "AZURE_APPLICATION_CERTIFICATE_THUMBPRINT": "3D38D1D8AC3228CAD35E527D1105101B0B90CE86",
        "AZURE_APPLICATION_CERTIFICATE_PASSWORD": "TemporaryP@ssw0rd",
        "M365_TENANT_ID": "11bcd981-eaa6-475f-aac3-3afca0c35261"
      }
    }
  }
}
  • Make changes to the code
  • Build the code npm run build
  • Test with MCP Inspector: npx @modelcontextprotocol/inspector node build/src/index.js -y

Quick Install

Quick Actions

View on GitHubView All Servers

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source

Boost your projects with Wisdom Gate LLM API

Supporting GPT-5, Claude-4, DeepSeek v3, Gemini and more.

Enjoy a free trial and save 20%+ compared to official pricing.

Learn More
JUHE API Marketplace

Accelerate development, innovate faster, and transform your business with our comprehensive API ecosystem.

JUHE API VS

  • vs. RapidAPI
  • vs. API Layer
  • API Platforms 2025
  • API Marketplaces 2025
  • Best Alternatives to RapidAPI

For Developers

  • Console
  • Collections
  • Documentation
  • MCP Servers
  • Free APIs
  • Temp Mail Demo

Product

  • Browse APIs
  • Suggest an API
  • Wisdom Gate LLM
  • Global SMS Messaging
  • Temp Mail API

Company

  • What's New
  • Welcome
  • About Us
  • Contact Support
  • Terms of Service
  • Privacy Policy
Featured on Startup FameFeatured on Twelve ToolsFazier badgeJuheAPI Marketplace - Connect smarter, beyond APIs | Product Huntai tools code.marketDang.ai
Copyright Ā© 2025 - All rights reserved