idrive-mcp-server
idrive-mcp-server
Un servidor MCP (Model Context Protocol) que expone la consola web de copia de seguridad/restauración de iDrive como herramientas para un asistente de IA compatible con MCP (por ejemplo, Claude Desktop o Claude Code). Se comunica con la API web interna no documentada de iDrive — los mismos endpoints que llama la propia consola de idrive.com — usando una cookie de sesión copiada de un navegador con sesión iniciada, ya que iDrive no ofrece una API pública ni un flujo OAuth para esta consola. Consulta docs/api-map.md para la referencia de endpoints de ingeniería inversa en la que se basa este servidor.
Obtención de IDRIVE_COOKIE
Inicia sesión en idrive.com en tu navegador.
Abre DevTools -> pestaña Network.
Haz clic en cualquier solicitud XHR realizada a
www.idrive.com.Copia el valor completo del encabezado
Cookiede esa solicitud.Colócalo en un archivo
.env(copia.env.example) comoIDRIVE_COOKIE=<valor>.
Esta cookie contiene un token de sesión (SES_TOKEN, un JWT) que caduca aproximadamente después de 24 horas — cuando caduca, las llamadas a las herramientas fallarán con un error claro de "renueva tu sesión" y tendrás que repetir los pasos anteriores.
Related MCP server: Google Drive MCP Server
Configuración en Claude Code / Claude Desktop
Añade una entrada a tu configuración de MCP (.mcp.json para Claude Code, o claude_desktop_config.json para Claude Desktop):
{
"mcpServers": {
"idrive": {
"command": "npx",
"args": ["tsx", "src/index.ts"],
"cwd": "/absolute/path/to/idrive-mcp-server",
"env": {
"IDRIVE_COOKIE": "<your cookie value>"
}
}
}
}O, después de ejecutar npm run build, apunta command/args a la salida compilada en su lugar:
{
"mcpServers": {
"idrive": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/absolute/path/to/idrive-mcp-server",
"env": {
"IDRIVE_COOKIE": "<your cookie value>"
}
}
}
}Herramientas disponibles
list_devices— sin entrada. Lista todos los dispositivos respaldados en la cuenta de iDrive autenticada (ID del dispositivo, SO, apodo, dirección IP y ubicación del bucket de respaldo), a través del endpointevs/listDevicesalojado en EVS. No requiere más configuración queIDRIVE_COOKIE.list_files—deviceId(obligatorio),path(por defecto"/"),osType(por defecto"win"). Navega por el árbol de archivos respaldados de un dispositivo a través del endpointgetRestoreDatade iDrive.browse_folder—deviceId(obligatorio),path(obligatorio, formato EVS:"/C","/C/Users/..."). Navega por la carpeta respaldada de un dispositivo a través del endpointevs/browseFolderalojado en EVS, más completo (añade campos de papelera/checksum/imagen en vivo más allá delist_files). Usalist_filesprimero para descubrir las letras de unidad/raíces disponibles de un dispositivo, ya que nunca se ha observado queevs/browseFoldermaneje una ruta raíz desnuda.get_thumbnail—deviceId(obligatorio),path(obligatorio, mismo formato EVS quebrowse_folder),timestamp(obligatorio — el valorlmd_webdel archivo de una llamada previa alist_files/browse_folder). Obtiene una imagen de vista previa en miniatura para un archivo respaldado a través del endpointevs/getThumbnailalojado en EVS, devuelta como contenido de imagen MCP.download_file—deviceId(obligatorio),path(obligatorio, mismo formato EVS quebrowse_folder). Descarga el contenido real de un archivo respaldado a través del endpointevs/downloadFilealojado en EVS, devuelto como contenido de recurso MCP codificado en base64. ElContent-Typede iDrive en este endpoint no es fiable para identificar el tipo de archivo real — infiérelo a partir del nombre/extensión del archivo en su lugar.get_file_properties—deviceId(obligatorio),path(obligatorio, mismo formato EVS quebrowse_folder). Obtiene metadatos de tamaño/última modificación para un único archivo o carpeta respaldado a través del endpointevs/getPropertiesalojado en EVS.get_file_versions—deviceId(obligatorio),path(obligatorio, mismo formato EVS quebrowse_folder). Lista versiones respaldadas anteriores de un archivo a través del endpointevs/getVersionsalojado en EVS. Solo se ha confirmado la forma de respuesta de "sin historial de versiones" hasta ahora — un archivo sin versiones anteriores se informa como un resultado normal (hasVersions: false), no como un error de herramienta; la forma de una lista de versiones real no está confirmada y se devuelve como JSON sin procesar.get_account_usage— sin entrada. Devuelve la cuota de almacenamiento de Sync usada/total de la cuenta como cadenas sin procesar (por ejemplo,"0.00 KB","5000.00 GB"), extraída de dos variables<script>en línea en la páginaaccount.htmlde iDrive — no hay un endpoint JSON de uso dedicado. Frágil por naturaleza (un raspado de HTML, no una API estable) y refleja específicamente la nomenclatura de cuota "Sync" de la propia página; si también representa el uso total en las copias de seguridad de dispositivos no está confirmado.
Herramientas de mutación
Las herramientas siguientes cambian datos reales respaldados en la cuenta, a diferencia de todas las herramientas anteriores (todas de solo lectura). Sus descripciones y annotations de MCP lo dicen explícitamente (readOnlyHint: false, y destructiveHint: true para delete_file).
create_folder—deviceId(obligatorio),parentPath(obligatorio, formato EVS, debe ser una carpeta existente),folderName(obligatorio — solo el nombre de la nueva carpeta, no una ruta). Crea una nueva carpeta dentro de la copia de seguridad en vivo de un dispositivo a través del endpointevs/createFolderalojado en EVS. Confirmado en vivo: la nueva carpeta aparece en los listados posteriores debrowse_folder/list_files.delete_file—deviceId(obligatorio),paths(obligatorio, matriz de una o más rutas en formato EVS — enviadas como camposprepetidos en una sola llamada por lotes),permanent(opcional, por defectofalse). Elimina archivo(s)/carpeta(s) de la copia de seguridad en vivo de un dispositivo a través del endpointevs/v1/deleteFilealojado en EVS.permanent: false(por defecto) mueve la(s) ruta(s) a la papelera — confirmado en vivo, y recuperable conrestore_from_trash.permanent: trueenvíatrash=no, presumiblemente (por el nombre/patrón del campo) significa una eliminación permanente, no recuperable, pero esto nunca se ha confirmado de forma independiente en vivo — trátalo como no verificado antes de confiar en ello.restore_from_trash—deviceId(obligatorio),paths(obligatorio, matriz de una o más rutas en formato EVS, mismo agrupamiento deprepetido quedelete_file). Restaura archivo(s)/carpeta(s) previamente enviados a la papelera a su ubicación original a través del endpointevs/putBackFromTrashalojado en EVS. Confirmado en vivo. No hay una forma confirmada de enumerar lo que hay actualmente en la papelera, por lo quepathsya debe ser conocido.
Todas las herramientas alojadas en EVS (browse_folder, get_thumbnail, download_file, get_file_properties, get_file_versions, list_devices, create_folder, delete_file, restore_from_trash) arrancan y almacenan en caché de forma transparente la sesión EVSID que requiere el host satélite EVS (consulta la sección "EVSID: cómo se establece realmente la sesión EVS" de docs/api-map.md) — no se necesita configuración adicional más allá de IDRIVE_COOKIE, pero sí requieren el valor EVS_SERVER de la cookie (presente en las cookies copiadas de /idrive/home, no necesariamente en las copiadas de la consola idriveent) para saber contra qué host EVS arrancar.
Pruebas
npm test ejecuta las pruebas unitarias incondicionalmente, más un conjunto de pruebas de integración en vivo que están controladas por variables de entorno y se omiten limpiamente cuando no están configuradas:
IDRIVE_COOKIE— requerida para que cualquier prueba de integración se ejecute.IDRIVE_TEST_DEVICE_ID— undevice_idreal (delist_devices) que la mayoría de las pruebas de integración necesitan.IDRIVE_TEST_EVS_PATH— una ruta real en formato EVS (por ejemplo,/C) bajo la que la mayoría de las pruebas de integración navegan/leen.IDRIVE_TEST_ALLOW_MUTATIONS=1— una aceptación explícita y separada requerida, además de las tres variables anteriores, antes de que la prueba de integración decreate_folder/delete_file/restore_from_trashensrc/tools/files.test.tsse ejecute. Esa prueba muta una cuenta real: crea una carpeta desechable con nombre único bajoIDRIVE_TEST_EVS_PATH(para que las ejecuciones repetidas nunca colisionen), ejercita las tres herramientas contra ella y limpia moviéndola a la papelera antes de que termine la prueba — incluso si una aserción falla a mitad de camino (try/finally). Sin esta variable configurada exactamente como"1", esa prueba se omite, por lo que un desarrollador que solo haya configuradoIDRIVE_COOKIE/IDRIVE_TEST_DEVICE_ID/IDRIVE_TEST_EVS_PATHpara pruebas de solo lectura puede ejecutarnpm testsin riesgo de que toque datos reales.
La prueba de integración de get_account_usage es de solo lectura y solo necesita IDRIVE_COOKIE, igual que las otras herramientas de cuenta.
Estado
La carga de configuración, la detección de expiración de sesión y el cliente HTTP compartido (src/client/idriveClient.ts) están en su lugar; las herramientas MCP se están añadiendo de forma incremental bajo src/tools/ (consulta "Herramientas disponibles" arriba).
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