SharePoint MCP Server node.js Based REST API について
SharePoint MCP Server は、SharePoint REST API を通じて SharePoint Online を操作する Node.js 製の MCP サーバーです。主に Claude Desktop での利用を想定しており、ユーザー、サイト、リスト、ページなどを扱えます。証明書とクライアントシークレットの両方の認証方式に対応しています。
主な機能
- 01SharePoint REST API による SharePoint Online の操作
- 02サイトユーザー、グループ、ナビゲーションリンクの管理
- 03リスト、リストビュー、フィールド、アイテムの管理
- 04モダンページの作成と削除
- 05証明書とクライアントシークレットによる認証
活用シーン
- 01Claude Desktop から SharePoint サイトのリスト情報を照会
- 02リストのフィールド、ビュー、アイテムの一括管理
MCP 対応
このプロジェクトは MCP サーバーとして、Claude Desktop などの MCP クライアントに SharePoint 関連の操作を提供します。README には各操作の利用可否が記載されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
SharePoint Online MCP サーバー 🚀

SharePoint REST API を通じて SharePoint Online とシームレスに連携できる、最も強力な SharePoint MCP サーバーです。
この MCP サーバーは Claude Desktop アプリでの利用を想定していますが、Cline などの他の MCP クライアントでも利用できます。
目次
- SharePoint 操作の対応状況
- 認証オプション
- Node.js をインストールする
- Claude Desktop をインストールして設定する
- MCP サーバーとの「会話」方法
- コントリビューター向け
SharePoint 操作の対応状況
ユーザー
| 操作 | 対応状況 | 備考 |
|---|---|---|
| サイトユーザーの一覧表示 | ✅ | |
| サイトグループの一覧表示 | ✅ | |
| グループメンバーの取得 | ✅ | |
| グループメンバーの追加 | ✅ | |
| グループメンバーの削除 | ✅ | |
| ユーザープロファイルの取得 | ❌ | /_api/SP.UserProfiles.PeopleManager |
| ユーザープロファイルの更新 | ❌ |
サイト
| 操作 | 利用可能 |
|---|---|
| サイトの詳細を取得 | ✅ |
| サイトのプロパティを更新 | ✅ |
| グローバルナビゲーションリンクを取得 | ✅ |
| クイックナビゲーションリンクを取得 | ✅ |
| ナビゲーションリンクを追加 | ✅ |
| ナビゲーションリンクを更新 | ✅ |
| ナビゲーションリンクを削除 | ✅ |
| サブサイトを取得 | ✅ |
| サブサイトを作成 | ❌ |
| サブサイトを削除 | ✅ |
地域設定
| 操作 | 利用可能 |
|---|---|
| 地域設定を取得 | ✅ |
| 地域設定を更新 | ❌ |
機能
| 操作 | 利用可能 |
|---|---|
| サイトコレクションの機能を取得 | ✅ |
| すべてのサイト機能を取得 | ✅ |
| サイト機能を取得 | ✅ |
| すべてのサイト機能を取得 | ✅ |
| 機能を有効化 | ❌ |
| 機能を無効化 | ❌ |
リスト
| 操作 | 利用可能 | 備考 |
|---|---|---|
| すべてのリストを取得 | ✅ | |
| リストを作成 | ✅ | |
| サイトコンテンツタイプをリストに追加 | ✅ | |
| コンテンツタイプをリストから削除 | ✅ | |
| リストコンテンツタイプにフィールドを追加 | ❌ | |
| リストコンテンツタイプからフィールドを削除 | ❌ | |
| リストを更新 | ✅ | |
| リストフィールドを取得 | ✅ | |
| リストフィールドを作成 | ✅ | 基本的なシナリオのみ |
| リストフィールドを更新 | ✅ | |
| リストフィールドを削除 | ✅ | |
| リストフィールドの書式を設定 | ❌ | |
| リストビューの書式を設定 | ❌ | |
| リストを削除 | ✅ |
リストビュー
| 操作 | 利用可能 |
|---|---|
| リストビューを取得 | ✅ |
| リストビューを削除 | ✅ |
| リストビューを作成 | ✅ |
| リストビューを更新 | ✅ |
| ビューフィールドを取得 | ✅ |
| ビューフィールドを追加 | ✅ |
| ビューフィールドを削除 | ✅ |
| すべてのビューフィールドを削除 | ✅ |
| ビューフィールドを移動 | ✅ |
リストコンテンツタイプ
| 操作 | 利用可能 | 備考 |
|---|---|---|
| すべてのリストコンテンツタイプを取得 | ✅ | |
| リストコンテンツタイプを取得 | ✅ | |
| リストコンテンツタイプを作成 | ❌ | |
| リストコンテンツタイプを更新 | ✅ | CT のタイトルとグループのみ変更 |
| リストコンテンツタイプを削除 | ✅ |
リストアイテム
| 操作 | 利用可能 |
|---|---|
| すべてのリストアイテムを取得 | ✅ |
| リストアイテムを作成 | ✅ |
| リストアイテムを更新 | ✅ |
| リストアイテムを削除 | ✅ |
サイトコンテンツタイプ
| 操作 | 利用可能 | 備考 |
|---|---|---|
| すべてのサイトコンテンツタイプを取得 | ✅ | |
| サイトコンテンツタイプを取得 | ✅ | |
| サイトコンテンツタイプを作成 | ❌ | |
| サイトコンテンツタイプを更新 | ✅ | CT のタイトルとグループのみ変更 |
| サイトコンテンツタイプを削除 | ✅ |
ページ
| 操作 | 利用可能 |
|---|---|
| モダンページを作成 | ✅ |
| モダンページを削除 | ✅ |
| モダンページを一覧表示 | ✅ |
| ページ Web パーツを追加 | ❌ |
| ページ Web パーツを削除 | ❌ |
| ページ Web パーツを移動 | ❌ |
| ページ Web パーツを更新 | ❌ |
ドキュメント
| 操作 | 利用可能 |
|---|---|
| ドキュメントを作成 | ❌ |
| ドキュメントをアップロード | ❌ |
| ドキュメントを移動 | ❌ |
| ドキュメントをコピー | ❌ |
タクソノミー
| 操作 | 利用可能 |
|---|---|
| タクソノミーグループを取得 | ❌ |
| タクソノミーラベルを作成 | ❌ |
| タクソノミーラベルを更新 | ❌ |
| タクソノミーラベルを削除 | ❌ |
検索
| 操作 | 利用可能 |
|---|---|
| SharePoint サイト内を検索 | ✅ |
認証オプション
サーバーは 2 種類の認証方式に対応しています。
- クライアントシークレット認証 - 従来のクライアント ID とシークレットを使用します。これは非推奨となっているアプリ専用認証で、2026 年 4 月以降は動作しません。
- 証明書認証 - Azure AD アプリ登録と証明書を使用する、よりモダンな方式です。
オプション 1:クライアントシークレット認証(2026 年 4 月以降は動作しません)
このオプションには SharePoint 管理者ロールが必要です。
構成手順
⚠️ SharePoint アプリを作成するには、SharePoint テナント管理者またはグローバル管理者である必要があります。
SharePoint 専用アプリを許可する
- SharePoint Online Management Shell をこちらからダウンロードしてインストールします。
- PowerShell を開き、次のコマンドを実行して SharePoint 専用アプリが有効になっていることを確認します。
Connect-SPOService -Url https://<your-tenant>-admin.sharepoint.com/
Set-SPOTenant -DisableCustomAppAuthentication $false
クライアントシークレットを使用した SharePoint 専用アプリの作成
https://<your-tenant>.sharepoint.com/_layouts/15/appregnew.aspxを開きます。Generateをクリックして、新しいクライアント ID とシークレットを作成します。- 次のフィールドに入力します。
- アプリのドメイン:
www.example.com(または所有する任意のドメイン) - リダイレクト URL:
http://example.com
- アプリのドメイン:
Createをクリックしてアプリを作成します。Client IDとClient Secretの値を安全な場所にコピーします。後で必要になります。
アプリのアクセス許可を付与する
https://<your-tenant>.sharepoint.com/_layouts/15/appinv.aspxを開きます。App IDフィールドにClient IDの値を貼り付け、Lookupをクリックします。
App Permission Request XMLフィールドに次の XML を貼り付けます。
<AppPermissionRequests AllowAppOnlyPolicy="true">
<AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" />
</AppPermissionRequests>
CreateをクリックしてからTrust Itをクリックし、アプリにアクセス許可を付与します。
オプション 2:証明書認証
証明書ベースの認証は、クライアントシークレットよりも高いセキュリティを提供します。共有シークレットの代わりに証明書を使用して、アプリケーションの ID を証明します。
⚠️ このオプションでは、アプリに必要なアクセス許可を付与するためにグローバル管理者ロールが必要です。
リポジトリをクローンする
git clone https://github.com/Zerg00s/server-sharepoint.git
証明書を使用して Azure AD アプリを作成する
クローンしたリポジトリに移動し、用意されている PowerShell スクリプトを使用して、証明書を含む Azure AD アプリを作成します。
.\Create-SPAppCertificate.ps1 -AppName "SharePoint-Server-MCP" -CertName "SharePoint-Server-MCP-Cert" -CertPassword "YourSecureP@ssw0rd!"
このスクリプトでは、次の処理を行います。
- 証明書ストアに自己署名証明書を作成します。
- Azure AD アプリケーションを登録します。
- 証明書をアプリケーションに追加します。
- 必要な SharePoint のアクセス許可を設定します。
- 必要な設定を含む構成ファイルを生成します。
- Claude Desktop と互換性のある
claude_desktop_config.jsonを出力します。
管理者の同意を付与する
スクリプトを実行すると、管理者の同意用 URL が表示されます。ブラウザーで開き、グローバル管理者としてサインインして、アクセス許可への同意を付与します。
Node.js をインストールする
Node.js バージョン 22.14.0 以降をインストールします。
Claude Desktop をインストールして設定する
- Claude Desktop をダウンロードしてインストールします。
- Claude Desktop で、
File>Settings>Developerの順に開きます。
- 「Edit Config」をクリックします。

