Skip to main content
Glama
technophile77

idrive-mcp-server

idrive-mcp-server

iDrive の Web バックアップ/リストアコンソールを、MCP 互換の AI アシスタント(例: Claude Desktop や Claude Code)向けのツールとして公開する MCP(Model Context Protocol)サーバーです。iDrive にはこのコンソール向けの公開 API や OAuth フローがないため、ログイン済みブラウザからコピーしたセッション Cookie を使って、idrive.com コンソール自身が呼び出すものと同じ、iDrive の非公開内部 Web API と通信します。このサーバーの基になっているリバースエンジニアリング済みエンドポイントのリファレンスは docs/api-map.md を参照してください。

  1. ブラウザで idrive.com にログインします。

  2. DevTools -> Network タブを開きます。

  3. www.idrive.com への XHR リクエストをクリックします。

  4. そのリクエストの Cookie ヘッダーの完全な値をコピーします。

  5. .env ファイル(.env.example をコピー)に IDRIVE_COOKIE=<値> として入れます。

この Cookie にはセッショントークン(SES_TOKEN、JWT)が含まれており、約 24 時間で期限切れになります。期限が切れると、ツールの呼び出しは「セッションを更新してください」という明確なエラーで失敗するため、上記の手順を繰り返す必要があります。

Related MCP server: Google Drive MCP Server

Claude Code / Claude Desktop での設定

MCP 設定(Claude Code の場合は .mcp.json、Claude Desktop の場合は claude_desktop_config.json)にエントリを追加します:

{
  "mcpServers": {
    "idrive": {
      "command": "npx",
      "args": ["tsx", "src/index.ts"],
      "cwd": "/absolute/path/to/idrive-mcp-server",
      "env": {
        "IDRIVE_COOKIE": "<your cookie value>"
      }
    }
  }
}

または、npm run build を実行した後、command/args をビルド出力に向けます:

{
  "mcpServers": {
    "idrive": {
      "command": "node",
      "args": ["dist/index.js"],
      "cwd": "/absolute/path/to/idrive-mcp-server",
      "env": {
        "IDRIVE_COOKIE": "<your cookie value>"
      }
    }
  }
}

利用可能なツール

  • list_devices — 入力なし。認証された iDrive アカウントでバックアップされているすべてのデバイス(デバイス ID、OS、ニックネーム、IP アドレス、バックアップバケットの場所)を、EVS ホストの evs/listDevices エンドポイント経由で一覧表示します。IDRIVE_COOKIE 以外の設定は不要です。

  • list_filesdeviceId(必須)、path(デフォルト "/")、osType(デフォルト "win")。iDrive の getRestoreData エンドポイント経由で、デバイスのバックアップ済みファイルツリーを閲覧します。

  • browse_folderdeviceId(必須)、path(必須、EVS 形式: "/C""/C/Users/...")。よりリッチな EVS ホストの evs/browseFolder エンドポイント(list_files にはないゴミ箱/チェックサム/ライブイメージフィールドを追加)経由で、デバイスのバックアップ済みフォルダを閲覧します。evs/browseFolder がルートパスを直接処理するのはこれまで観測されていないため、まず list_files を使用してデバイスの利用可能なドライブ文字/ルートを発見してください。

  • get_thumbnaildeviceId(必須)、path(必須、browse_folder と同じ EVS 形式)、timestamp(必須 — 以前の list_files/browse_folder 呼び出しによるファイルの lmd_web 値)。EVS ホストの evs/getThumbnail エンドポイント経由で、バックアップ済みファイルのサムネイルプレビュー画像を取得し、MCP 画像コンテンツとして返します。

  • download_filedeviceId(必須)、path(必須、browse_folder と同じ EVS 形式)。EVS ホストの evs/downloadFile エンドポイント経由で、バックアップ済みファイルの実際のコンテンツをダウンロードし、base64 エンコードされた MCP リソースコンテンツとして返します。このエンドポイントの iDrive の Content-Type は実際のファイルタイプを識別するのに信頼できないため、ファイル名/拡張子から推測してください。

  • get_file_propertiesdeviceId(必須)、path(必須、browse_folder と同じ EVS 形式)。EVS ホストの evs/getProperties エンドポイント経由で、単一のバックアップ済みファイルまたはフォルダのサイズ/最終更新メタデータを取得します。

  • get_file_versionsdeviceId(必須)、path(必須、browse_folder と同じ EVS 形式)。EVS ホストの evs/getVersions エンドポイント経由で、ファイルの以前のバックアップバージョンを一覧表示します。現時点で確認されているのは「バージョン履歴なし」の応答形式のみです — 以前のバージョンがないファイルは、ツールエラーではなく通常の結果(hasVersions: false)として報告されます。実際のバージョンリストの形式は未確認で、生の JSON として返されます。

  • get_account_usage — 入力なし。アカウントの使用済み/合計 Sync ストレージクォータを生の文字列(例: "0.00 KB""5000.00 GB")として返します。iDrive の account.html ページの 2 つのインライン <script> 変数からスクレイピングします — 専用の JSON 使用量エンドポイントはありません。本質的に壊れやすい(安定した API ではなく HTML スクレイピング)ものであり、ページ自身の「Sync」クォータ命名を具体的に反映しています。デバイスのバックアップ全体の合計使用量も表すかどうかは未確認です。

