Skip to main content
Glama
Zerg00s

SharePoint Online MCP Server

by Zerg00s

SharePoint Online MCP-Server

Dies ist ein MCP-Server für Claude Desktop, der Ihnen die Interaktion mit SharePoint Online über die SharePoint REST-API ermöglicht. Er ist für die Verwendung mit der Claude Desktop- App konzipiert, kann aber auch von anderen MCP-Clients verwendet werden.

Durchführung

Komponente

Betrieb

Verfügbar

Benutzer

✅

Site-Benutzer nach Rolle auflisten

✅

Site-Gruppen auflisten

✅

Gruppenmitglieder abrufen

✅

Gruppenmitglied hinzufügen

✅

Gruppenmitglied entfernen

✅

Seiten

✅

Sitedetails abrufen

✅

Site-Eigenschaften aktualisieren

✅

Holen Sie sich globale Navigationslinks

✅

Schnellnavigationslinks erhalten

✅

Navigationslink hinzufügen

✅

Navigationslink aktualisieren

✅

Navigationslink löschen

✅

Unterwebsites abrufen

✅

Subsite erstellen

❌

Unterseite löschen

✅

Listen

✅

Alle Listen abrufen

✅

Liste erstellen

✅

Liste aktualisieren

❌

Listenfelder abrufen

✅

Listenfeld erstellen

✅

Listenfeld aktualisieren

✅

Listenfeld löschen

✅

Formatierung des Listenfelds festlegen

❌

Formatierung der Listenansicht festlegen

❌

Liste löschen

✅

Listenansichten

✅

Listenansichten abrufen

✅

Listenansicht löschen

✅

Listenansicht erstellen

✅

Listenansicht aktualisieren

✅

Ansichtsfelder abrufen

✅

Ansichtsfeld hinzufügen

✅

Ansichtsfeld entfernen

✅

Alle Ansichtsfelder entfernen

✅

Ansichtsfeld verschieben

✅

Listenelemente

✅

Alle Listenelemente abrufen

✅

Listenelement erstellen

✅

Listenelement aktualisieren

✅

Listenelement löschen

✅

Inhaltstypen auflisten

❌

Alle Listeninhaltstypen abrufen

❌

Listeninhaltstyp erstellen

❌

Inhaltstyp der Aktualisierungsliste

❌

Listeninhaltstyp löschen

❌

Seiten

❌

Moderne Seite erstellen

❌

Unterlagen

❌

Dokument erstellen

❌

Dokument hochladen

❌

Dokument kopieren

❌

Taxonomie

❌

Taxonomy Group abrufen

❌

Taxonomiebezeichnung erstellen

❌

Taxonomiebezeichnung aktualisieren

❌

Taxonomiebezeichnung löschen

❌

Related MCP server: SharePoint MCP Server

Authentifizierungsoptionen

Der Server unterstützt zwei Authentifizierungsmethoden:

  1. Client Secret-Authentifizierung – Traditionelle Client-ID und Geheimnis. Die reine App-Authentifizierung ist veraltet und wird nach April 2026 nicht mehr funktionieren.

  2. Zertifikatauthentifizierung – Modernere Methode durch Verwendung der Azure AD-App-Registrierung mit Zertifikat

Option 1: Client Secret-Authentifizierung (funktioniert nach April 2026 nicht mehr)

Diese Option erfordert die SharePoint-Administratorrolle.

Konfigurationsschritte

⚠️ Sie müssen ein SharePoint-Mandantenadministrator oder ein globaler Administrator sein, um eine SharePoint-App zu erstellen.

Nur SharePoint-Apps zulassen

  • Laden Sie die SharePoint Online-Verwaltungsshell hier herunter und installieren Sie sie.

  • Öffnen Sie PowerShell und führen Sie den folgenden Befehl aus, um sicherzustellen, dass die Nur-SharePoint-Apps aktiviert sind:

Connect-SPOService -Url https://<your-tenant>-admin.sharepoint.com/
Set-SPOTenant -DisableCustomAppAuthentication $false

