mcpField
O
one-drive-automation

one-drive-automation

github.com/davepoon生産性3.7k118 回インストール1 日前に更新
リポジトリ

one-drive-automation について

one-drive-automationは、ComposioのOneDriveツールキットでファイルやドライブ操作を自動化するスキルです。クラウド上のファイルを管理する人向けに、検索、転送、共有権限、フォルダー整理、変更追跡と各操作の注意点を扱います。

主な機能

  1. 01ファイル検索とドライブ内容の参照
  2. 02ファイルのアップロードとダウンロード
  3. 03共有リンク作成とアクセス権管理
  4. 04アイテムの作成・移動・コピー・削除
  5. 05容量・バージョン・変更の確認

活用シーン

  1. 01キーワードによるOneDriveファイルの検索
  2. 02指定フォルダーへのファイルのアップロードや取得
  3. 03指定ユーザーへのファイルアクセス権の付与
  4. 04SharePointドライブの変更やファイル版の確認

MCP 対応

Rube MCPを介してComposioのOneDriveツールキットを呼び出します。利用にはRube MCPとOneDriveの接続が必要で、操作前に最新のツールスキーマを取得します。

インストール

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

$npx skills add https://github.com/davepoon/buildwithclaude --skill one-drive-automation

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

詳細

Rube MCP による OneDrive の自動化

Composio の OneDrive ツールキットを通じて、ファイルのアップロード/ダウンロード、検索、フォルダー管理、共有リンク、アクセス許可の管理、ドライブの閲覧など、OneDrive の操作を自動化します。

ツールキットのドキュメント: composio.dev/toolkits/one_drive

前提条件

  • Rube MCP が接続されていること(RUBE_SEARCH_TOOLS が利用可能)
  • ツールキット one_drive を指定した RUBE_MANAGE_CONNECTIONS による有効な OneDrive 接続
  • 最新のツールスキーマを取得するため、必ず最初に RUBE_SEARCH_TOOLS を呼び出してください

セットアップ

Rube MCP の取得: クライアント設定で https://rube.app/mcp を MCP サーバーとして追加します。API キーは不要です。エンドポイントを追加するだけで動作します。

  1. RUBE_SEARCH_TOOLS が応答することを確認し、Rube MCP が利用可能であることを確認します
  2. ツールキット one_drive を指定して RUBE_MANAGE_CONNECTIONS を呼び出します
  3. 接続が ACTIVE でない場合は、返された認証リンクを開いて Microsoft OAuth を完了します
  4. ワークフローを実行する前に、接続ステータスが ACTIVE であることを確認します

主なワークフロー

1. ファイルの検索と閲覧

使用する場面: OneDrive 内のファイルを検索したり、フォルダーの内容を閲覧したりする場合

ツールの手順:

  1. ONE_DRIVE_GET_DRIVE - ドライブへのアクセスを確認し、ドライブの詳細を取得します [前提条件]
  2. ONE_DRIVE_SEARCH_ITEMS - ファイル名、メタデータ、コンテンツを対象にキーワード検索します [必須]
  3. ONE_DRIVE_ONEDRIVE_LIST_ITEMS - ドライブのルートにあるすべてのアイテムを一覧表示します [任意]
  4. ONE_DRIVE_GET_ITEM - 特定のアイテムの詳細なメタデータを取得し、子アイテムを展開します [任意]
  5. ONE_DRIVE_ONEDRIVE_FIND_FILE - フォルダー内から完全一致する名前のファイルを検索します [任意]
  6. ONE_DRIVE_ONEDRIVE_FIND_FOLDER - 名前を指定して特定のフォルダーを検索します [任意]
  7. ONE_DRIVE_LIST_DRIVES - アクセス可能なすべてのドライブを一覧表示します [任意]

主なパラメーター:

  • q: 検索クエリ(通常のキーワードのみ。KQL 構文は使用しないでください)
  • search_scope: "root"(フォルダー階層)または "drive"(共有アイテムを含む)
  • top: ページあたりの最大アイテム数(デフォルトは 200)
  • skip_token: @odata.nextLink から取得するページネーショントークン
  • select: 返すフィールドをカンマ区切りで指定します(例: "id,name,webUrl,size")
  • orderby: 並べ替え順(例: "name asc"、"name desc")
  • item_id: GET_ITEM に指定するアイテム ID
  • expand_relations: GET_ITEM で使用する ["children"] や ["thumbnails"] などの配列
  • user_id: "me"(デフォルト)または特定のユーザー ID/メールアドレス

