mcpField
A
add-sharepoint

add-sharepoint

github.com/microsoftデータ・データベース1.1k339 回インストール今日更新
リポジトリ

add-sharepoint について

Power AppsプロジェクトにSharePointデータソースを追加するスキルです。リストの再利用や作成、サイトとリストの確認、コネクター設定を案内し、Graph API認証、列の仕様、ビルド確認も扱います。

主な機能

  1. 01リストの再利用、拡張、新規作成の計画
  2. 02Graph API認証の設定
  3. 03アクセス可能なサイトとリストの確認
  4. 04リストやライブラリをコネクターとして追加
  5. 05ビルドとプロジェクト記録の更新

活用シーン

  1. 01既存のSharePointリストをアプリに接続
  2. 02アプリ用SharePointリストの設計と作成
  3. 03接続、サイト、リスト設定の確認
  4. 04統合変更後のTypeScriptビルド実行

MCP 対応

READMEにはMCPとの関係について記載されていません。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/microsoft/power-platform-skills --skill add-sharepoint

インストール後、Claude Code で/add-sharepointを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
api-authentication-reference.md
list-management-reference.md
sharepoint-reference.md

詳細

📋 共有指示:shared-instructions.md - 横断的な注意事項です。

参考資料:

SharePoint の追加

2 つの方法があります:既存のリスト(手順 6 に進む)または新しいリスト(全ワークフロー)。

ワークフロー

  1. メモリーバンクを確認 → 2. 計画 → 3. Graph API 認証を設定 → 4. 既存のリストを確認 → 5. リストを作成 → 6. 接続 ID を取得 → 7. サイトを検出 → 8. テーブルを検出 → 9. コネクタを追加 → 10. 設定 → 11. ビルド → 12. メモリーバンクを更新

手順 1:メモリーバンクを確認

shared-instructions.mdに従ってmemory-bank.mdを確認します。

手順 2:計画

ユーザーに次のことを尋ねます。

  1. 必要な SharePoint リストはどれですか?
  2. リストはサイトにすでに存在しますか?それとも新しく作成する必要がありますか?

リストがすでに存在する場合: 手順 6 に進みます。

新しいリストを作成する場合:

  • 必要なデータについて尋ね、適切なスキーマを設計します
  • 可能であれば既存のリストを再利用します(重複させないでください)
  • EnterPlanModeで計画モードに入り、列と種類を含むリストの設計を提示します
  • ExitPlanModeで承認を得ます
手順 3:Graph API 認証を設定(リストを作成する場合)

詳細については、api-authentication-reference.mdを参照してください。

az account show   # Verify Azure CLI logged in

$api = Initialize-SharePointGraphApi -SiteUrl "https://<tenant>.sharepoint.com/sites/<site-name>"
$headers = $api.Headers
$siteId = $api.SiteId

Sites.Manage.All の権限が必要です。

手順 4:既存のリストを確認(リストを作成する場合)

作成する前に、必ず既存のリストをクエリしてください:

$existingLists = Invoke-RestMethod -Uri "https://graph.microsoft.com/v1.0/sites/$siteId/lists?`$select=id,displayName,description,list&`$filter=list/hidden eq false" -Headers $headers

Find-SimilarLists、Compare-ListSchemas、Get-ListSchema関数については、list-management-reference.mdを参照してください。

AskUserQuestionで確認結果をユーザーに提示します。

  • 再利用できるリスト(列が一致するリストがすでに存在する)
  • 拡張が必要なリスト(存在するが列が不足している)
  • 作成が必要なリスト(一致するリストが見つからない)
手順 5:リストを作成(リストを作成する場合)

作成する前に、明示的な確認を得てください。list-management-reference.mdの安全な関数を使用します。

  • New-SharePointListIfNotExists
  • Add-SharePointColumnIfNotExists
  • Add-SharePointLookupColumn(リスト間の参照に使用)
手順 6:接続 ID を取得

SharePoint Online の接続 ID を見つけます(connector-reference.mdを参照)。

/list-connectionsスキルを実行します。出力から SharePoint Online の接続を見つけます。見つからない場合は、環境固有の[Connections]URL を使って作成するようユーザーに案内します。コンテキスト内のアクティブな環境 ID(power.config.jsonまたは前の手順から取得)を使って、次のように URL を組み立てます:https://make.powerapps.com/environments/<environment-id>/connections → + 新しい接続 → コネクタを検索 → 作成。