Erstellen Sie eine reine SharePoint-App mit Client Secret

  • Öffnen Sie https://<your-tenant>.sharepoint.com/_layouts/15/appregnew.aspx

  • Klicken Sie auf Generate , um eine neue Client-ID und ein neues Geheimnis zu erstellen.

  • Füllen Sie die folgenden Felder aus:

    • App-Domäne: www.example.com (oder eine beliebige Domäne, die Sie besitzen)

    • Weiterleitungs-URL: http://example.comApp-Registrierung

  • Klicken Sie auf Create , um die App zu erstellen.

  • Kopieren Sie die Werte für Client ID und Client Secret an einen sicheren Ort. Sie benötigen sie später.

App-Berechtigungen erteilen

  • Öffnen Sie https://<your-tenant>.sharepoint.com/_layouts/15/appinv.aspx

  • Fügen Sie den Client ID Wert in das Feld App ID ein und klicken Sie auf Lookup .Nachschlagen

  • Fügen Sie den folgenden XML-Code in das Feld App Permission Request XML ein:

<AppPermissionRequests AllowAppOnlyPolicy="true">
   <AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" />
</AppPermissionRequests>
  • Klicken Sie auf Create und dann Trust It um der App Berechtigungen zu erteilen.Vertraue darauf

Option 2: Zertifikatauthentifizierung

Die zertifikatsbasierte Authentifizierung bietet eine höhere Sicherheit als Clientgeheimnisse. Anstelle eines gemeinsamen Geheimnisses wird ein Zertifikat zum Nachweis der Anwendungsidentität verwendet.

⚠️ Diese Option erfordert die Rolle des globalen Administrators, um der App die erforderlichen Berechtigungen zu erteilen.

Klonen Sie das Repo

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

Erstellen einer Azure AD-App mit Zertifikat

Navigieren Sie zum geklonten Repository und verwenden Sie das bereitgestellte PowerShell-Skript, um die Azure AD-App mit Zertifikat zu erstellen:

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

Dieses Skript wird

  1. Erstellen Sie ein selbstsigniertes Zertifikat in Ihrem Zertifikatspeicher

  2. Registrieren einer Azure AD-Anwendung

  3. Fügen Sie das Zertifikat zur Anwendung hinzu

  4. Konfigurieren der erforderlichen SharePoint-Berechtigungen

  5. Generieren Sie Konfigurationsdateien mit den erforderlichen Einstellungen

  6. Geben Sie die claude_desktop_config.json aus, die mit Claude Desktop kompatibel ist

Administratoreinwilligung erteilen

Nach dem Ausführen des Skripts erhalten Sie eine Administrator-Zustimmungs-URL. Öffnen Sie diese in einem Browser und melden Sie sich als globaler Administrator an, um die Zustimmung zu den Berechtigungen zu erteilen.

Installieren Sie Node.js

Installieren Sie Node.js Version: 22.14.0 oder höher

Installieren und Konfigurieren von Claude Desktop

  • Laden Sie Claude Desktop herunter und installieren Sie es.

  • Gehen Sie in Claude Desktop zu File > Settings > Developer .Datei > Einstellungen

  • Klicken Sie auf Konfiguration bearbeitenKonfiguration

  • Öffnen Sie die Konfigurationsdatei claude_desktop_config.json im Editor. Sie können auch die zuvor vom PowerShell-Skript generierte Datei claude_desktop_config.json verwenden.

  • Fügen Sie Folgendes in die Konfiguration ein und aktualisieren Sie den Abschnitt mcpServers mit Ihren eigenen Werten:

Für die Zertifikatsauthentifizierung

{
  "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>"
      }
    }
  }
} 

Zur Client Secret-Authentifizierung (nicht empfohlen)

{
  "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>"
      }
    }
  }
} 

💡 Erfahren Sie, wie Sie die Mandanten-ID von Entra ID erhalten

  • Speichern Sie die Konfigurationsdatei und starten Sie Claude Desktop neu. Schließen Sie die App unbedingt über das Taskleistensymbol vollständig:Quick Claude App

So „sprechen“ Sie mit dem MCP-Server

  • Öffnen Sie Claude Desktop und stellen Sie eine Frage wie 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 .“

Beispielergebnis

Verfügbare Tools