注意点:

  • ONE_DRIVE_SEARCH_ITEMS は KQL 演算子(folder:、file:、filetype:、path:)をサポートしていません。これらは文字列として扱われます
  • ワイルドカード文字(*、?)はサポートされておらず、自動的に削除されます。代わりにファイル拡張子のキーワードを使用してください(例: "*.pdf" ではなく "pdf")
  • ONE_DRIVE_ONEDRIVE_LIST_ITEMS が返すのはルート階層の内容のみです。下位階層を取得するには、expand_relations: ["children"] を指定して ONE_DRIVE_GET_ITEM を再帰的に使用してください
  • 大きなフォルダーはページネーションされます。データをすべて取得するまで、必ず skip_token/@odata.nextLink をたどってください
  • Microsoft Graph API の制限により、一部の形式のドライブ ID では「ObjectHandle is Invalid」エラーが発生する場合があります
2. ファイルのアップロードとダウンロード

使用するタイミング:OneDrive にファイルをアップロードする、または OneDrive からファイルをダウンロードする場合

ツールの順序:

  1. ONE_DRIVE_ONEDRIVE_FIND_FOLDER - 対象のフォルダーを検索します[前提条件]
  2. ONE_DRIVE_ONEDRIVE_UPLOAD_FILE - 指定したフォルダーにファイルをアップロードします[アップロード時に必須]
  3. ONE_DRIVE_DOWNLOAD_FILE - アイテム ID を指定してファイルをダウンロードします[ダウンロード時に必須]
  4. ONE_DRIVE_GET_ITEM - ダウンロード前にファイルの詳細を取得します[任意]

主なパラメーター:

  • file:アップロードする場合は、s3key、mimetype、name を持つ FileUploadable オブジェクト
  • folder:アップロード先のパス(例:"/Documents/Reports")またはフォルダー ID
  • item_id:ダウンロードするファイルの一意の識別子
  • file_name:ダウンロード時に指定する拡張子付きのファイル名
  • drive_id:特定のドライブ ID(SharePoint または OneDrive for Business の場合)
  • user_id:"me"(デフォルト)または特定のユーザー識別子

注意事項:

  • アップロード時に競合が発生すると、自動的にファイル名が変更されます(デフォルトでは上書きオプションはありません)
  • 大容量ファイルはチャンク分割によって自動的に処理されます
  • drive_id と user_id の両方を指定した場合、drive_id が優先されます
  • アイテム ID の形式はプラットフォームによって異なります。OneDrive for Business では 01... で始まり、OneDrive Personal では HASH!NUMBER 形式です
  • アイテム ID は大文字と小文字を区別します。API から返された値をそのまま使用してください
3. ファイルの共有とアクセス許可の管理

使用するタイミング:ファイルやフォルダーを共有する、またはアクセス権を持つユーザーを管理する場合

ツールの順序:

  1. ONE_DRIVE_ONEDRIVE_FIND_FILE または ONE_DRIVE_ONEDRIVE_FIND_FOLDER - アイテムを検索します[前提条件]
  2. ONE_DRIVE_GET_ITEM_PERMISSIONS - 現在のアクセス許可を確認します[前提条件]
  3. ONE_DRIVE_INVITE_USER_TO_DRIVE_ITEM - 特定のユーザーにアクセス権を付与します[必須]
  4. ONE_DRIVE_CREATE_LINK - 共有可能なリンクを作成します[任意]
  5. ONE_DRIVE_UPDATE_DRIVE_ITEM_METADATA - アイテムのメタデータを更新します[任意]

主なパラメーター:

  • item_id:共有するファイルまたはフォルダー
  • recipients:email または object_id を含むオブジェクトの配列
  • roles:"read" または "write" を含む配列
  • send_invitation:通知メールを送信する場合は true、通知なしでアクセス許可を付与する場合は false
  • require_sign_in:アクセスに認証を必須とする場合は true
  • message:招待に添えるカスタムメッセージ(最大 2000 文字)
  • expiration_date_time:アクセス許可の有効期限を示す ISO 8601 形式の日付
  • retain_inherited_permissions:既存の継承されたアクセス許可を維持する場合は true(デフォルト)

注意事項:

  • INVITE_USER_TO_DRIVE_ITEM に誤った item_id を指定すると、意図しないアイテムのアクセス許可が変更されます。必ず事前に確認してください
  • 書き込み以上のロールは影響が大きいため、付与する前にユーザーの明示的な確認を得てください
  • GET_ITEM_PERMISSIONS は継承されたアクセス許可と所有者のエントリも返します。レスポンスが最近の変更のみを反映していると想定しないでください
  • permissions は ONE_DRIVE_GET_ITEM では展開できません。個別のアクセス許可エンドポイントを使用してください
  • require_sign_in または send_invitation の少なくとも一方を true にする必要があります