変更を加えるツール

以下のツールは、上記のすべてのツール(すべて読み取り専用)とは異なり、アカウント上の実際のバックアップ済みデータを変更します。それらの説明と MCP annotations はそれを明示的に示しています(readOnlyHint: false、および delete_file の場合は destructiveHint: true)。

  • create_folderdeviceId(必須)、parentPath(必須、EVS 形式、既存のフォルダである必要があります)、folderName(必須 — パスではなく新しいフォルダの名前のみ)。EVS ホストの evs/createFolder エンドポイント経由で、デバイスのライブバックアップ内に新しいフォルダを作成します。ライブで確認済み: 新しいフォルダは、その後の browse_folder/list_files の一覧に表示されます。

  • delete_filedeviceId(必須)、paths(必須、1 つ以上の EVS 形式パスの配列 — 単一のバッチ呼び出しで繰り返しの p フィールドとして送信されます)、permanent(オプション、デフォルト false)。EVS ホストの evs/v1/deleteFile エンドポイント経由で、デバイスのライブバックアップからファイル/フォルダを削除します。permanent: false(デフォルト)はパスをゴミ箱に移動します — ライブで確認済みで、restore_from_trash で復元可能です。permanent: truetrash=no を送信し、フィールド名/パターンから永続的で復元不可能な削除を意味すると推定されますが、これはライブで独立に確認されたことはありません — 依存する前に未検証として扱ってください。

  • restore_from_trashdeviceId(必須)、paths(必須、1 つ以上の EVS 形式パスの配列、delete_file と同じ繰り返し p バッチ処理)。EVS ホストの evs/putBackFromTrash エンドポイント経由で、以前ゴミ箱に移動したファイル/フォルダを元の場所に復元します。ライブで確認済み。現在ゴミ箱にあるものを列挙する確認済みの方法はないため、paths は既にわかっている必要があります。

すべての EVS ホストツール(browse_folderget_thumbnaildownload_fileget_file_propertiesget_file_versionslist_devicescreate_folderdelete_filerestore_from_trash)は、EVS サテライトホストが必要とする EVSID セッションを透過的にブートストラップしてキャッシュします(docs/api-map.md の「EVSID: EVS セッションが実際に確立される方法」セクションを参照)— IDRIVE_COOKIE 以外の追加設定は不要ですが、ブートストラップする EVS ホストを知るために、Cookie の EVS_SERVER 値(/idrive/home からコピーした Cookie に存在し、idriveent コンソールからコピーしたものには必ずしも存在しない)が必要です。

テスト

npm test はユニットテストを無条件に実行し、さらに環境変数でゲートされ、未設定の場合はきれいにスキップされる一連のライブ統合テストを実行します:

  • IDRIVE_COOKIE — 統合テストを実行するために必須。

  • IDRIVE_TEST_DEVICE_ID — ほとんどの統合テストが必要とする実際の device_idlist_devices から)。

  • IDRIVE_TEST_EVS_PATH — ほとんどの統合テストがその下で閲覧/読み取りを行う実際の EVS 形式パス(例: /C)。

  • IDRIVE_TEST_ALLOW_MUTATIONS=1 — 上記 3 つの変数に加えて、src/tools/files.test.tscreate_folder/delete_file/restore_from_trash 統合テストを実行するために必要な別個の明示的なオプトイン。そのテストは実際のアカウントを変更します: IDRIVE_TEST_EVS_PATH の下に一意の名前の使い捨てフォルダを作成し(繰り返し実行しても衝突しない)、そのフォルダに対して 3 つのツールすべてを実行し、テスト終了前にゴミ箱に移動してクリーンアップします — 途中でアサーションが失敗しても(try/finally)。この変数が正確に "1" に設定されていない場合、そのテストはスキップされるため、読み取り専用テスト用に IDRIVE_COOKIE/IDRIVE_TEST_DEVICE_ID/IDRIVE_TEST_EVS_PATH のみを設定した開発者は、実際のデータに触れるリスクなしに npm test を実行できます。

get_account_usage の統合テストは読み取り専用で、他のアカウントツールと同じく IDRIVE_COOKIE のみが必要です。

ステータス

設定読み込み、セッション期限切れ検出、共有 HTTP クライアント(src/client/idriveClient.ts)は実装済みです。MCP ツールは src/tools/ の下に段階的に追加されています(上記「利用可能なツール」を参照)。

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

  • MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/technophile77/idrive-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server