手順 7:サイトを検出

ユーザーがアクセスできる SharePoint サイトを一覧表示します。

pa connector list-datasets --connector sharepointonline -c <connection-id>

サイトをユーザーに提示し、接続するサイトを尋ねます。ユーザーがすでにサイト URL を指定している場合は、一覧に表示されていることを確認します。

pa connector list-datasetsが失敗する、または結果が返されない場合:

  • 認証エラー:pa auth logoutを実行します(power-appsのみのプロジェクトではpower-apps logoutを実行)。その後、再試行します。CLI からブラウザーでのログインが再度求められます。
  • 空のリスト:接続 ID が SharePoint Online の接続を指していることと、ユーザーが少なくとも 1 つのサイトにアクセスできることを確認します。確認後もリストが空の場合は、そこで停止します。
  • その他のゼロ以外の終了コード:エラー出力をそのまま報告します。停止します。
ステップ 8:テーブルを確認する

選択した各サイトについて、利用可能なリストとドキュメントライブラリを一覧表示します。

pa connector list-tables --connector sharepointonline -c <connection-id> -d '<site-url>'

pa connector list-tables が失敗するか、結果が返されない場合:

  • ステップ 7 のサイト URL が正確であることを確認します(出力からコピーし、再入力しないでください)。
  • それでも結果が空の場合、そのサイトのリストにアクセスする権限がない可能性があります。ユーザーに SharePoint のアクセス許可を確認するよう依頼します。
  • その他のゼロ以外の終了コードの場合:エラー出力を正確に報告します。停止してください。

テーブルをユーザーに提示し、追加したいものを尋ねます。ユーザーの用途に関連していそうなテーブルを提案します(memory bank のコンテキスト、またはユーザーが明示した要件に基づきます)。ステップ 5 でリストを作成した場合、ここに表示されるはずです。

ステップ 9:コネクターを追加する

SharePoint は表形式のデータソースです。-c(接続 ID)、-d(サイト URL)、--table(リスト名)が必要です。

pa app add data-source --connector sharepointonline -c <connection-id> -d '<site-url>' --table '<table-name>'

ユーザーが選択した各リストまたはライブラリに対して、コマンドを実行します。-d(データセット)にはステップ 7 の SharePoint サイト URL を指定し、--table にはステップ 8 のリスト/ライブラリ名を指定します。

ステップ 10:設定する

SharePoint のコードを書く前に、sharepoint-reference.md を読んでください。列のエンコード、選択肢フィールド、ルックアップには重要な注意点があります。

一般的な操作:

// Get items from a SharePoint list
const items = await SharePointOnlineService.GetItems({
  dataset: "https://contoso.sharepoint.com/sites/your-site",
  table: "Your List Name"
});

// Create a new list item
await SharePointOnlineService.PostItem({
  dataset: "https://contoso.sharepoint.com/sites/your-site",
  table: "Your List Name",
  item: {
    Title: "New Item",
    Description: "Item description",
    Status: "Active"
  }
});

// Get files from a document library
const files = await SharePointOnlineService.ListFolder({
  dataset: "https://contoso.sharepoint.com/sites/your-site",
  id: "Shared Documents" // Library name or folder ID
});

// Get file content
const content = await SharePointOnlineService.GetFileContent({
  dataset: "https://contoso.sharepoint.com/sites/your-site",
  id: "file-server-relative-url"
});

重要なポイント:

  • dataset は常に SharePoint サイトの完全な URL です
  • table はリスト操作で使用するリストの表示名です
  • API のリスト列名は表示名と異なる場合があります(スペースは _x0020_ に、特殊文字はエンコードされます)
  • ドキュメントライブラリの操作では、フォルダー/ファイル ID またはサーバー相対 URL を使用します
  • 選択肢列には整数の選択肢コードではなく、文字列値を使用します(Dataverse とは異なります)

Grep を使って src/generated/services/SharePointOnlineService.ts 内の特定のメソッドを検索します(生成されたファイルは非常に大きい場合があります。connector-reference.md を参照してください)。

ステップ 11:ビルドする
npm run build

先に進む前に TypeScript のエラーを修正してください。まだデプロイしないでください。

ステップ 12:Memory Bank を更新する

memory-bank.md を更新し、追加したコネクター、サイト URL、設定または作成したリスト/ライブラリ、ビルドの状態を記録します。

コメント