適用対象: Developer
SharePoint Embedded MCP サーバーは、MCP 互換の AI クライアントが自然言語で SharePoint Embedded アプリケーションをセットアップおよび管理できるようにするオープンソースの モデル コンテキスト プロトコル サーバーです。 サポートされているクライアントには、GitHub Copilot in Visual Studio Code または CLI、Claude Desktop、Cursor、Azure AI Foundry が含まれます。
@microsoft/spe-mcp npm パッケージとして配布され、開発者ツールとしてコンピューター上でローカルに実行されます。
ポータルをクリックして Microsoft Graph と Azure CLI コマンドを手動でつなぎ合わせる代わりに、"アプリの試用版コンテナーの種類を作成してください" など、必要な内容を記述すると、AI クライアントはサーバーのツールを呼び出してそれを行います。
注:
SharePoint 埋め込み MCP サーバーは、プレビューでリリースされるオープンソースの開発者ツールです。 そのソース コード、完全なツール リファレンス、問題トラッカーは、GitHub の microsoft/SharePoint-Embedded-MCP-Server リポジトリにあります。
重要
SharePoint Embedded を使用して構築を開始するには、Microsoft 365 テナントへの管理者アクセス権が必要です。
まだテナントをお持ちでない場合は、Microsoft 365 開発者プログラム、Microsoft カスタマー デジタル エクスペリエンス、または Microsoft 365 E3 ライセンスの無料試用版を使用してテナントを取得できます。
利用できるツール
サーバーは、AI クライアントがユーザーに代わって呼び出すことができるツールを公開します。
| カテゴリ | ツールの機能 | 代表的なツール |
|---|---|---|
| プロビジョニングと状態 | サインイン ID とプロビジョニングの準備状況を確認します。 所有するアプリケーション、 コンテナー タイプ、コンテナー タイプの登録、およびコンテナーを作成して管理します。 |
status_get, project_app_create, project_provision, container_type_create, container_type_register, container_create |
| 請求 | Azure サブスクリプションとリソース グループを選択し、コンテナーの種類を標準課金に接続し、課金分類または試用版の有効期限を調べます。 |
azure_subscriptions_list, azure_resource_groups_list, billing_setup, billing_check |
| スキャフォールド、実行、デプロイ | 参照アプリケーションを生成し、その構成を記述し、サンプル コンテンツをシードし、ローカルで実行し、Azure にデプロイします。 |
project_scaffold, project_hydrate_config, project_seed_sample_data, project_run_local, project_deploy |
| コンテンツ操作 (オプトイン) | 明示的な同意の後、サンプル コンテンツのシード、ファイルのアップロード、フォルダーの作成、検索、プレビュー、共有の管理を行います。 |
content_access_grant, project_seed_sample_data, content_file_upload, content_search, content_sharing_manage |
| コンテナーのアクセス許可とライフサイクル | コンテナーのアクセス許可を管理し、コンテナーをアーカイブ、復元、または削除します。 |
container_permissions_manage, container_archive_restore, container_delete |
| ドキュメント | Microsoft Learn MCP サーバーを介して、SharePoint Embedded および Microsoft Graph の公式ドキュメントを検索および取得します。 |
docs_search, docs_fetch |
ツール、CLI フラグ、および環境変数のバージョン管理された完全なリストについては、 サーバーの README を参照してください。
前提条件
- Node.js バージョン 22 以降。
-
az login --allow-no-subscriptionsでサインインした CLI Azure。--allow-no-subscriptionsサブスクリプションを持たない Microsoft 365 のみのテナントにはAzureフラグが必要です。 - Microsoft 365 テナントとテナント管理者アクセス (グローバル管理者またはアプリケーション管理者)。
- Visual Studio Code with GitHub Copilot、Claude Desktop、Cursor などの MCP 互換クライアント。
インストールと構成
MCP クライアントは npx を使用してサーバーを起動するため、個別のグローバル インストールはありません。 クライアントの MCP 構成にサーバー エントリを追加します。
Visual Studio Code
ワークスペースの .vscode/mcp.json に MCP サーバー エントリを追加します。
{
"servers": {
"spe": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@microsoft/spe-mcp", "start"]
}
}
}
-y フラグを使用すると、Visual Studio Code はサーバーを非対話型で起動できます。 サーバーが登録されたら、エージェント モードで Copilot Chat を使用して、そのツールを呼び出します。
Claudeデスクトップ
サーバーを %APPDATA%\Claude\claude_desktop_config.json (Windows) または ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) に追加します。
{
"mcpServers": {
"spe": {
"command": "npx",
"args": ["-y", "@microsoft/spe-mcp", "start"]
}
}
}
カーソルおよびその他の MCP クライアント
stdio トランスポート経由で MCP サーバーをサポートするクライアントは、同じ npx -y @microsoft/spe-mcp start コマンドを使用してサーバーを実行できます。 MCP サーバーを登録する場所については、クライアントのドキュメントを参照してください。
構成
サーバーは、CLI フラグまたは同等の環境変数による操作設定を受け入れます。 同じオプションに両方を設定すると、CLI フラグが優先されます。
| CLI フラグ | 環境変数 | 説明 |
|---|---|---|
--client-id |
SPE_CLIENT_ID |
所有しているアプリケーションの Microsoft Entra ID アプリケーション (クライアント) ID。 省略してブートストラップ モードを使用します。 |
--tenant-id |
SPE_TENANT_ID |
Microsoft Entra ID テナント ID。 省略すると、サーバーは Azure CLI からそれを検出します。 |
--read-only |
SPE_READ_ONLY |
読み取り、一覧表示、取得、および検索ツールのみをアドバタイズし、許可します。 変更する呼び出しを拒否します。 |
--tools |
SPE_TOOLS |
ツールをプロファイル (readOnly、 docsOnly、 provisioning、 content、 admin) またはコンマ区切りのツール名の一覧に制限します。 |
--data-dir |
SPE_DATA_DIR |
トークン キャッシュとプロビジョニング状態のパス。 サーバー インスタンスごとに一意の絶対パスまたは ~/ パスを使用します。 このディレクトリを共有すると、キャッシュされた認証とプロビジョニングの状態が上書きされる可能性があります。 現在のディレクトリを基準としたパスを使用しないでください。 既定値は ~/.spe-mcp です。 |
クライアントの MCP 構成の env オブジェクトの args 配列または変数にフラグを設定します。
npx -y @microsoft/spe-mcp start --help を実行するか、サーバー構成リファレンスを参照して、完全なバージョン管理されたオプション リストを確認してください。
サーバーの認証方法を選択する
サーバーは 2 つの実行モードをサポートしています。
ブートストラップ モード (開始時に推奨): アプリの登録は必要ありません。 サーバーは、コントロール プレーンに Azure CLI セッションを使用し、所有する Microsoft Entra ID アプリケーションをオンデマンドでプロビジョニングします。 一度サインインし、クライアント ID なしでサーバーを起動します。
az login --allow-no-subscriptions事前プロビジョニング アプリ モード:
FileStorageContainer.Selected、FileStorageContainerType.Manage.All、FileStorageContainerTypeReg.Manage.Allに対する管理者の同意を得た委任されたアクセス許可が既にある既存のパブリック クライアント Microsoft Entra ID アプリケーションを渡します。SPE_CLIENT_IDとSPE_TENANT_IDの環境変数 (または--client-idと--tenant-idフラグ) を使用して、アプリ ID とテナント ID を指定します。{ "servers": { "spe": { "type": "stdio", "command": "npx", "args": ["-y", "@microsoft/spe-mcp", "start"], "env": { "SPE_CLIENT_ID": "your-client-id", "SPE_TENANT_ID": "your-tenant-id" } } } }
重要
該当するアプリの登録でリダイレクト URI を構成します。
-
MCP サーバーの所有アプリの登録:[モバイル アプリケーションとデスクトップ アプリケーション] で、対話型サインイン用の
http://localhostを追加します。 -
Reactシングルページ アプリケーション (SPA) のアプリ登録を所有する: [シングルページ アプリケーション] で、
project_run_localによって示されるローカル アプリ URL とproject_deployによって返される展開済み URL を追加します。 事前プロビジョニングされたアプリ モードでは、サーバーがアプリの登録を更新できない場合は、これらのリダイレクト URI を手動で追加します。 - 個別の C# Web アプリの登録: C# スキャフォールドは、Web リダイレクト URI を使用してこの登録をプロビジョニングします。 C# アプリのリダイレクト URI を所有アプリの登録に追加しないでください。
Microsoft Entra 管理センターの [アプリの登録>Authentication] でリダイレクト URI を管理します。
ブートストラップ モードでは、最初の SharePoint Embedded 呼び出しでブラウザーが開き、1 回限りの同意が得られ、トークンがキャッシュされるため、個別のターミナル手順は必要ありません。 完全な認証ウォーターフォール、トークン ストレージの詳細、およびヘッドレス/自動化のガイダンスについては、サーバーの README を参照してください。
試してみる
クライアントにサーバーが登録され、Azure CLI サインインが完了したら、AI クライアントに SharePoint Embedded を使用するように依頼します。 たとえば、Copilot Chat では次のようになります:
- "SharePoint Embedded コンテナーの種類を一覧表示してください。"
- "アプリ ID abc-123 に Contoso Docs という名前の試用版コンテナーの種類を作成してください。"
- "新しい SharePoint Embedded アプリをプロビジョニングし、React サンプルをスキャフォールディングします。"
クライアントが照合ツールを呼び出し、最初に同意を求めて、結果を報告します。
サーバーが実行できる操作を制御する
サーバーには、公開して呼び出し可能なツールを制限するコントロールが含まれており、AI クライアントに変更を加えずに環境を探索する場合に便利です。
-
読み取り専用モード: 読み取り、一覧表示、取得、検索ツールのみをアドバタイズして許可し、変更する呼び出しを拒否します。
--read-onlyフラグまたはSPE_READ_ONLY環境変数を設定します。 -
ツール プロファイル:
--toolsフラグまたはSPE_TOOLS環境変数を使用して、公開されるツールをプロファイル (readOnly、docsOnly、provisioning、content、またはadmin) またはコンマ区切りのツール名のリストに制限します。
その他の操作オプションについては、「 構成 」を参照してください。
コンテンツ操作ツールも、個別の明示的な同意の背後で制御されるため、AI クライアントは、オプトインするまでコンテナー内のファイルを読み取ったり変更したりできません。 完全なセキュリティ モデルについては、「サーバー リポジトリの セキュリティ制御 」を参照してください。
関連コンテンツ
- GitHub 上の SharePoint Embedded MCP サーバー – ソース コード、完全なツール リファレンス、問題。
- クイックスタート: VS Code を使用して最初のアプリを構築する - 無料で使用を開始するためのガイド付き拡張機能。
- SharePoint Embedded コンテナーの種類
- SharePoint Embedded アプリのアーキテクチャ
- 認証と承認
- モデル コンテキスト プロトコル