one-drive-automation について
one-drive-automationは、ComposioのOneDriveツールキットでファイルやドライブ操作を自動化するスキルです。クラウド上のファイルを管理する人向けに、検索、転送、共有権限、フォルダー整理、変更追跡と各操作の注意点を扱います。
主な機能
- 01ファイル検索とドライブ内容の参照
- 02ファイルのアップロードとダウンロード
- 03共有リンク作成とアクセス権管理
- 04アイテムの作成・移動・コピー・削除
- 05容量・バージョン・変更の確認
活用シーン
- 01キーワードによるOneDriveファイルの検索
- 02指定フォルダーへのファイルのアップロードや取得
- 03指定ユーザーへのファイルアクセス権の付与
- 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 キーは不要です。エンドポイントを追加するだけで動作します。
RUBE_SEARCH_TOOLSが応答することを確認し、Rube MCP が利用可能であることを確認します- ツールキット
one_driveを指定してRUBE_MANAGE_CONNECTIONSを呼び出します - 接続が ACTIVE でない場合は、返された認証リンクを開いて Microsoft OAuth を完了します
- ワークフローを実行する前に、接続ステータスが ACTIVE であることを確認します
主なワークフロー
1. ファイルの検索と閲覧
使用する場面: OneDrive 内のファイルを検索したり、フォルダーの内容を閲覧したりする場合
ツールの手順:
ONE_DRIVE_GET_DRIVE- ドライブへのアクセスを確認し、ドライブの詳細を取得します [前提条件]ONE_DRIVE_SEARCH_ITEMS- ファイル名、メタデータ、コンテンツを対象にキーワード検索します [必須]ONE_DRIVE_ONEDRIVE_LIST_ITEMS- ドライブのルートにあるすべてのアイテムを一覧表示します [任意]ONE_DRIVE_GET_ITEM- 特定のアイテムの詳細なメタデータを取得し、子アイテムを展開します [任意]ONE_DRIVE_ONEDRIVE_FIND_FILE- フォルダー内から完全一致する名前のファイルを検索します [任意]ONE_DRIVE_ONEDRIVE_FIND_FOLDER- 名前を指定して特定のフォルダーを検索します [任意]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に指定するアイテム IDexpand_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 からファイルをダウンロードする場合
ツールの順序:
ONE_DRIVE_ONEDRIVE_FIND_FOLDER- 対象のフォルダーを検索します[前提条件]ONE_DRIVE_ONEDRIVE_UPLOAD_FILE- 指定したフォルダーにファイルをアップロードします[アップロード時に必須]ONE_DRIVE_DOWNLOAD_FILE- アイテム ID を指定してファイルをダウンロードします[ダウンロード時に必須]ONE_DRIVE_GET_ITEM- ダウンロード前にファイルの詳細を取得します[任意]
主なパラメーター:
file:アップロードする場合は、s3key、mimetype、nameを持つ FileUploadable オブジェクトfolder:アップロード先のパス(例:"/Documents/Reports")またはフォルダー IDitem_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. ファイルの共有とアクセス許可の管理
使用するタイミング:ファイルやフォルダーを共有する、またはアクセス権を持つユーザーを管理する場合
ツールの順序:
ONE_DRIVE_ONEDRIVE_FIND_FILEまたはONE_DRIVE_ONEDRIVE_FIND_FOLDER- アイテムを検索します[前提条件]ONE_DRIVE_GET_ITEM_PERMISSIONS- 現在のアクセス許可を確認します[前提条件]ONE_DRIVE_INVITE_USER_TO_DRIVE_ITEM- 特定のユーザーにアクセス権を付与します[必須]ONE_DRIVE_CREATE_LINK- 共有可能なリンクを作成します[任意]ONE_DRIVE_UPDATE_DRIVE_ITEM_METADATA- アイテムのメタデータを更新します[任意]
主なパラメーター:
item_id:共有するファイルまたはフォルダーrecipients:emailまたはobject_idを含むオブジェクトの配列roles:"read"または"write"を含む配列send_invitation:通知メールを送信する場合はtrue、通知なしでアクセス許可を付与する場合はfalserequire_sign_in:アクセスに認証を必須とする場合はtruemessage:招待に添えるカスタムメッセージ(最大 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. フォルダーを管理する(作成、移動、削除、コピー)
使用する場面:ユーザーがファイルやフォルダーの作成、移動、名前変更、削除、コピーを希望する場合
ツールの順序:
ONE_DRIVE_ONEDRIVE_FIND_FOLDER- コピー元とコピー先のフォルダーを特定します[前提条件]ONE_DRIVE_ONEDRIVE_CREATE_FOLDER- 新しいフォルダーを作成します[作成時に必須]ONE_DRIVE_MOVE_ITEM- ファイルまたはフォルダーを新しい場所に移動します[移動時に必須]ONE_DRIVE_COPY_ITEM- ファイルまたはフォルダーをコピーします(非同期処理)[コピー時に必須]ONE_DRIVE_DELETE_ITEM- アイテムをごみ箱に移動します[削除時に必須]ONE_DRIVE_UPDATE_DRIVE_ITEM_METADATA- アイテムの名前を変更するか、プロパティを更新します[任意]
主なパラメーター:
name:作成するフォルダー名、または名前変更/コピー時の新しい名前parent_folder:作成するフォルダーのパス(例:"/Documents/Reports")またはフォルダー IDitemId:移動するアイテム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. 変更とドライブ情報を追跡する
使用する場面:ユーザーが変更の監視やドライブ/クォータ情報の取得を希望する場合
ツールの順序:
ONE_DRIVE_GET_DRIVE- ドライブのプロパティとメタデータを取得します[必須]ONE_DRIVE_GET_QUOTA- ストレージクォータ(合計、使用済み、残り)を確認します[任意]ONE_DRIVE_LIST_SITE_DRIVE_ITEMS_DELTA- SharePoint サイトのドライブの変更を追跡します[任意]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_ITEMS | q, search_scope, top |
| ルートアイテムの一覧を取得 | ONE_DRIVE_ONEDRIVE_LIST_ITEMS | user_id, select, top |
| アイテムの詳細を取得 | ONE_DRIVE_GET_ITEM | item_id, expand_relations |
| 名前でファイルを検索 | ONE_DRIVE_ONEDRIVE_FIND_FILE | name, folder |
| 名前でフォルダーを検索 | ONE_DRIVE_ONEDRIVE_FIND_FOLDER | name, folder |
| ファイルをアップロード | ONE_DRIVE_ONEDRIVE_UPLOAD_FILE | file, folder |
| ファイルをダウンロード | ONE_DRIVE_DOWNLOAD_FILE | item_id, file_name |
| フォルダーを作成 | ONE_DRIVE_ONEDRIVE_CREATE_FOLDER | name, parent_folder |
| アイテムを移動 | ONE_DRIVE_MOVE_ITEM | itemId, parentReference |
| アイテムをコピー | ONE_DRIVE_COPY_ITEM | item_id, parent_reference, name |
| アイテムを削除 | ONE_DRIVE_DELETE_ITEM | item_id |
| ユーザーと共有 | ONE_DRIVE_INVITE_USER_TO_DRIVE_ITEM | item_id, recipients, roles |
| 共有リンクを作成 | ONE_DRIVE_CREATE_LINK | item_id, link type |
| 権限を取得 | ONE_DRIVE_GET_ITEM_PERMISSIONS | item_id |
| メタデータを更新 | ONE_DRIVE_UPDATE_DRIVE_ITEM_METADATA | item_id, fields` |
| ドライブ情報を取得 | ONE_DRIVE_GET_DRIVE | drive_id |
| ドライブの一覧を取得 | ONE_DRIVE_LIST_DRIVES | user/group/site scope |
| クォータを取得 | ONE_DRIVE_GET_QUOTA | (none) |
| 変更を追跡 | ONE_DRIVE_LIST_SITE_DRIVE_ITEMS_DELTA | site_id, token |
| バージョン履歴 | ONE_DRIVE_GET_ITEM_VERSIONS | item_id |
Composio により提供