4. フォルダーを管理する(作成、移動、削除、コピー)

使用する場面:ユーザーがファイルやフォルダーの作成、移動、名前変更、削除、コピーを希望する場合

ツールの順序:

  1. ONE_DRIVE_ONEDRIVE_FIND_FOLDER - コピー元とコピー先のフォルダーを特定します[前提条件]
  2. ONE_DRIVE_ONEDRIVE_CREATE_FOLDER - 新しいフォルダーを作成します[作成時に必須]
  3. ONE_DRIVE_MOVE_ITEM - ファイルまたはフォルダーを新しい場所に移動します[移動時に必須]
  4. ONE_DRIVE_COPY_ITEM - ファイルまたはフォルダーをコピーします(非同期処理)[コピー時に必須]
  5. ONE_DRIVE_DELETE_ITEM - アイテムをごみ箱に移動します[削除時に必須]
  6. ONE_DRIVE_UPDATE_DRIVE_ITEM_METADATA - アイテムの名前を変更するか、プロパティを更新します[任意]

主なパラメーター:

  • name:作成するフォルダー名、または名前変更/コピー時の新しい名前
  • parent_folder:作成するフォルダーのパス(例:"/Documents/Reports")またはフォルダー ID
  • itemId:移動するアイテム
  • parentReference:移動先フォルダーの id を含むオブジェクト:{"id": "folder_id"}
  • item_id:コピーまたは削除するアイテム
  • parent_reference:コピー先の id と、任意で driveId を含むオブジェクト
  • @microsoft.graph.conflictBehavior:コピー時の "fail"、"replace"、または "rename"
  • if_match:削除時の楽観的同時実行制御に使用する ETag

注意点:

  • ONE_DRIVE_MOVE_ITEM はドライブ間の移動に対応していません。ドライブ間で転送する場合は ONE_DRIVE_COPY_ITEM を使用してください
  • 移動時の parentReference にはフォルダー名ではなくフォルダー ID が必要です。先に ONEDRIVE_FIND_FOLDER で解決してください
  • ONE_DRIVE_COPY_ITEM は非同期です。レスポンスには進行状況を監視するための URL が含まれます
  • ONE_DRIVE_DELETE_ITEM はアイテムをごみ箱に移動します。完全には削除されません
  • フォルダーの作成時に名前が競合すると、自動的に名前が変更されます(例:「New Folder」は「New Folder 1」になります)
  • ONE_DRIVE_COPY_ITEM には name、parent_reference、またはその両方を指定してください
5. 変更とドライブ情報を追跡する

使用する場面:ユーザーが変更の監視やドライブ/クォータ情報の取得を希望する場合

ツールの順序:

  1. ONE_DRIVE_GET_DRIVE - ドライブのプロパティとメタデータを取得します[必須]
  2. ONE_DRIVE_GET_QUOTA - ストレージクォータ(合計、使用済み、残り)を確認します[任意]
  3. ONE_DRIVE_LIST_SITE_DRIVE_ITEMS_DELTA - SharePoint サイトのドライブの変更を追跡します[任意]
  4. ONE_DRIVE_GET_ITEM_VERSIONS - ファイルのバージョン履歴を取得します[任意]

主なパラメーター:

  • drive_id:ドライブ識別子(個人用ドライブの場合は "me")
  • site_id:差分追跡に使用する SharePoint サイト識別子
  • token:差分トークン(現在の状態には "latest"、次のページには URL、またはタイムスタンプ)
  • item_id:バージョン履歴を取得するファイルの ID

注意点:

  • 差分クエリは ONE_DRIVE_LIST_SITE_DRIVE_ITEMS_DELTA を使用した SharePoint サイトのドライブでのみ利用できます
  • トークン "latest" はアイテムを返さず、現在の差分トークンを返します(開始地点として便利です)
  • 深い階層や大規模なドライブの走査には数分かかることがあります。バッチ処理と再開ロジックを使用してください

よくあるパターン

ID の解決
  • ユーザー:認証済みユーザーには "me"、特定のユーザーにはメールアドレスまたは GUID を使用します
  • 検索で取得したアイテム ID:ONE_DRIVE_ONEDRIVE_FIND_FILE または ONE_DRIVE_ONEDRIVE_FIND_FOLDER を使用してアイテム ID を取得します
  • 検索結果から取得したアイテム ID:ONE_DRIVE_SEARCH_ITEMS の結果から抽出します
  • ドライブ ID:ONE_DRIVE_LIST_DRIVES または ONE_DRIVE_GET_DRIVE を使用してドライブを特定します
  • フォルダーパスから ID を取得:パスを指定して ONE_DRIVE_ONEDRIVE_FIND_FOLDER を使用し、レスポンスから ID を抽出します

