MCP File Organizer
MCP File Organizer — demo para el artículo del blog técnico "MCP in Practice"
Una demo que ilustra MCP mediante el caso de uso "Asistente de organización de archivos con IA": un servidor MCP que expone 2 herramientas de gestión de archivos (list_files, move_file — sin read_file; el servidor nunca lee el contenido de los archivos, solo el nombre, la extensión y la fecha de modificación), y un cliente/agente MCP que usa Gemini (a través de @google/genai, con soporte MCP integrado mediante mcpToTool) para decidir qué herramienta llamar según la solicitud en lenguaje natural del usuario. folder es cualquier ruta absoluta de la máquina (no se limita a storage/inbox de la demo — puede apuntar a una carpeta real como Downloads), y los resultados siempre van a parar a <folder>/organized/<extension>/<year>/<month>/<day>/. El conjunto de datos de la demo son 500 archivos simulados acumulados durante 365 días, reorganizados por extensión y luego por año/mes/día de la última modificación.
Configuración
npm installRelated MCP server: Organizer MCP Server
Generación de datos simulados
npm run generate-mock # generates 500 mock files into storage/inbox, with mtimes spread across the last 365 daysVuelve a ejecutar este comando en cualquier momento para generar un conjunto de datos nuevo.
Ejecución del agente real (requiere una clave de API de Gemini)
client/client.ts es el agente real: expone el cliente MCP a Gemini mediante mcpToTool, lo que permite que Gemini decida por sí mismo qué herramienta llamar y con qué argumentos (llamada automática a funciones), sin reglas codificadas. Lee la clave de GEMINI_API_KEY, o GOOGLE_API_KEY, o API_KEY (en ese orden de prioridad); lee el modelo de MODEL si el valor empieza por gemini-; de lo contrario, recurre al valor predeterminado gemini-2.5-flash.
# PowerShell
$env:GEMINI_API_KEY = "AIza..."
npm run agent# bash
export GEMINI_API_KEY="AIza..."
npm run agentEstas variables también se pueden definir en un archivo .env en el directorio del proyecto; npm run agent carga .env automáticamente si existe (usando la opción --env-file-if-exists de Node).
Para probarlo en una carpeta real en lugar de storage/inbox, pasa una ruta absoluta como argumento, p. ej. npm run agent -- "C:\Users\you\Downloads".
Seguridad al usar datos reales
server.ts ya protege contra varios casos antes de tocar el sistema de archivos:
folderdebe ser una ruta absoluta: una ruta relativa se rechaza de inmediato, nunca se resuelve en silencio contra el directorio de trabajo del proceso del servidor.namedebe ser un nombre de archivo simple (sin/,\ni..): bloquea el acceso fuera defolder.to_folderse resuelve y luego se vuelve a comprobar para garantizar que permanezca dentro de<folder>/organized/: bloquea el acceso fuera mediante...move_filese niega si el destino ya existe (nunca sobrescribe en silencio); pasadry_run: truepara previsualizar lo que se movería sin tocar archivos reales.Define la variable de entorno
ALLOWED_ROOTS(una lista de rutas absolutas, delimitadas por;en Windows o:en Unix, siguiendopath.delimiter) para restringirfoldersolo a esas raíces. Si no está definida, la demo conserva su comportamiento original: acepta cualquier carpeta absoluta, lo cual está bien para fines de demostración, peroALLOWED_ROOTSdebería definirse al apuntar a datos reales.
Estructura
server/server.ts MCP Server: list_files, move_file — folder is any absolute path, never reads file contents
client/generate-mock-inbox.ts Generates 500 mock files into storage/inbox
client/client.ts MCP Client + Agent, using Gemini via @google/genai
storage/ Generated by running generate-mock, not committed to the repoThis server cannot be deployed
Maintenance
Related MCP Connectors
Safe folder access for ChatGPT and Claude: read, write and search files, risky tools opt-in.
Find, read and reorganize files across Google Drive, OneDrive, SharePoint and Dropbox, with undo.
1Use your Mac, Windows or Linux computer from ChatGPT, Claude or Codex: files, commands, documents.
Markdown notes in folders, with files, that your AI assistant can read, write and organise.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to organize and manage Windows file systems with intelligent file analysis, automated grouping, renaming with date prefixes, and safe operations through dry-run mode and sandbox restrictions.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude to intelligently organize files by scanning folders, detecting duplicates, suggesting meaningful names, and moving files into logical folders.MIT
- AlicenseNot gradedqualityDmaintenanceEnables file operations such as counting, listing, compressing images, creating/extracting archives, copying/moving files, and merging/splitting PDFs via natural language.5MIT
- FlicenseNot gradedqualityDmaintenanceLets AI assistants analyze and organize local directories by file type, with dry-run support and safe sorting.-