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

適用対象: 開発者

SharePoint Embedded MCP サーバーは、MCP 互換の AI クライアントが自然言語で SharePoint Embedded アプリケーションを設定および管理できるようにするオープンソース のモデル コンテキスト プロトコル サーバーです。 サポートされているクライアントには、Visual Studio Code または CLI でのGitHub Copilot、Claude デスクトップ、カーソル、および AI Foundry Azureが含まれます。 これは、 @microsoft/spe-mcp npm パッケージとして配布され、開発者ツールとしてコンピューター上でローカルに実行されます。

ポータルをクリックして Microsoft Graph コマンドと CLI コマンドを手動でAzureするのではなく、必要なものを記述します。"アプリの試用版コンテナーの種類を作成する" と AI クライアントはサーバーのツールを呼び出して実行します。

注:

SharePoint Embedded MCP サーバーは、プレビューでリリースされたオープンソースの開発者ツールです。 そのソース コード、完全なツール リファレンス、イシュー トラッカーは、GitHub の microsoft/SharePoint-Embedded-MCP-Server リポジトリに公開されています。

重要

SharePoint Embedded でのビルドを開始するには、Microsoft 365 テナントへの管理アクセス権が必要です。

まだテナントをお持ちでない場合は、Microsoft 365 Developer ProgramMicrosoft Customer Digital Experience、またはMicrosoft 365 E3 ライセンスの無料試用版を利用できます。

それを使用してできること

サーバーは、AI クライアントがタスク別にグループ化して、ユーザーに代わって呼び出すことができるツールを公開します。

  • プロビジョニングと状態: サインイン ID とプロビジョニングの準備状況を確認し、所有するMicrosoft Entra ID アプリケーションを作成し、コンテナーの種類とコンテナーを作成、登録、一覧表示、更新、または削除します。 1 つの project_provision ツールで、アプリ→コンテナーの種類→課金→登録→ コンテナー) 全体を 1 回の呼び出しで実行できます。
  • 課金: Azureサブスクリプションとリソース グループを選択し、Microsoft.Syntex リソース プロバイダーを登録し、コンテナーの種類を標準請求にリンクし、課金の分類または試用版の有効期限を調べます。
  • スキャフォールディング、実行、デプロイ: 実行可能な参照アプリケーション (Azure Functionsを含む React シングルページ アプリ、または C# Web アプリ) を生成し、プロビジョニング状態からランタイム構成を書き込み、サンプル コンテンツをシードし、ローカルで実行し、Azureにデプロイします。
  • コンテンツ操作 (オプトイン): 個別の明示的な同意の後、ファイルのアップロード、フォルダーの作成、検索、プレビュー、共有とアクセス許可の管理、コンテナーのアーカイブまたは復元を行います。
  • ドキュメント: Microsoft Learn MCP サーバーを使用して、SharePoint Embedded および Microsoft Graph の公式ドキュメントを検索して取得します。

ツール、CLI フラグ、環境変数の完全なバージョン管理された一覧については、 サーバー README を参照してください。

前提条件

  • バージョン 22 以降Node.js。
  • Azure CLIaz login --allow-no-subscriptionsでサインインしています。 --allow-no-subscriptions フラグは、Azure サブスクリプションを持たない Microsoft 365 専用テナントに必要です。
  • Microsoft 365 テナントとテナント管理者アクセス (グローバル管理者またはアプリケーション管理者)。
  • GitHub Copilot、Claude Desktop、Cursor を使用した Visual Studio Code などの 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 サーバーを登録する場所については、クライアントのドキュメントを参照してください。

サーバーの認証方法を選択する

サーバーでは、2 つの実行モードがサポートされています。

  • ブートストラップ モード (開始することをお勧めします): アプリの登録は必要ありません。 サーバーはコントロール プレーンにAzure CLI セッションを使用し、必要に応じて所有Microsoft Entra IDアプリケーションをプロビジョニングします。 1 回サインインし、クライアント ID なしでサーバーを起動します。

    az login --allow-no-subscriptions
    
  • 事前プロビジョニングされたアプリ モード: FileStorageContainer.SelectedFileStorageContainerType.Manage.AllFileStorageContainerTypeReg.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"
          }
        }
      }
    }
    

ブートストラップ モードでは、最初の 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 クライアントは、オプトインするまでコンテナー内のファイルを読み取ったり変更したりすることはできません。 完全なセキュリティ モデルについては、サーバー リポジトリ のセキュリティ制御に関する ページを参照してください。