Microsoft 365 SharePoint について
Microsoft Graph 経由でサイト、ライブラリ、ページ、リスト、ファイルにアクセスする Microsoft 365 SharePoint 向け MCP サーバーです。コンテンツの検索に加え、ホスト管理の Microsoft OAuth 認証情報を使った SharePoint 項目の変更にも対応します。
主な機能
- 01サイトの検索とライブラリの閲覧
- 02ページ、リスト、ファイルの読み取り
- 03SharePoint コンテンツの検索
- 04ファイルのアップロード、移動、共有
- 05サイトページの作成と公開
- 06リスト項目とメタデータの管理
活用シーン
- 01複数のサイトやライブラリから文書を検索
- 02SharePoint ページやリスト項目を読む
- 03共有リンクの作成や権限の更新
- 04ファイル、ページ、リスト項目の編集
MCP 対応
SharePoint の検索、読み取り、共有、変更などを行う 46 個のツールを MCP クライアントに公開します。ホスト管理の Microsoft OAuth 認証情報を使用し、専用ツールで SharePoint の追加同意を要求します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @mindstone/mcp-server-microsoft-sharepointMS_CLIENT_IDMicrosoft Entra (Azure AD) application client IDMS_CONFIG_DIRPath to the per-user Microsoft config directory (credentials/, accounts.json)MS_ACCOUNT_EMAILAccount email when running in multi-account per-instance mode (falls back to the first account in accounts.json)MS_MCP_PACKAGE_IDLogical package ID surfaced in error responsesMICROSOFT_REQUEST_TIMEOUT_MSOverride the upstream Microsoft Graph request timeout in milliseconds (max 300000 = 5 min)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
46掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
@mindstone/mcp-server-microsoft-sharepoint
Microsoft 365 SharePoint MCP サーバーです。サイトの検出、ドキュメントライブラリの閲覧、ページやリストの読み取り、コンテンツの検索、Microsoft Graph API を介した SharePoint のファイル/リストの変更を行えます。
コホート形式の SharePoint MCP です。独自の authenticate_sharepoint ツールを備えており、ホストからコホートの基本的な Microsoft 365 OAuth の権限に加えて、段階的に Sites.Read.All の同意を要求できます。
ステータス
- バージョン: 0.2.1 · npm
- 認証: OAuth(ホストが調整する
authenticate_sharepointによる段階的な同意)(MS_CLIENT_ID) - ツール: 46(認証 + サイト、ライブラリ、ページ、リスト、メタデータ、検索、変更)
- サーフェス: cloud-api
- 機械可読情報:
STATUS.json - 共有ライブラリ:
@mindstone/mcp-server-microsoft-shared
このプロジェクトの目的
2026 年 5 月にこれを移植した時点では、Microsoft 独自の Graph MCP のラインアップに、単独の SharePoint サーバーはまだ含まれていませんでした。また、当時のコミュニティ製の選択肢は、クロステナントのシナリオで SharePoint に必要な段階的同意フローを省略しているか、SharePoint を独立したログイン対象として扱っていました。そのため、コネクターごとに個別の OAuth 認証を行い、更新トークンもそれぞれ保存していました。そこで、MindstoneRebel に含まれていたコネクターを 1:1 で移植し、Microsoft 365 の同じ 5 つのコネクター(メール、カレンダー、ファイル、Teams、SharePoint)で、1 組の認証情報と、トークンの永続化およびリクエストのタイムアウト処理に使う 1 つの共有ライブラリパッケージを共有できるようにしました。SharePoint はコホートの authenticate_microsoft_account とは別に、独自の authenticate_sharepoint ツールを宣言します。これにより、既存のメール/カレンダー/ファイル/Teams のセッションに影響を与えずに、ホストから追加の Sites.Read.All スコープを要求できます。
やり取りの例
「Strategy チームのサイトで Q3 OKR のドキュメントを見つけて、チーム全員が使える読み取り専用の共有リンクを作成してください。」
ホストが呼び出すツール:
search_sharepoint— Strategy サイトに絞ってQ3 OKRを検索し、一致するアイテムを返します。create_sharing_link— そのアイテムに対して、読み取り専用、組織全体のスコープで共有リンクを作成します。
応答(抜粋):
{
"match": {
"siteId": "example.sharepoint.com,...",
"name": "Q3-OKRs.docx",
"webUrl": "https://example.sharepoint.com/sites/Strategy/..."
},
"share": {
"type": "view",
"scope": "organization",
"webUrl": "https://example.sharepoint.com/:w:/r/sites/Strategy/.../EZk..."
}
}
必要条件
- Node.js 20+
- npm
- Microsoft OAuth フローを実行し、アカウントごとのトークンファイルを
${MS_CONFIG_DIR}/credentials/${sanitised-email}.token.jsonに、${MS_CONFIG_DIR}/accounts.jsonのインデックスを作成するホストアプリケーション。このサーバーはそれらのファイルを読み込みますが、OAuth 自体は開始しません。
ワンクリックインストール
ボタンをクリックすると、ホストから次の項目を入力するよう求められます:MS_CLIENT_ID、MS_CONFIG_DIR、MS_MCP_PACKAGE_ID、MICROSOFT_REQUEST_TIMEOUT_MS。
Claude Desktop / Claude Code / Goose / Continue.dev の手動設定(Microsoft 365 SharePoint)
{
"mcpServers": {
"Microsoft 365 SharePoint": {
"command": "npx",
"args": [
"-y",
"@mindstone/mcp-server-microsoft-sharepoint"
],
"env": {
"MS_CLIENT_ID": "",
"MS_CONFIG_DIR": "",
"MS_MCP_PACKAGE_ID": "Microsoft365SharePoint",
"MICROSOFT_REQUEST_TIMEOUT_MS": "60000"
}
}
}
}
クイックスタート
インストールとビルド
cd <path-to-repo>/connectors/microsoft-sharepoint
npm install
npm run build
npx(公開後に一度実行)
npx -y @mindstone/mcp-server-microsoft-sharepoint
ローカル
node dist/index.js
設定
このサーバーは、Microsoft 365 の OAuth フローを管理するホストアプリケーションと連携して動作します。ホストが認証情報をディスクに書き込み、このサーバーがそれを読み取ります。
必須の環境変数
| 名前 | 説明 |
|---|---|
MS_CLIENT_ID | Microsoft Entra(Azure AD)アプリケーションのクライアント ID。 |
MS_CONFIG_DIR | ユーザーごとの Microsoft 設定ディレクトリ(credentials/、accounts.json)のパス。 |
任意の環境変数
| 名前 | 説明 | デフォルト |
|---|---|---|
MS_ACCOUNT_EMAIL | 複数アカウントのインスタンス別モードで実行する場合のアカウントメールアドレス。 | accounts.json 内の最初のアカウント。 |
MS_MCP_PACKAGE_ID | エラーレスポンスに表示される論理パッケージ ID。 | Microsoft365SharePoint |
MICROSOFT_REQUEST_TIMEOUT_MS | Microsoft Graph リクエストのタイムアウトを上書きします(最大 300000 ms)。 | 60000 |
MICROSOFT_DISABLE_REFRESH | 1 に設定すると、このサーフェスでのトークン更新を無効にします。ツールは構造化された auth_required レスポンスを返して停止し、ホストが再認証を実行できるようにします。クラウドサーフェスではこれを 1 に設定します。 | 未設定 |
ホスト設定の例
Claude Desktop / Cursor
{
"mcpServers": {
"Microsoft365SharePoint": {
"command": "npx",
"args": ["-y", "@mindstone/mcp-server-microsoft-sharepoint"],
"env": {
"MS_CLIENT_ID": "your-entra-application-client-id",
"MS_CONFIG_DIR": "/absolute/path/to/microsoft-config"
}
}
}
}
まず @mindstone/mcp-server-microsoft-mail の authenticate_microsoft_account でサインインして基本セッションを確立し、その後、このサーバーの authenticate_sharepoint を呼び出して、追加の SharePoint Sites.Read.All スコープを要求します。
ローカル開発(npm 公開は不要)
{
"mcpServers": {
"Microsoft365SharePoint": {
"command": "node",
"args": ["<path-to-repo>/connectors/microsoft-sharepoint/dist/index.js"],
"env": {
"MS_CLIENT_ID": "your-entra-application-client-id",
"MS_CONFIG_DIR": "/absolute/path/to/microsoft-config"
}
}
}
}
ツール(46)
| ツール | 説明 |
|---|---|
authenticate_sharepoint | SharePoint の増分同意(Sites.Read.All)を要求します。 |
list_sharepoint_sites、get_sharepoint_site | SharePoint サイトを検出して調査します。 |
list_site_document_libraries、list_library_files、get_library_file | ライブラリとアイテムを閲覧します。 |
download_library_file、read_library_text_file、search_library_files | ライブラリのコンテンツを読み取り、検索します。 |
list_file_versions | ライブラリファイルのバージョン履歴を一覧表示します。 |
upload_library_file、upload_library_file_binary、create_library_folder、delete_library_item、move_library_item、copy_library_item、rename_library_item、create_sharing_link | ライブラリのアイテムを変更して共有します(テキストのアップロード、再開可能なセッションを介したバイナリ/大容量ファイルのアップロード)。 |
list_item_permissions、invite_item_collaborators、revoke_item_permission | アイテムごとの共有アクセス許可を管理します(付与状況の一覧表示、特定のユーザーの招待、アクセス権の取り消し)。 |
list_site_pages、read_site_page | SharePoint ページを閲覧して読み取ります。 |
create_site_page、update_site_page、publish_site_page | ページを作成します。簡単な HTML コンテンツを含む下書きの作成、メタデータの更新、公開に対応しています。 |
list_site_lists、list_list_items、get_list_item、create_list_item、update_list_item、delete_list_item | リストアイテムを閲覧、変更します。 |
list_list_columns、create_site_list | リストの列スキーマを読み取り、列を指定して新しいリストを作成します。 |
search_sharepoint | サイト、ライブラリ、リスト、コンテンツ全体を検索します。 |
list_subsites、get_recent_files、get_library_tree | サイトの検出と階層の表示を行います。 |
get_file_metadata、update_file_metadata | SharePoint のカスタムメタデータフィールドを読み取り、更新します。 |
get_site_drive、list_site_items、get_site_item、get_site_list、get_site_by_path、get_sites_delta | サイト、リスト、ドライブを調査するための追加 API です。 |
セキュリティに関する注意
authenticate_sharepointは SharePoint 固有の増分同意設定ツールです。それ以外のツール群の基本認証は、@mindstone/mcp-server-microsoft-mailのauthenticate_microsoft_accountによって行われます。- 手動のエラーペイロードには、既存の
auth_requiredと成功時の形式を維持しつつ、復旧用フィールドaction_requiredとnext_stepが含まれます。 - 同梱されていた SharePoint ページコンテンツのサイレントフォールバックは削除されました。ハンドラーのエラーは、古いページ本文を返すのではなく、実際の失敗を表面化させます。
- ツールごとの Graph 呼び出しは、
.options({signal})を介して、呼び出し元とツール群それぞれのタイムアウトシグナルを合成したシグナルのもとで実行されます。
ライセンス
FSL-1.1-MIT — Functional Source License, Version 1.1。将来的に MIT ライセンスとなります。競合しない用途では無料で使用でき、LICENSE に記載されたコンバーター日付に MIT ライセンスへ切り替わります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。