- エディターで claude_desktop_config.json 設定ファイルを開きます。先ほど PowerShell スクリプトで生成した claude_desktop_config.json ファイルも使用できます。
- 次の内容を設定に貼り付け、
mcpServersセクションを独自の値に更新します。
証明書認証用の設定
{
"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>"
}
}
}
}
クライアントシークレット認証用の設定(非推奨)
{
"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>"
}
}
}
}
- 設定ファイルを保存して、Claude Desktop を再起動します。タスクトレイのアイコンからアプリを完全に終了してください。

MCP サーバーとの「会話」方法
- Claude Desktop を開き、
https://<your-tenant>.sharepoint.com/sites/Dashboard-Communication からリストの一覧を取得してください。結果は表形式で表示してください。コードは使わないでください。のような質問をします。

貢献者向け
新しい npm パッケージをビルドする
npm run build
npm publish
npx clear-npx-cache
npm cache clean --force
MCP Inspector をローカルで実行する
npx @modelcontextprotocol/inspector node build/src/index.js
LLM 向け MCP Server Context 7 のドキュメント
LLM 向け MCP Server Context 7 のドキュメント
SharePoint REST API ドキュメント
- SharePoint REST API ドキュメント
- SharePoint REST エンドポイントを使用した基本操作の完全な実行
- /_vti_bin/client.svc/ProcessQuery のリクエスト XML スキーマ
ローカル開発
- リポジトリをクローンします
nvm use 22.14.0npm installclaude_desktop_config.jsonファイルの MCP 設定を更新します。例:
クライアントシークレット認証の場合(2026 年 4 月以降は機能しません)
{
"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"
}
}
}
}
証明書認証の場合(推奨)
{
"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"
}
}
}
}
- コードを変更します
- コードをビルドします
npm run build - MCP Inspector でテストします:
npx @modelcontextprotocol/inspector node build/src/index.js -y
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。