idrive-mcp-server
idrive-mcp-server
Сервер MCP (Model Context Protocol), который предоставляет веб-консоль резервного копирования/восстановления iDrive в виде инструментов для MCP-совместимого ИИ-ассистента (например, Claude Desktop или Claude Code). Он взаимодействует с недокументированным внутренним веб-API iDrive — теми же конечными точками, которые вызывает сама консоль idrive.com, — используя файл cookie сеанса, скопированный из браузера, в котором выполнен вход, поскольку iDrive не предоставляет публичный API или поток OAuth для этой консоли. См. docs/api-map.md для справки по реверс-инжинирингу конечных точек, на которых основан этот сервер.
Получение IDRIVE_COOKIE
Войдите в idrive.com в своем браузере.
Откройте DevTools -> вкладку Network.
Нажмите на любой XHR-запрос, отправленный на
www.idrive.com.Скопируйте полное значение заголовка
Cookieэтого запроса.Поместите его в файл
.env(скопируйте.env.example) какIDRIVE_COOKIE=<значение>.
Этот файл cookie содержит токен сеанса (SES_TOKEN, JWT), срок действия которого истекает примерно через 24 часа — когда это произойдет, вызовы инструментов будут завершаться с понятной ошибкой «обновите сеанс», и вам нужно будет повторить описанные выше шаги.
Related MCP server: Google Drive MCP Server
Настройка в Claude Code / Claude Desktop
Добавьте запись в конфигурацию MCP (.mcp.json для Claude Code или claude_desktop_config.json для Claude Desktop):
{
"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 (идентификатор устройства, ОС, псевдоним, IP-адрес и расположение корзины резервного копирования) через конечную точкуevs/listDevices, размещенную на EVS. Не требует дополнительной настройки, кромеIDRIVE_COOKIE.list_files—deviceId(обязательно),path(по умолчанию"/"),osType(по умолчанию"win"). Просматривает дерево резервных копий файлов устройства через конечную точку iDrivegetRestoreData.browse_folder—deviceId(обязательно),path(обязательно, формат EVS:"/C","/C/Users/..."). Просматривает резервную копию папки устройства через более богатую конечную точкуevs/browseFolder, размещенную на EVS (добавляет поля корзины/контрольной суммы/живого образа помимоlist_files). Сначала используйтеlist_files, чтобы обнаружить доступные буквы дисков/корневые каталоги устройства, посколькуevs/browseFolderникогда не наблюдался при обработке корневого пути без указания диска.get_thumbnail—deviceId(обязательно),path(обязательно, тот же формат EVS, что иbrowse_folder),timestamp(обязательно — значениеlmd_webфайла из предыдущего вызоваlist_files/browse_folder). Получает изображение предварительного просмотра для резервной копии файла через конечную точкуevs/getThumbnail, размещенную на EVS, возвращается как содержимое изображения MCP.download_file—deviceId(обязательно),path(обязательно, тот же формат EVS, что иbrowse_folder). Загружает фактическое содержимое резервной копии файла через конечную точкуevs/downloadFile, размещенную на EVS, возвращается как содержимое ресурса MCP в кодировке base64.Content-TypeiDrive для этой конечной точки не заслуживает доверия для определения реального типа файла — определяйте его по имени/расширению файла.get_file_properties—deviceId(обязательно),path(обязательно, тот же формат EVS, что иbrowse_folder). Получает метаданные размера/даты последнего изменения для одного файла или папки резервной копии через конечную точкуevs/getProperties, размещенную на EVS.get_file_versions—deviceId(обязательно),path(обязательно, тот же формат EVS, что иbrowse_folder). Перечисляет предыдущие версии резервной копии файла через конечную точкуevs/getVersions, размещенную на EVS. Пока подтверждена только форма ответа «нет истории версий» — файл без предыдущих версий сообщается как обычный результат (hasVersions: false), а не как ошибка инструмента; форма реального списка версий не подтверждена и возвращается как необработанный JSON.get_account_usage— без ввода. Возвращает использованную/общую квоту хранилища Sync учетной записи в виде необработанных строк (например,"0.00 KB","5000.00 GB"), извлеченных из двух встроенных переменных<script>на страницеaccount.htmliDrive — выделенной конечной точки JSON для использования нет. По своей природе хрупкий (это извлечение из HTML, а не стабильный API) и отражает конкретно название квоты «Sync» на самой странице; также не подтверждено, представляет ли он общее использование для резервных копий устройств.
Изменяющие инструменты
Инструменты ниже изменяют реальные резервные данные в учетной записи, в отличие от всех инструментов выше (только для чтения). Их описания и annotations MCP явно об этом говорят (readOnlyHint: false, а для delete_file также destructiveHint: true).
create_folder—deviceId(обязательно),parentPath(обязательно, формат EVS, должна быть существующей папкой),folderName(обязательно — только имя новой папки, не путь). Создает новую папку в живой резервной копии устройства через конечную точкуevs/createFolder, размещенную на EVS. Подтверждено вживую: новая папка появляется в последующих спискахbrowse_folder/list_files.delete_file—deviceId(обязательно),paths(обязательно, массив из одного или нескольких путей в формате EVS — отправляется как повторяющиеся поляpв одном пакетном вызове),permanent(необязательно, по умолчаниюfalse). Удаляет файл(ы)/папку(и) из живой резервной копии устройства через конечную точкуevs/v1/deleteFile, размещенную на EVS.permanent: false(по умолчанию) перемещает путь(и) в корзину — подтверждено вживую и восстанавливается с помощьюrestore_from_trash.permanent: trueотправляетtrash=no, предположительно (судя по имени/шаблону поля) означает постоянное, невосстановимое удаление, но это никогда не было независимо подтверждено вживую — считайте это непроверенным, прежде чем полагаться на это.restore_from_trash—deviceId(обязательно),paths(обязательно, массив из одного или нескольких путей в формате EVS, та же пакетная передача с повторяющимисяp, что иdelete_file). Восстанавливает ранее перемещенные в корзину файл(ы)/папку(и) в их исходное расположение через конечную точкуevs/putBackFromTrash, размещенную на EVS. Подтверждено вживую. Нет подтвержденного способа перечислить, что в данный момент находится в корзине, поэтомуpathsдолжны быть уже известны.
Все инструменты, размещенные на EVS (browse_folder, get_thumbnail, download_file, get_file_properties, get_file_versions, list_devices, create_folder, delete_file, restore_from_trash), прозрачно инициализируют и кэшируют сеанс EVSID, который требуется спутниковому хосту EVS (см. раздел «EVSID: как на самом деле устанавливается сеанс EVS» в docs/api-map.md) — дополнительная настройка не требуется, кроме IDRIVE_COOKIE, но им нужно значение EVS_SERVER из cookie (присутствует в cookie, скопированных с /idrive/home, не обязательно в тех, что скопированы с консоли idriveent), чтобы знать, к какому хосту EVS выполнять начальную настройку.
Тестирование
npm test запускает модульные тесты безоговорочно, плюс набор живых интеграционных тестов, которые ограничены переменными окружения и чисто пропускаются, когда они не заданы:
IDRIVE_COOKIE— требуется для запуска любого интеграционного теста.IDRIVE_TEST_DEVICE_ID— реальныйdevice_id(изlist_devices), необходимый большинству интеграционных тестов.IDRIVE_TEST_EVS_PATH— реальный путь в формате EVS (например,/C), под которым большинство интеграционных тестов просматривают/читают.IDRIVE_TEST_ALLOW_MUTATIONS=1— отдельное явное согласие, требуемое, помимо трех указанных выше переменных, перед запуском интеграционного тестаcreate_folder/delete_file/restore_from_trashвsrc/tools/files.test.ts. Этот тест изменяет реальную учетную запись: он создает уникально именованную временную папку вIDRIVE_TEST_EVS_PATH(поэтому повторные запуски никогда не конфликтуют), проверяет все три инструмента на ней и очищает, перемещая ее в корзину до завершения теста — даже если утверждение не сработает на полпути (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/ (см. «Доступные инструменты» выше).
This server cannot be installed
Maintenance
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
- AlicenseNot gradedqualityNot gradedmaintenanceEnables comprehensive Google Drive integration through MCP, supporting file management, content operations, permission handling, commenting, version control, and shared drive management through natural language interactions.
- AlicenseNot gradedqualityAmaintenanceEnables management of Google Drive files, Docs, Sheets, Slides, and Calendar events through natural language using the MCP protocol.12,825207MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to interact with Google Drive, supporting file operations like list, search, read, create, update, delete, share, and manage permissions.74654MIT
- AlicenseNot gradedqualityDmaintenanceEnables management of Google Drive files, Docs, Sheets, and Slides through natural language using MCP, with support for file operations, search, and shared drives.13MIT
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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