mcpField
M
microsoft-sharepoint

microsoft-sharepoint

github.com/zapier生産性182103 回インストール9 週間前に更新
リポジトリ

microsoft-sharepoint について

microsoft-sharepointは、Microsoft Graph API v1.0を通じてSharePoint Onlineを操作するエージェントスキルです。サイト、ファイル、共有、リスト、リスト項目、ページを扱い、書き込みに必要なIDを取得する読み取り専用の検索ツールも備えています。

主な機能

  1. 01サイトの検索とドキュメントライブラリの閲覧
  2. 02ファイルの検索、アップロード、移動、コピー、共有
  3. 03リストとリスト項目の管理
  4. 04サイトページの作成と公開
  5. 05権限の確認、付与、取り消し

活用シーン

  1. 01SharePointサイト内のファイルやページを検索・閲覧
  2. 02ドキュメントのアップロード、整理、共有
  3. 03リストレコードの作成や更新
  4. 04サイトページの下書きと公開

MCP 対応

MCP対応クライアントでツールを読み込むか、ローカルに登録したMCPサーバー経由で利用できます。

インストール

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

$npx skills add https://github.com/zapier/connectors --skill microsoft-sharepoint

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

同梱ファイル

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

.mcp.json
CHANGELOG.md
cli.js
cli.ts
connections.ts
index.ts
LICENSE
NOTICE
package.json
README.md
.claude-plugin/
plugin.json
evals/
evals.json
results.md
lib/
microsoft-sharepoint.ts
references/
microsoft-sharepoint-api-gotchas.md
use-as-cli.md
use-as-mcp.md
use-as-recipe.md
use-as-sdk.md
use-with-zapier.md
use-without-zapier.md
scripts/
copyItem.ts
createFolder.ts
createList.ts
createListItem.ts
createPage.ts
createSharingLink.ts
deleteItem.ts
deleteListItem.ts
deletePage.ts

詳細

Microsoft SharePoint

