MCP サーバーを使用して、コーディング エージェントでアプリを構築する

適用対象: 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 ツールをプロファイル (readOnlydocsOnlyprovisioningcontentadmin) またはコンマ区切りのツール名の一覧に制限します。
--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.SelectedFileStorageContainerType.Manage.AllFileStorageContainerTypeReg.Manage.All に対する管理者の同意を得た委任されたアクセス許可が既にある既存のパブリック クライアント Microsoft Entra ID アプリケーションを渡します。 SPE_CLIENT_IDSPE_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 環境変数を使用して、公開されるツールをプロファイル (readOnlydocsOnlyprovisioningcontent、またはadmin) またはコンマ区切りのツール名のリストに制限します。

その他の操作オプションについては、「 構成 」を参照してください。

コンテンツ操作ツールも、個別の明示的な同意の背後で制御されるため、AI クライアントは、オプトインするまでコンテナー内のファイルを読み取ったり変更したりできません。 完全なセキュリティ モデルについては、「サーバー リポジトリの セキュリティ制御 」を参照してください。