Standortverwaltung

  • getSite - Detaillierte Informationen zu einer SharePoint-Site abrufen

  • updateSite – Site-Eigenschaften aktualisieren, einschließlich Titel, Beschreibung und Logo-URL

  • getSubsites - Alle Unterwebsites einer Site abrufen

  • deleteSubsite - Eine Subsite löschen (erfordert Bestätigung)

  • getGlobalNavigationLinks - Globale (obere) Navigationslinks abrufen

  • getQuickNavigationLinks - Schnelle (linke) Navigationslinks abrufen

  • addNavigationLink – Einen Navigationslink zur globalen oder Schnellnavigation hinzufügen

  • updateNavigationLink - Einen vorhandenen Navigationslink aktualisieren

  • deleteNavigationLink - Einen Navigationslink löschen

  • getSiteUsers – Holen Sie Benutzer von einer Site mit optionaler Filterung nach Rolle (Eigentümer, Mitglieder, Besucher)

  • getSiteGroups - Alle SharePoint-Gruppen für eine Site abrufen

Listenverwaltung

  • getLists - Alle verfügbaren Listen auf einer SharePoint-Site abrufen

  • createList – Erstellen Sie eine neue Liste oder Dokumentbibliothek mit benutzerdefinierten Einstellungen und optionaler benutzerdefinierter URL

  • deleteList - Löschen einer Liste oder Dokumentbibliothek (erfordert Bestätigung)

  • getListFields - Detaillierte Informationen zu Feldern/Spalten in einer Liste abrufen

  • createListField - Erstellen Sie ein neues Feld/eine neue Spalte in einem zweistufigen Prozess: zuerst mit einem sauberen Namen für die ordnungsgemäße interne Namensgenerierung, dann mit der Aktualisierung auf den gewünschten Anzeigenamen mit Leerzeichen

  • updateListField - Aktualisieren Sie ein Feld einschließlich Anzeigename, Auswahlmöglichkeiten und anderen Eigenschaften

  • deleteListField - Löscht ein Feld/eine Spalte aus einer Liste (erfordert Bestätigung)

  • getListViews - Alle Ansichten für eine Liste mit optionalen Felddetails abrufen

  • createListView - Erstellen Sie eine benutzerdefinierte Ansicht mit ausgewählten Feldern und Filtern

  • updateListView - Aktualisieren Sie die Einstellungen und Felder einer vorhandenen Ansicht

  • deleteListView – Löscht eine Ansicht aus einer Liste (Standardansichten können nicht gelöscht werden)

Verwaltung von Listenansichtsfeldern

  • getViewFields - Alle Felder einer bestimmten Listenansicht abrufen

  • addViewField - Ein Feld zu einer Listenansicht hinzufügen

  • removeViewField - Entfernen Sie ein Feld aus einer Listenansicht

  • removeAllViewFields - Alle Felder aus einer Listenansicht entfernen

  • moveViewFieldTo – Verschiebt ein Feld an eine bestimmte Position in einer Listenansicht

Listenelementverwaltung

  • getListItems - Alle Elemente aus einer bestimmten Liste abrufen

  • createListItem - Erstellen Sie ein neues Element mit benutzerdefinierten Feldwerten

  • updateListItem - Aktualisieren Sie die Feldwerte eines vorhandenen Elements

  • deleteListItem - Ein Element aus einer Liste entfernen

Benutzerverwaltung

  • getGroupMembers - Alle Mitglieder einer bestimmten SharePoint-Gruppe abrufen

  • addGroupMember - Einen Benutzer zu einer SharePoint-Gruppe hinzufügen

  • removeGroupMember - Einen Benutzer aus einer SharePoint-Gruppe entfernen


Für Mitwirkende

  • Erstellen Sie ein neues npm-Paket

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

Führen Sie MCP Inspector lokal aus

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

MCP Server Context 7 Dokumentation für LLMs

[ [https://context7.com/modelcontextprotocol/servers]\\\\(MCP](https://context7.com/modelcontextprotocol/servers%5D%5C(MCP) Server Context 7-Dokumentation für LLMs)

Lokale Entwicklung

  • Klonen Sie das Repo

  • nvm use 22.14.0

  • npm install

  • Aktualisieren Sie die MCP-Konfiguration in der Datei claude_desktop_config.json . Beispiel:

Zur Client-Geheimnis-Authentifizierung (funktioniert nach April 2026 nicht mehr)

{
"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"
      }
    }
  }
}

Zur Zertifikatsauthentifizierung (empfohlen)

{
"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"
      }
    }
  }
}
  • Nehmen Sie Änderungen am Code vor

  • Erstellen Sie den Code npm run build

  • Test mit MCP Inspector: npx @modelcontextprotocol/inspector node build/src/index.js -y

Related MCP Connectors

Related MCP Servers