ID の形式はプラットフォームによって異なります:

  • OneDrive for Business/SharePoint:01NKDM7HMOJTVYMDOSXFDK2QJDXCDI3WUK
  • OneDrive Personal:D4648F06C91D9D3D!54927
ページネーション

OneDrive ではトークンベースのページネーションを使用します:

  • ページがなくなるまで @odata.nextLink または skip_token をたどります
  • ページサイズには top を設定します(エンドポイントによって異なります)
  • ONE_DRIVE_ONEDRIVE_LIST_ITEMS はページネーションを内部で自動処理します
  • 並列リクエストを過剰に行うと HTTP 429 が発生することがあります。Retry-After ヘッダーに従ってください
パスと ID の違い

ほとんどの OneDrive ツールは、パスまたは ID のいずれかを受け付けます。

  • パス:/ で始まります(例:"/Documents/Reports")
  • ID:API レスポンスから取得した一意のアイテム識別子を使用します
  • 権限に使用するアイテムのパス::/path/to/item:/ 形式を使用します

既知の注意点

ID の形式
  • アイテム ID は大文字と小文字が区別され、プラットフォーム固有です
  • Web URL、共有リンク、または手動で作成した識別子をアイテム ID として使用しないでください
  • Microsoft Graph API から返された ID を常にそのまま使用してください
レート制限
  • ONE_DRIVE_GET_ITEM を積極的に並列呼び出しすると、HTTP 429 Too Many Requests が発生することがあります
  • Retry-After ヘッダーを尊重し、スロットリングを実装してください
  • ドライブを深くクロールする場合は、遅延を挟んだバッチ処理を使用してください
検索の制限
  • KQL はサポートされていません。プレーンなキーワードのみを使用してください
  • ワイルドカード文字は使用できません。拡張子のキーワードを使用してください(例:"*.pdf" ではなく "pdf")
  • 検索ではパスによるフィルタリングはできません。代わりにフォルダーの一覧を取得してください
  • q='*' のようにワイルドカードのみを指定したクエリは、HTTP 400 invalidRequest を返します
パラメーターの注意点
  • drive_id と user_id の両方が指定されている場合、drive_id が優先されます
  • GET_ITEM では permissions を展開できません。専用の権限エンドポイントを使用してください
  • アイテムの移動では、parentReference にフォルダー名ではなくフォルダー ID が必要です
  • コピー操作は非同期です。レスポンスには監視用 URL が含まれます

クイックリファレンス

タスクツールスラッグ主なパラメーター
ファイルを検索ONE_DRIVE_SEARCH_ITEMSq, search_scope, top
ルートアイテムの一覧を取得ONE_DRIVE_ONEDRIVE_LIST_ITEMSuser_id, select, top
アイテムの詳細を取得ONE_DRIVE_GET_ITEMitem_id, expand_relations
名前でファイルを検索ONE_DRIVE_ONEDRIVE_FIND_FILEname, folder
名前でフォルダーを検索ONE_DRIVE_ONEDRIVE_FIND_FOLDERname, folder
ファイルをアップロードONE_DRIVE_ONEDRIVE_UPLOAD_FILEfile, folder
ファイルをダウンロードONE_DRIVE_DOWNLOAD_FILEitem_id, file_name
フォルダーを作成ONE_DRIVE_ONEDRIVE_CREATE_FOLDERname, parent_folder
アイテムを移動ONE_DRIVE_MOVE_ITEMitemId, parentReference
アイテムをコピーONE_DRIVE_COPY_ITEMitem_id, parent_reference, name
アイテムを削除ONE_DRIVE_DELETE_ITEMitem_id
ユーザーと共有ONE_DRIVE_INVITE_USER_TO_DRIVE_ITEMitem_id, recipients, roles
共有リンクを作成ONE_DRIVE_CREATE_LINKitem_id, link type
権限を取得ONE_DRIVE_GET_ITEM_PERMISSIONSitem_id
メタデータを更新ONE_DRIVE_UPDATE_DRIVE_ITEM_METADATAitem_id, fields`
ドライブ情報を取得ONE_DRIVE_GET_DRIVEdrive_id
ドライブの一覧を取得ONE_DRIVE_LIST_DRIVESuser/group/site scope
クォータを取得ONE_DRIVE_GET_QUOTA(none)
変更を追跡ONE_DRIVE_LIST_SITE_DRIVE_ITEMS_DELTAsite_id, token
バージョン履歴ONE_DRIVE_GET_ITEM_VERSIONSitem_id

Composio により提供

コメント