Microsoft Graph API v1.0(https://graph.microsoft.com/v1.0/sites/...)を介して Microsoft SharePoint Online を操作する、エージェントから呼び出し可能なツールです。サイトやドキュメントライブラリの検索、ファイルやフォルダーの閲覧、検索、アップロード、ダウンロード、移動、コピー、共有、SharePoint リストとリスト項目の管理、サイトページの作成と公開に対応しています。サイト、ドライブ、ファイルとフォルダー、共有とアクセス許可、リスト、リスト項目、ページを対象とした 32 個のスクリプトを提供します。読み取り専用のナビゲーションツールで、書き込みツールに必要な ID(siteId、driveId、listId、pageId、列の内部名)を特定できます。サイトの指定には不透明な複合 ID を使います。この ID は findSites/getSite で取得するもので、手動で作成することはできません。

Microsoft SharePoint 向けの独立した非公式コネクターです。Microsoft SharePoint との提携、承認、スポンサー関係はありません。「Microsoft SharePoint」はその所有者の商標であり、このコネクターが連携するサービスを特定する目的でのみ使用しています。

使用する場面

  • エージェントが SharePoint のコンテンツを検索または読み取る必要がある場合 — サイトの検索、サイトのドキュメントライブラリの一覧表示、ファイルやフォルダーの閲覧または検索、ファイル、リスト項目、ページの詳細の読み取り。
  • エージェントがファイルを操作する必要がある場合 — フォルダーの作成、テキストファイルまたはバイナリファイルのアップロード、移動、コピー、名前の変更、PDF または HTML へのエクスポート、共有(リンクおよび個人単位のアクセス許可の付与)、アクセス許可の管理。
  • エージェントがリストを操作する必要がある場合 — サイトのリストの一覧表示、リストの列の確認、リストの作成、リスト項目の作成、読み取り、更新、削除。
  • エージェントがページを作成する必要がある場合 — サイトページの下書きの作成(テキストの本文コンテンツを任意で指定)と公開。

セットアップ

これは agentskills.io のスキルです。

コネクターをまだスキルとしてインストールしていない場合は、まず npx skills add zapier/connectors --skill microsoft-sharepoint(または、お使いのハーネス独自のスキルインストール方法)でインストールしてから、ここに進んでください。スキルのインストールでは、依存関係ではなく、これらのファイルがコピーされます。CLI、ローカル MCP サーバー、または zapier-sdk の認証コマンドを実行する前に、ここで一度 npm install --omit=dev を実行してください。公開パッケージを依存関係としてご自身のプロジェクトにインポートする場合は、npm install で必要なものがすべて解決されます。詳しくは references/use-as-sdk.md をご覧ください。

references/ を参照したり、このコネクターのテストを実行したり、変更を加えたりするために、実際のリポジトリのソースが必要ですか?スコープを指定した git clone については、README.md をご覧ください。

コネクターの実行には Node.js 22.18+ が必要です。実行方法に合ったリファレンスを選び、ほかの作業を始める前に読み込んでください。

使用できるもの読み込むファイル
MCP 対応クライアント — ツールがすでに読み込まれている場合(例:mcp__microsoft-sharepoint__<tool>)や、自分でローカルサーバーを登録する(またはユーザーに案内する)場合references/use-as-mcp.md
ターミナル/サブプロセスへのアクセス(node を実行できる)references/use-as-cli.md
ご自身のコードのみで、このパッケージを依存関係としてインポートする場合references/use-as-sdk.md
ツールにもターミナルにもアクセスできず、このパッケージをインポートする手段もないため、Microsoft SharePoint API を直接呼び出す独自コードを作成する場合(例:コード実行サンドボックス)references/use-as-recipe.md

スクリプト

getCopyStatus を除き、すべてのスクリプトで接続 microsoft-sharepoint を使用します。getCopyStatus は接続が不要で、事前認証済みの監視 URL をポーリングします。

スクリプトスクリプト名接続先説明
scripts/findSites.tsfindSitesmicrosoft-sharepointキーワードでサイトを検索します。サイトを見つける際の主なエントリーポイントです。
scripts/getSite.tsgetSitemicrosoft-sharepoint複合 ID、root、または {hostname}:/{path} でサイトを取得します。
scripts/listDrives.tslistDrivesmicrosoft-sharepointdriveId を特定するため、サイトのドキュメントライブラリを一覧表示します。
scripts/listFolderItems.tslistFolderItemsmicrosoft-sharepointフォルダーまたはドライブのルート直下にある項目を一覧表示します。
scripts/findFiles.tsfindFilesmicrosoft-sharepointドライブ内のファイルとフォルダーを、名前または内容で検索します。
scripts/getItem.tsgetItemmicrosoft-sharepointID を指定してファイルまたはフォルダーのメタデータ(ダウンロード URL を含む)を取得します。
scripts/createFolder.tscreateFoldermicrosoft-sharepointルートまたは別のフォルダー内にフォルダーを作成します。
scripts/uploadTextFile.tsuploadTextFilemicrosoft-sharepoint文字列の内容から小さなテキストファイルを作成します。
scripts/uploadFile.tsuploadFilemicrosoft-sharepointソース URL からバイナリファイルをアップロードします(大きなファイルにも対応します)。
scripts/replaceFile.tsreplaceFilemicrosoft-sharepointソース URL の内容で既存のファイルを置き換えます。
scripts/moveItem.tsmoveItemmicrosoft-sharepoint同じドキュメントライブラリ内の項目を移動または名前変更します。
scripts/copyItem.tscopyItemmicrosoft-sharepointファイルまたはフォルダーを別のフォルダーやドライブにコピーします(非同期)。
scripts/getCopyStatus.tsgetCopyStatus(none)copyItem で開始した非同期コピーのステータスを確認します。
scripts/deleteItem.tsdeleteItemmicrosoft-sharepointファイルまたはフォルダーを削除します(ごみ箱に移動します)。
scripts/exportFile.tsexportFilemicrosoft-sharepointPDF/HTML/JPG/GLB に変換したファイルをダウンロードします。
scripts/createSharingLink.tscreateSharingLinkmicrosoft-sharepoint項目への共有可能なリンク(表示/編集/埋め込み)を作成します。
scripts/inviteToItem.tsinviteToItemmicrosoft-sharepoint指定したユーザーに項目の読み取り/書き込みアクセスを許可します。
scripts/listItemPermissions.tslistItemPermissionsmicrosoft-sharepointファイルまたはフォルダーのアクセス許可を一覧表示します。
scripts/removeItemPermission.tsremoveItemPermissionmicrosoft-sharepointファイルまたはフォルダーのアクセス許可を取り消します。
scripts/listLists.tslistListsmicrosoft-sharepointサイトのリストを一覧表示します(単一リストの検索にも使用できます)。
scripts/createList.tscreateListmicrosoft-sharepointサイトに新しいリストを作成します。
scripts/listColumns.tslistColumnsmicrosoft-sharepointリストの列定義(内部フィールド名)を一覧表示します。
scripts/findListItems.tsfindListItemsmicrosoft-sharepoint列の値とともに、リスト内の項目を一覧表示またはフィルターします。
scripts/getListItem.tsgetListItemmicrosoft-sharepoint列の値とともに、単一のリスト項目を取得します。
scripts/createListItem.tscreateListItemmicrosoft-sharepointリストに新しい項目を作成します。
scripts/updateListItem.tsupdateListItemmicrosoft-sharepoint既存のリスト項目の列の値を更新します。
scripts/deleteListItem.tsdeleteListItemmicrosoft-sharepointリスト項目を完全に削除します(ごみ箱には移動しません)。
scripts/listPages.tslistPagesmicrosoft-sharepointpageId を特定するため、サイトのページを一覧表示します。
scripts/getPage.tsgetPagemicrosoft-sharepointID を指定して単一のサイトページを取得します。
scripts/createPage.tscreatePagemicrosoft-sharepoint必要に応じてテキストコンテンツを含む、サイトページの下書きを作成します。
scripts/publishPage.tspublishPagemicrosoft-sharepointサイトページの下書きを公開します。
scripts/deletePage.tsdeletePagemicrosoft-sharepointサイトページを削除します(ごみ箱に移動します)。

曖昧さの解消と拒否

書き込み前に曖昧さを解消します。 名前で検索した対象(findSites のサイト、listLists のリスト、findListItems のリスト項目)に書き込む前に、大文字と小文字を区別しない完全一致の名前の件数を数えます。

  • 一致がちょうど1件 — その対象に対して操作します。必要以上に確認を求めないでください。一意に特定できる一致が答えです。
  • 2件以上が同率で一致 — 操作を中止します。識別できるフィールド(webUrl、id、または lastModifiedDateTime)とともに該当候補を列挙し、どれを指しているのかユーザーに確認します。任意に選んだり、すべてに書き込んだりしないでください。特にサイト名は、部門が異なると重複することがあります(例:「Marketing」という名前のサイトが2つある場合)。

サポートされていない操作は、その旨を伝えて中止してください。別のツールでごまかしてはいけません。 このカタログでは、意図的に次の操作をサポートしていません。

  • ライブラリ間またはサイト間でのファイル移動(ネイティブな移動機能はありません)。 moveItem は同じライブラリ内でのみ使用できます。ライブラリ間またはサイト間で移動する唯一の方法は、copyItem → (getCopyStatus) → deleteItem ですが、これは損失を伴います。コピーには新しい ID と URL が割り当てられ、共有リンクとアクセス許可は引き継がれません。また、コピーが途中で失敗すると、ファイルを失う可能性があります。ファイルを別の場所に移動するよう求められた場合、この方法で移動を実行してもかまいませんが、通常の「移動」として伝えてはいけません。まず、コピー後に削除する操作であること、ファイルの URL/ID が変わり、共有リンクとアクセス許可が引き継がれないことをユーザーに警告します。元のファイルを削除する前に getCopyStatus でコピーが成功したことを確認し、新しい場所を報告してください。コピーして削除しただけなのに、黙って移動が完了したと報告してはいけません。
  • 既存ページの本文の編集、またはテキスト以外の Web パーツ(画像、埋め込み、クイックリンク、複数列レイアウト)の追加。 createPage で作成できるのは、新しいページ上の単一のテキスト Web パーツです。既存ページのコンテンツの編集と、リッチ Web パーツは対象外です。編集の代わりにページを削除して再作成してはいけません。ページの ID/URL が変わり、バージョン履歴、コメント、アクセス許可が失われます。ページ本文をその場で編集する機能はサポートされていないことを伝えて、中止してください。
  • テナント内のすべてのサイトの列挙。 「すべてのサイトを一覧表示」する機能はありません。委任トークンでは実行できません。キーワードを指定して findSites を使用するか、既知のパスを指定して getSite を使用してください。
  • コンテンツタイプ、サイト列、タームストアのメタデータ、またはトリガー(新しいファイル/項目の通知)の管理。 これらは公開されていません。
  • リスト項目のユーザー/グループ列または複数値の参照列への書き込み。 ここでは、これらの列タイプは読み取り専用です。

これらのいずれかを求められた場合は、サポートされていないことをユーザーに伝えて中止してください。代わりに、無関係なツールを使って代用してはいけません。

認証

すべてのシェイプで、認証情報そのものではなく、接続の セレクター([<resolver>:]<value> 文字列)を渡します。すべてのコネクターで zapier:<connection-id>(Zapier 管理の認証。Zapier の認証、リトライ、ガバナンスレイヤーを経由します)を使用できます。また、コネクターによっては、1 つ以上の直接トークン用リゾルバーも使用できます(名前と数はコネクターによって異なります)。推測で判断せず、このコネクター固有のリゾルバーを確認してください。<resolver>: プレフィックスは省略可能です。プレフィックスのない値は、その値を受け取る最初のリゾルバーに渡されます。UUID 形式の値は、必ず zapier: が受け取ります。各スクリプトでは、必要な接続と、使用できるリゾルバーを宣言します。接続を渡す正確な構文と、このコネクターのリゾルバー一覧を確認する方法はシェイプによって異なります。上で読み込んだリファレンスを参照してください。

すでに設定済みのものを確認しますか?確認のために環境変数の値を出力しないでください。env または env | grep <name> は名前とともに値も表示するため、設定されている場合は有効な認証情報がトランスクリプトに漏れる可能性があります。名前だけを確認する(env | cut -d= -f1 | grep -i <name>)か、既知の名前を直接テストしてください([ -n "$VAR_NAME" ])。

接続がまだありませんか?いずれかを選び、取得するにはそのリファレンスに記載された手順に従ってください。ユーザーが接続 ID やトークンを覚えているかのように、ただ尋ねてはいけません。

読み込む内容
認証情報を直接渡すreferences/use-without-zapier.md
Zapier 接続経由で認証情報を渡すreferences/use-with-zapier.md

出力形式

すべてのスクリプトは { data, meta } エンベロープを返します。

  • data — スクリプトの結果(outputSchema で宣言された形式。シェイプ内でスクリプトの正確なスキーマを確認する方法は、上で読み込んだリファレンスを参照してください)。
  • meta.outputDataValidation — data の検証結果:
    • { skipped: false, droppedPaths: null } — 検証済みで、削除されたものはありません。
    • { skipped: false, droppedPaths: [...], instruction } — 検証済みですが、該当するパスは data から削除されています。これは、スクリプトが API から返したものの、outputSchema で宣言されていないフィールドです。必要な場合は、出力検証をスキップして再実行してください。
    • { skipped: true } — 検証がスキップされ、data は未加工のまま、検証されていないスクリプト出力です。

削除されたフィールドを読む/skipOutputDataValidation。 未加工で未検証の結果を受け取るには、出力検証を無効にしてください(正確な構文はシェイプによって異なります。上で読み込んだリファレンスを参照してください)。入力検証はスキップされません。

結果を絞り込む/filterOutputData。 大きな結果を必要なフィールドに絞り込むには、data を後処理する jq 式を渡してください(正確な構文はシェイプごとに異なります)。jq は { data, meta } エンベロープではなく data のみに対して実行されるため、data を起点として記述してください(スクリプトの --help、またはシェイプに相当するコマンドを実行すると、出力スキーマを確認できます)。変換された値が data に置き換わり、meta は保持されます。また、結果は出力スキーマに対して再検証されません。

参考資料

該当する領域で作業する前に、対応する参考資料ファイルを読み込んでください。

参考資料対象読み込むタイミング
microsoft-sharepoint-api-gotchas.mdGraph のアクセス許可スコープ、エラーエンベロープ(403/404/429)、ページネーション、サイト/ドライブの指定方法、有効期間の短いダウンロード URL、非同期コピー、再開可能なアップロード、同一ドライブ内での移動、削除のセマンティクス、共有リンク/招待/アクセス許可、リスト項目の列の値(LookupId、12 件の参照制限、複数値)、サイトページのドラフト/公開/型キャストのルール。呼び出しで予期しないエラー(403/404/429、名前の競合)が発生した場合、サイト ID またはドライブ ID を特定する場合、リスト項目の列の値を扱う場合、サイトページを作成/公開する場合。

コメント