Desktop Commander MCP
Ejecuta comandos de terminal, edita archivos y gestiona flujos de trabajo locales de escritorio a través de clientes MCP como Claude, Cursor y VS Code.
Documentación
Desktop Commander MCP
Busca, actualiza, gestiona archivos y ejecuta comandos de terminal con IA
Trabaja con código y texto, ejecuta procesos y automatiza tareas, yendo mucho más allá de otros editores de IA, mientras usas las suscripciones del cliente anfitrión en lugar de costos de tokens de API.
🖥️ Prueba la App Desktop Commander (Beta)
¿Quieres una mejor experiencia? La App Desktop Commander te brinda todo lo que ofrece el servidor MCP, además de:
- Usa cualquier modelo de IA — Claude, GPT-4.5, Gemini 2.5, o cualquier modelo que prefieras
- Ve los cambios de archivos en vivo — vistas previas visuales de archivos mientras la IA edita tus archivos
- Agrega MCPs y contexto personalizados — amplía con tus propias herramientas, sin archivos de configuración
- Próximamente — sistema de habilidades, dictado, tareas programadas en segundo plano y más
👉 Descarga la App (macOS y Windows)
El servidor MCP a continuación sigue funcionando muy bien con Claude Desktop y otros clientes MCP — la app es para quienes desean una experiencia dedicada y pulida.
Tabla de Contenidos
- Características
- Cómo instalar
- Primeros Pasos
- Uso
- Interfaz de Vista Previa de Archivos y Editor Markdown
- Manejo de Comandos de Larga Duración
- Trabajo en Progreso y TODOs
- Patrocinadores y Colaboradores
- Sitio Web
- Medios
- Testimonios
- Preguntas Frecuentes
- Contribuciones
- Licencia
Todas tus herramientas de desarrollo de IA en un solo lugar. Desktop Commander pone todas las herramientas de desarrollo en un solo chat. Ejecuta comandos de terminal de larga duración en tu computadora y gestiona procesos a través del Protocolo de Contexto de Modelo (MCP). Construido sobre Servidor de Archivos MCP para proporcionar capacidades adicionales de búsqueda y reemplazo en la edición de archivos.
Características
- Control Remoto de IA - Usa Desktop Commander desde ChatGPT, Claude web y otros servicios de IA a través de MCP Remoto
- Interfaz de Vista Previa de Archivos - Vistas previas visuales de archivos en Claude Desktop con markdown renderizado, imágenes en línea, contenido expandible, editor de markdown integrado y acceso rápido "Abrir en carpeta"
- Comandos de terminal mejorados con control interactivo de procesos
- Ejecuta código en memoria (Python, Node.js, R) sin guardar archivos
- Análisis de datos instantáneo - solo pide analizar archivos CSV/JSON/Excel
- Soporte nativo de archivos Excel - Lee, escribe, edita y busca archivos Excel (.xlsx, .xls, .xlsm) sin herramientas externas
- Soporte PDF - Lee PDFs con extracción de texto, crea nuevos PDFs desde markdown, modifica PDFs existentes
- Soporte DOCX - Lee, crea, edita y busca documentos de Word (.docx) con edición XML quirúrgica y conversión de markdown a DOCX
- Interactúa con procesos en ejecución (SSH, bases de datos, servidores de desarrollo)
- Ejecuta comandos de terminal con transmisión de salida
- Soporte de tiempo de espera de comandos y ejecución en segundo plano
- Gestión de procesos (listar y matar procesos)
- Gestión de sesiones para comandos de larga duración
- Paginación de salida de procesos - Lee la salida de terminal con controles de desplazamiento/longitud para evitar el desbordamiento de contexto
- Gestión de configuración del servidor:
- Obtener/establecer valores de configuración
- Actualizar múltiples ajustes a la vez
- Cambios dinámicos de configuración sin reiniciar el servidor
- Operaciones completas del sistema de archivos:
- Leer/escribir archivos (texto, Excel, PDF, DOCX)
- Crear/listar directorios
- Listado recursivo de directorios con profundidad configurable y protección contra desbordamiento de contexto para carpetas grandes
- Mover archivos/directorios
- Buscar archivos y contenido (incluido contenido de Excel)
- Obtener metadatos de archivos
- Lectura de archivos con desplazamiento negativo: Lee desde el final de los archivos usando valores de desplazamiento negativos (como Unix tail)
- Capacidades de edición de código:
- Reemplazos de texto quirúrgicos para cambios pequeños
- Reescrituras completas de archivos para cambios importantes
- Soporte de múltiples archivos
- Reemplazos basados en patrones
- Búsqueda recursiva de código o texto en carpetas basada en vscode-ripgrep
- Historial local de llamadas de herramientas y registros de auditoría:
- Las llamadas de herramientas y argumentos se registran localmente en la máquina que ejecuta Desktop Commander
- El historial reciente de llamadas con vistas previas limitadas de salida está disponible a través de
get_recent_tool_calls - La rotación/recorte basado en tamaño mantiene los archivos de historial activos limitados
- Salvaguardas de seguridad (no es un sandbox — consulta SECURITY.md):
- Prevención de recorrido de enlaces simbólicos en operaciones de archivos
- Lista de bloqueo de comandos para ejecución accidental
- Aislamiento Docker para aislamiento completo
Cómo instalar
Instalar en Claude Desktop
Desktop Commander ofrece múltiples métodos de instalación para Claude Desktop.
📋 Información de Actualización y Desinstalación: Las opciones 1, 2, 3, 4 y 6 tienen actualizaciones automáticas. La opción 5 requiere actualizaciones manuales. Consulta los detalles a continuación.
Opción 1: Instalar mediante npx ⭐ Actualizaciones Automáticas (Requiere Node.js)
Solo ejecuta esto en la terminal:
npx @wonderwhy-er/desktop-commander@latest setup
Para modo de depuración (permite la conexión del inspector de Node.js):
npx @wonderwhy-er/desktop-commander@latest setup --debug
Opciones de línea de comandos durante la configuración:
--debug: Habilita el modo de depuración para el inspector de Node.js--no-onboarding: Desactiva los avisos de incorporación para nuevos usuarios
Reinicia Claude si está en ejecución.
✅ Actualizaciones Automáticas: Sí - se actualiza automáticamente cuando reinicias Claude
🔄 Actualización Manual: Ejecuta el comando de configuración nuevamente
🗑️ Desinstalar: Ejecuta npx @wonderwhy-er/desktop-commander@latest remove
Opción 2: Usando el instalador de script bash (macOS) ⭐ Actualizaciones Automáticas (Instala Node.js si es necesario)
curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install.sh | bash
Este script maneja todas las dependencias y configuración automáticamente.
✅ Actualizaciones Automáticas: Sí
🔄 Actualización Manual: Vuelve a ejecutar el comando del instalador bash anterior
🗑️ Desinstalar: Ejecuta npx @wonderwhy-er/desktop-commander@latest remove
Opción 3: Instalación mediante Smithery ⭐ Actualizaciones Automáticas (Requiere Node.js)
- Visita: https://smithery.ai/server/@wonderwhy-er/desktop-commander
- Inicia sesión en Smithery si aún no lo has hecho
- Selecciona tu cliente (Claude Desktop) en el lado derecho
- Instala con la clave proporcionada que aparece después de seleccionar tu cliente
- Reinicia Claude Desktop
✅ Actualizaciones Automáticas: Sí - se actualiza automáticamente cuando reinicias Claude
🔄 Actualización Manual: Visita la página de Smithery y reinstala
Opción 4: Agregar a claude_desktop_config manualmente ⭐ Actualizaciones Automáticas (Requiere Node.js)
Agrega esta entrada a tu claude_desktop_config.json:
- En Mac:
~/Library/Application Support/Claude/claude_desktop_config.json - En Windows:
%APPDATA%\Claude\claude_desktop_config.json - En Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"desktop-commander": {
"command": "npx",
"args": [
"-y",
"@wonderwhy-er/desktop-commander@latest"
]
}
}
}
Reinicia Claude si está en ejecución.
✅ Actualizaciones Automáticas: Sí - se actualiza automáticamente cuando reinicias Claude
🔄 Actualización Manual: Ejecuta el comando de configuración nuevamente
🗑️ Desinstalar: Ejecuta npx @wonderwhy-er/desktop-commander@latest remove o elimina la entrada de tu claude_desktop_config.json
Opción 5: Clonar localmente ❌ Actualizaciones Manuales (Requiere Node.js)
git clone https://github.com/wonderwhy-er/DesktopCommanderMCP.git
cd DesktopCommanderMCP
npm run setup
Reinicia Claude si está en ejecución.
El comando de configuración instalará dependencias, compilará el servidor y configurará la aplicación de escritorio de Claude.
❌ Actualizaciones Automáticas: No - requiere actualizaciones manuales de git
🔄 Actualización Manual: cd DesktopCommanderMCP && git pull && npm run setup
🗑️ Desinstalar: Ejecuta npx @wonderwhy-er/desktop-commander@latest remove o elimina el directorio clonado y la entrada del servidor MCP de la configuración de Claude
Opción 6: Instalación Docker 🐳 ⭐ Actualizaciones Automáticas (No Requiere Node.js)
Perfecto para usuarios que quieren aislamiento o no tienen Node.js instalado. Se ejecuta en un contenedor Docker en sandbox con un entorno de trabajo persistente.
Requisitos previos: Docker Desktop instalado y en ejecución, aplicación Claude Desktop instalada.
macOS/Linux:
bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh)
Windows PowerShell:
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.ps1'))
El instalador verificará Docker, descargará la imagen, solicitará el montaje de carpetas y configurará Claude Desktop.
Persistencia de Docker: Tus herramientas, configuraciones, archivos de trabajo y cachés de paquetes sobreviven a los reinicios.
Configuración Manual de Docker
Configuración básica (sin acceso a archivos):
{
"mcpServers": {
"desktop-commander-in-docker": {
"command": "docker",
"args": ["run", "-i", "--rm", "mcp/desktop-commander:latest"]
}
}
}
Con montaje de carpetas:
{
"mcpServers": {
"desktop-commander-in-docker": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "/Users/username/Desktop:/mnt/desktop",
"-v", "/Users/username/Documents:/mnt/documents",
"mcp/desktop-commander:latest"
]
}
}
}
Montaje avanzado de carpetas:
{
"mcpServers": {
"desktop-commander-in-docker": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "dc-system:/usr",
"-v", "dc-home:/root",
"-v", "dc-workspace:/workspace",
"-v", "dc-packages:/var",
"-v", "/Users/username/Projects:/mnt/Projects",
"-v", "/Users/username/Downloads:/mnt/Downloads",
"mcp/desktop-commander:latest"
]
}
}
}
Comandos de Gestión de Docker
macOS/Linux:
# Check status
bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh) --status
# Reset all persistent data
bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh) --reset
Windows PowerShell:
# Check status
$script = (New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.ps1'); & ([ScriptBlock]::Create("$script")) -Status
# Reset all data
$script = (New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.ps1'); & ([ScriptBlock]::Create("$script")) -Reset
# Show help
$script = (New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.ps1'); & ([ScriptBlock]::Create("$script")) -Help
Solución de problemas: Restablecer y reinstalar desde cero:
bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh) --reset && bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh)
✅ Actualizaciones Automáticas: Sí - la etiqueta latest obtiene automáticamente versiones más nuevas
🔄 Actualización Manual: docker pull mcp/desktop-commander:latest y luego reinicia Claude
Instalar en Otros Clientes
Desktop Commander funciona con cualquier cliente compatible con MCP. La configuración JSON estándar es:
{
"mcpServers": {
"desktop-commander": {
"command": "npx",
"args": ["-y", "@wonderwhy-er/desktop-commander@latest"]
}
}
}
Agrega esto al archivo de configuración MCP de tu cliente en las ubicaciones a continuación:
Cursor
Ver Servidor MCP en el Directorio
O agrégalo manualmente a ~/.cursor/mcp.json (global) o .cursor/mcp.json en tu carpeta de proyecto (específico del proyecto).
Consulta documentación de MCP de Cursor para más información.
Windsurf
Agrégalo a ~/.codeium/windsurf/mcp_config.json. Consulta documentación de MCP de Windsurf para más información.
VS Code / GitHub Copilot
Agrégalo a .vscode/mcp.json en tu proyecto o en la Configuración de Usuario de VS Code (JSON). Asegúrate de que MCP esté habilitado en Chat > MCP. Funciona en modo Agente.
Consulta documentación de MCP de VS Code para más información.
Cline
Configúralo a través de la configuración de la extensión Cline en VS Code. Abre la barra lateral de Cline, haz clic en el ícono de Servidores MCP y agrega la configuración JSON anterior. Consulta documentación de MCP de Cline para más información.
Roo Code
Agrégalo a tu archivo de configuración MCP de Roo Code. Consulta documentación de MCP de Roo Code para más información.
Claude Code
claude mcp add --scope user desktop-commander -- npx -y @wonderwhy-er/desktop-commander@latest
Elimina --scope user para instalar solo para el proyecto actual. Consulta documentación de MCP de Claude Code para más información.
Trae
Usa la función "Agregar manualmente" y pega la configuración JSON anterior. Consulta documentación de MCP de Trae para más información.
Kiro
Navega a Kiro > MCP Servers, haz clic en + Add y pega la configuración JSON anterior. Consulta documentación de MCP de Kiro para más información.
Codex (OpenAI)
Codex usa configuración TOML. Ejecuta este comando para agregar Desktop Commander:
codex mcp add desktop-commander -- npx -y @wonderwhy-er/desktop-commander@latest
O agrégalo manualmente a ~/.codex/config.toml:
[mcp_servers.desktop-commander]
command = "npx"
args = ["-y", "@wonderwhy-er/desktop-commander@latest"]
Consulta documentación de MCP de Codex para más información.
JetBrains (AI Assistant)
En los IDE de JetBrains, ve a Settings → Tools → AI Assistant → Model Context Protocol (MCP), haz clic en + Add, selecciona As JSON y pega la configuración JSON anterior. Consulta JetBrains MCP docs para más información.
Gemini CLI
Añade a ~/.gemini/settings.json:
{
"mcpServers": {
"desktop-commander": {
"command": "npx",
"args": ["-y", "@wonderwhy-er/desktop-commander@latest"]
}
}
}
Consulta Gemini CLI docs para más información.
Augment Code
Pulsa Cmd/Ctrl+Shift+P, abre el panel de Augment y añade un nuevo servidor MCP llamado desktop-commander con la configuración JSON anterior. Consulta Augment Code MCP docs para más información.
Qwen Code
Ejecuta este comando para añadir Desktop Commander:
qwen mcp add desktop-commander -- npx -y @wonderwhy-er/desktop-commander@latest
O añádelo a .qwen/settings.json (proyecto) o ~/.qwen/settings.json (global). Consulta Qwen Code MCP docs para más información.
ChatGPT / Claude Web (Remote MCP)
Usa Desktop Commander desde ChatGPT, Claude web y otros servicios de IA mediante Remote MCP — no se requiere aplicación de escritorio.
👉 Empieza en mcp.desktopcommander.app
Cómo funciona:
- Ejecutas un Remote Device ligero en tu ordenador
- Se conecta de forma segura al servicio cloud Remote MCP
- Tu IA envía comandos a través de la nube hasta tu dispositivo
- Los comandos se ejecutan localmente y los resultados vuelven a tu IA
- Tú mantienes el control — deténlo en cualquier momento con
Ctrl+C
Seguridad
- ✅ El dispositivo solo se ejecuta cuando lo inicias
- ✅ Los comandos se ejecutan con tus permisos de usuario
- ✅ Autenticación OAuth segura y canal de comunicación cifrado
Actualizar y desinstalar Desktop Commander
Actualizaciones automáticas (Opciones 1, 2, 3, 4 y 6)
Las opciones 1 (npx), 2 (instalador bash), 3 (Smithery), 4 (configuración manual) y 6 (Docker) se actualizan automáticamente a la última versión cada vez que reinicias Claude. No se necesita intervención manual.
Actualizaciones manuales (Opción 5)
- Opción 5 (checkout local):
cd DesktopCommanderMCP && git pull && npm run setup
Desinstalar Desktop Commander
🤖 Desinstalación automática (recomendada)
La forma más sencilla de eliminar por completo Desktop Commander:
npx @wonderwhy-er/desktop-commander@latest remove
Este desinstalador automático:
- ✅ Elimina Desktop Commander de la configuración del servidor MCP de Claude
- ✅ Crea una copia de seguridad de tu configuración de Claude antes de hacer cambios
- ✅ Proporciona orientación para la eliminación completa del paquete
- ✅ Restaura desde la copia de seguridad si algo sale mal
🔧 Desinstalación manual
Si el desinstalador automático no funciona o prefieres la eliminación manual:
Eliminar de la configuración de Claude
- Localiza tu archivo de configuración de Claude Desktop:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
- Edita el archivo de configuración:
- Abre el archivo en un editor de texto
- Busca y elimina la entrada
"desktop-commander"de la sección"mcpServers" - Guarda el archivo
Ejemplo: elimina esta sección:
{
"desktop-commander": {
"command": "npx",
"args": ["@wonderwhy-er/desktop-commander@latest"]
}
}
Cierra y reinicia Claude Desktop para completar la eliminación.
🆘 Solución de problemas
Si falla la desinstalación automática:
- Usa la desinstalación manual como alternativa
Si Claude no se inicia después de desinstalar:
- Restaura el archivo de configuración de respaldo creado por el desinstalador
- O corrige manualmente la sintaxis JSON en tu claude_desktop_config.json
¿Necesitas ayuda?
- Únete a nuestra comunidad de Discord: https://discord.com/invite/kQ27sNnZr7
Primeros pasos
Una vez que Desktop Commander esté instalado y Claude Desktop se haya reiniciado, ¡estás listo para potenciar tu experiencia con Claude!
🚀 Incorporación de nuevos usuarios
Desktop Commander incluye una incorporación inteligente para ayudarte a descubrir lo que es posible:
Para nuevos usuarios: Cuando apenas estás comenzando (menos de 10 comandos exitosos), Claude ofrecerá automáticamente guías útiles de inicio y tutoriales prácticos después de que uses Desktop Commander con éxito.
Solicita ayuda en cualquier momento: Puedes pedir asistencia de incorporación en cualquier momento simplemente diciendo:
- "Ayúdame a empezar con Desktop Commander"
- "Muéstrame ejemplos de Desktop Commander"
- "¿Qué puedo hacer con Desktop Commander?"
Claude te mostrará tutoriales y ejemplos aptos para principiantes, incluyendo:
- 📁 Organizar tu carpeta de Descargas automáticamente
- 📊 Analizar archivos CSV/Excel con Python
- ⚙️ Configurar GitHub Actions CI/CD
- 🔍 Explorar y comprender bases de código
- 🤖 Ejecutar entornos de desarrollo interactivos
Uso
El servidor proporciona un conjunto completo de herramientas organizadas en varias categorías:
Herramientas disponibles
| Categoría | Herramienta | Descripción |
|---|---|---|
| Configuración | get_config | Obtén la configuración completa del servidor como JSON (incluye blockedCommands, defaultShell, allowedDirectories, fileReadLineLimit, fileWriteLineLimit, telemetryEnabled) |
set_config_value | Establece un valor de configuración específico por clave. Configuraciones disponibles: • blockedCommands: Matriz de comandos de shell que no se pueden ejecutar• defaultShell: Shell a usar para comandos (p. ej., bash, zsh, powershell)• allowedDirectories: Matriz de rutas del sistema de archivos a las que el servidor puede acceder para operaciones de archivos (⚠️ los comandos de terminal aún pueden acceder a archivos fuera de estos directorios)• fileReadLineLimit: Máximo de líneas para leer a la vez (predeterminado: 1000)• fileWriteLineLimit: Máximo de líneas para escribir a la vez (predeterminado: 50)• telemetryEnabled: Habilitar/deshabilitar telemetría (booleano) | |
| Terminal | start_process | Inicia programas con detección inteligente de cuándo están listos para recibir entrada |
interact_with_process | Envía comandos a programas en ejecución y obtén respuestas | |
read_process_output | Lee la salida de procesos en ejecución | |
force_terminate | Termina forzosamente una sesión de terminal activa | |
list_sessions | Lista todas las sesiones de terminal activas | |
list_processes | Lista todos los procesos en ejecución con información detallada | |
kill_process | Termina un proceso en ejecución por PID | |
| Sistema de archivos | read_file | Lee contenido del sistema de archivos local, URLs, archivos de Excel (.xlsx, .xls, .xlsm) y PDFs con paginación basada en líneas/páginas |
read_multiple_files | Lee múltiples archivos simultáneamente | |
write_file | Escribe contenido de archivos con opciones de modo reescritura o anexado. Admite archivos de Excel (formato de matriz 2D JSON). Para PDFs, usa write_pdf | |
write_pdf | Crea nuevos archivos PDF desde markdown o modifica PDFs existentes (insertar/eliminar páginas). Admite estilos HTML/CSS y gráficos SVG | |
create_directory | Crea un nuevo directorio o asegura que exista | |
list_directory | Obtén un listado recursivo detallado de archivos y directorios (admite parámetro de profundidad, profundidad predeterminada=2) | |
move_file | Mueve o renombra archivos y directorios | |
start_search | Inicia búsqueda en streaming de archivos por nombre o patrones de contenido (busca archivos de texto y contenido de Excel) | |
get_more_search_results | Obtén resultados paginados de una búsqueda activa con soporte de desplazamiento | |
stop_search | Detén una búsqueda activa de forma ordenada | |
list_searches | Lista todas las sesiones de búsqueda activas | |
get_file_info | Recupera metadatos detallados sobre un archivo o directorio (incluye información de hojas para archivos de Excel) | |
| Edición de texto | edit_block | Aplica reemplazos de texto específicos para archivos de texto, o actualizaciones de celdas basadas en rangos para archivos de Excel |
| Analítica | get_usage_stats | Obtén estadísticas de uso para tu propio conocimiento |
get_recent_tool_calls | Obtén el historial reciente de llamadas a herramientas con argumentos y salidas para depuración y recuperación de contexto | |
give_feedback_to_desktop_commander | Abre el formulario de comentarios en el navegador para proporcionar retroalimentación al equipo de Desktop Commander |
Ejemplos rápidos
Análisis de datos:
"Analyze sales.csv and show top customers" → Claude runs Python code in memory
Acceso remoto:
"SSH to my server and check disk space" → Claude maintains SSH session
Desarrollo:
"Start Node.js and test this API" → Claude runs interactive Node session
Ejemplos de uso de herramientas
Formato de bloque de búsqueda/reemplazo:
filepath.ext
<<<<<<< SEARCH
content to find
=======
new content
>>>>>>> REPLACE
Ejemplo:
src/main.js
<<<<<<< SEARCH
console.log("old message");
=======
console.log("new message");
>>>>>>> REPLACE
Funciones mejoradas del bloque de edición
La herramienta edit_block incluye varias mejoras para una mayor fiabilidad:
- Solicitudes mejoradas: Las descripciones de las herramientas ahora enfatizan hacer múltiples ediciones pequeñas y enfocadas en lugar de un cambio grande
- Respaldo de búsqueda difusa: Cuando las coincidencias exactas fallan, realiza una búsqueda difusa y proporciona comentarios detallados
- Diferencias a nivel de carácter: Muestra exactamente qué es diferente usando el formato
{-removed-}{+added+} - Soporte de múltiples ocurrencias: Puede reemplazar múltiples instancias con el parámetro
expected_replacements - Registro completo: Todas las búsquedas difusas se registran para análisis y depuración
Cuando una búsqueda falla, verás información detallada sobre la coincidencia más cercana encontrada, incluido el porcentaje de similitud, el tiempo de ejecución y las diferencias de caracteres. Todos estos detalles se registran automáticamente para análisis posterior mediante las herramientas de registro de búsqueda difusa.
Soporte de Docker
🐳 Uso en entorno aislado
Desktop Commander se puede ejecutar en contenedores Docker para aislamiento completo de tu sistema anfitrión, lo que proporciona riesgo cero para tu ordenador. Esto es perfecto para pruebas, desarrollo o cuando quieres un sandbox completo.
Instrucciones de instalación
-
Instala Docker para Windows/Mac
- Descarga e instala Docker Desktop desde docker.com
-
Obtén la configuración de Docker de Desktop Commander
- Visita: https://hub.docker.com/mcp/server/desktop-commander/manual
- Opción A: Usa el comando de terminal proporcionado para la configuración automatizada
- Opción B: Haz clic en "Standalone" para obtener el JSON de configuración y añadirlo manualmente a tu configuración de Claude Desktop

-
Monta tus carpetas de la máquina (próximamente)
- Las instrucciones sobre cómo montar tus directorios locales en el contenedor Docker se proporcionarán pronto
- Esto te permitirá trabajar con tus archivos manteniendo un aislamiento completo
Beneficios del uso de Docker
- Aislamiento completo de tu sistema anfitrión
- Entorno consistente en diferentes máquinas
- Limpieza fácil — solo elimina el contenedor cuando termines
- Perfecto para probar nuevas funciones o configuraciones
Soporte de URLs
read_fileahora puede obtener contenido tanto de archivos locales como de URLs- Ejemplo:
read_filecon el parámetroisUrl: truepara leer recursos web - Maneja tanto contenido de texto como de imágenes de fuentes remotas
- Las imágenes (locales o de URLs) se muestran visualmente en la interfaz de Claude, no como texto
- Claude puede ver y analizar el contenido real de la imagen
- Tiempo de espera predeterminado de 30 segundos para solicitudes de URL
Vista previa de archivos UI y editor de Markdown
Desktop Commander incluye un widget de vista previa de archivos enriquecido en Claude Desktop que renderiza archivos visualmente mientras la IA trabaja con ellos.
Tipos de archivo admitidos
- Markdown — vista previa renderizada con un editor integrado
- Imágenes — visualización en línea (PNG, JPEG, GIF, WebP, etc.)
- Archivos de código — vista de código fuente con resaltado de sintaxis
- HTML — vista previa renderizada con alternancia a la vista de código fuente
- Directorios — árbol interactivo con expandir/contraer y carga diferida
- PDF, Excel, DOCX — extracción y visualización de contenido nativo
Editor de Markdown
Al ver un archivo .md en Claude Desktop, puedes editarlo directamente dentro del panel de vista previa — no es necesario abrir una aplicación separada.
Cómo usarlo:
- Pide a Claude que lea o cree un archivo markdown
- Expande la vista previa del archivo a pantalla completa usando el botón ⤢ Expand
- El editor se activa automáticamente en modo de pantalla completa
- Edita tu contenido con una alternancia de vista previa en vivo, copiar, deshacer y controles de guardado
- Los cambios se guardan de vuelta al disco; contrae para volver a la vista en línea Características del editor:
- Alternancia en vivo de editar/vista previa — cambia entre markdown sin procesar y salida renderizada
- Guardado automático en disco con indicador de estado de guardado
- Deshacer para revertir cambios no guardados
- Botón Copiar para obtener el código fuente markdown completo
- Abrir en editor — inicia tu aplicación markdown predeterminada directamente desde el panel
- Conciencia de archivos parciales — carga y combina líneas circundantes cuando el archivo solo se leyó parcialmente
- Contexto de selección de texto — selecciona texto en modo vista previa y la IA puede referenciar tu selección
Explorador de directorios
Cuando Claude ejecuta list_directory, el resultado se abre como un árbol de archivos interactivo dentro del panel de vista previa, no solo como salida de texto sin procesar.
Características:
- Árbol expandible — las carpetas se expanden y colapsan al hacer clic; el contenido de nivel superior se muestra de inmediato
- Carga diferida — las subcarpetas se cargan bajo demanda para mantener rápida la vista inicial
- Manejo de directorios grandes — los directorios con muchos elementos muestran un botón
⚠ click to load allen lugar de abrumar la vista - Abrir en Finder/Explorador — cada carpeta tiene un botón de apertura rápida para revelarla en tu administrador de archivos
- Clic para vista previa — al hacer clic en cualquier archivo del árbol, se abre directamente en el panel de vista previa de archivos
- Navegación hacia atrás — después de abrir un archivo desde el árbol, un botón ← Atrás te devuelve a la vista de directorio
Otras características de vista previa
- Expandir / colapsar — alterna entre la fila de resumen compacta y el panel completo
- Abrir en carpeta — revela el archivo en Finder/Explorador con un clic
- Cargar más líneas — carga incrementalmente contenido por encima o por debajo de una ventana de lectura parcial
- Selección de texto — resalta texto en cualquier vista previa; la IA puede ver y referenciar tu selección
Análisis de registros de búsqueda difusa (scripts npm)
El sistema de registro de búsqueda difusa incluye scripts npm convenientes para analizar registros fuera del entorno MCP:
# View recent fuzzy search logs
npm run logs:view -- --count 20
# Analyze patterns and performance
npm run logs:analyze -- --threshold 0.8
# Export logs to CSV or JSON
npm run logs:export -- --format json --output analysis.json
# Clear all logs (with confirmation)
npm run logs:clear
Para documentación detallada sobre estos scripts, consulta scripts/README.md.
Registros de búsqueda difusa
Desktop Commander incluye registro integral para operaciones de búsqueda difusa en la herramienta edit_block. Cuando no se encuentra una coincidencia exacta, el sistema realiza una búsqueda difusa y registra información detallada para su análisis.
Qué se registra
Cada operación de búsqueda difusa registra:
- Texto buscado y encontrado: El texto que buscas frente a lo que se encontró
- Puntuación de similitud: Qué tan cercana es la coincidencia (0-100%)
- Tiempo de ejecución: Cuánto tardó la búsqueda
- Diferencias de caracteres: Diff detallado que muestra exactamente qué es diferente
- Metadatos del archivo: Extensión, longitudes del texto buscado/encontrado
- Códigos de caracteres: Códigos de caracteres específicos que causan diferencias
Ubicación de los registros
Los registros se guardan automáticamente en:
- macOS/Linux:
~/.claude-server-commander-logs/fuzzy-search.log - Windows:
%USERPROFILE%\.claude-server-commander-logs\fuzzy-search.log
Qué aprenderás
Los registros de búsqueda difusa te ayudan a entender:
- Por qué fallan las coincidencias exactas: Problemas comunes como diferencias de espacios en blanco, finales de línea o codificación de caracteres
- Patrones de rendimiento: Cómo la complejidad de la búsqueda afecta el tiempo de ejecución
- Problemas de tipos de archivo: Qué extensiones de archivo suelen tener problemas de coincidencia
- Problemas de codificación de caracteres: Códigos de caracteres específicos que causan diffs
Historial local de herramientas y registros de auditoría
Desktop Commander mantiene registros de llamadas a herramientas localmente en la máquina que ejecuta el servidor MCP. Estos archivos locales son separados de la telemetría opcional y no son un registro de auditoría histórico del lado del servidor.
claude_tool_call.log — registro de argumentos local
Cada llamada a herramienta manejada por el servidor MCP local se agrega como una línea de texto que contiene una marca de tiempo ISO, el nombre de la herramienta y los argumentos serializados en JSON. Los argumentos no se redactan ni se sanean antes de escribirse en este archivo local, por lo que puede contener texto de comandos, rutas de archivos u otros valores sensibles pasados a las herramientas. Las salidas de las herramientas no se escriben en este archivo.
El archivo activo rota cuando alcanza 10 MB. El archivo anterior se renombra usando una marca de tiempo, por ejemplo claude_tool_call_2026-09-07_14-32-10.log, y se crea un nuevo claude_tool_call.log. Los archivos rotados no se eliminan automáticamente por el registrador.
Ubicaciones:
- macOS/Linux:
~/.claude-server-commander/claude_tool_call.log - Windows:
%USERPROFILE%\.claude-server-commander\claude_tool_call.log
tool-history.jsonl — historial reciente de llamadas a herramientas
Desktop Commander también mantiene un historial JSON Lines utilizado por get_recent_tool_calls. Cada registro contiene la marca de tiempo, el nombre de la herramienta, los argumentos, la duración y el resultado devuelto. Este historial se carga desde el disco al inicio, por lo que el historial reciente puede sobrevivir a un reinicio del servidor MCP.
Para mantener este historial acotado:
- Se mantienen en memoria como máximo las 1,000 llamadas más recientes.
- La salida almacenada está limitada a 4 KiB por registro; las salidas más grandes se reemplazan con un marcador de omisión.
- El archivo en disco se recorta cuando crece más allá de 5 MiB, manteniendo aproximadamente los 4 MiB más recientes.
- Al inicio, un historial con más de 2,000 registros se reescribe a los 1,000 registros más recientes.
get_recent_tool_callsytrack_ui_eventse excluyen de este historial JSONL.
Ubicaciones:
- macOS/Linux:
~/.claude-server-commander/tool-history.jsonl - Windows:
%USERPROFILE%\.claude-server-commander\tool-history.jsonl
Llamadas remotas y retención del lado del servidor
Las llamadas ejecutadas a través de Remote Desktop Commander aún son manejadas por el servidor MCP local y utilizan los mismos archivos de historial local mencionados anteriormente. El servicio Remote Desktop Commander actualmente no retiene argumentos de comandos ni resultados de comandos como un rastro de auditoría histórico del lado del servidor después de que se completa la ejecución.
Estos archivos de historial local también son separados de la telemetría opcional de Desktop Commander. Los archivos en sí no se cargan como telemetría. Consulta Data Collection & Privacy y PRIVACY.md para detalles de telemetría.
Manejo de comandos de larga duración
Para comandos que pueden tardar un tiempo:
Gestión de configuración
⚠️ Advertencias de seguridad importantes
Para información de seguridad integral y reporte de vulnerabilidades: Consulta SECURITY.md
-
Limitaciones de seguridad conocidas: Las restricciones de directorio y el bloqueo de comandos se pueden eludir mediante varios métodos, incluidos enlaces simbólicos, sustitución de comandos y rutas absolutas o ejecución de código
-
Siempre cambia la configuración en una ventana de chat separada de donde estás haciendo tu trabajo real. Claude a veces puede intentar modificar la configuración (como
allowedDirectories) si encuentra restricciones de acceso al sistema de archivos. -
La configuración
allowedDirectoriesactualmente solo restringe operaciones del sistema de archivos, no comandos de terminal. Los comandos de terminal aún pueden acceder a archivos fuera de los directorios permitidos. -
Para seguridad en producción: Usa la instalación Docker que proporciona aislamiento completo de tu sistema host.
Herramientas de configuración
Puedes gestionar la configuración del servidor usando las herramientas proporcionadas:
// Get the entire config
get_config({})
// Set a specific config value
set_config_value({ "key": "defaultShell", "value": "/bin/zsh" })
// Set multiple config values using separate calls
set_config_value({ "key": "defaultShell", "value": "/bin/bash" })
set_config_value({ "key": "allowedDirectories", "value": ["/Users/username/projects"] })
La configuración se guarda en config.json en el directorio de trabajo del servidor y persiste entre reinicios del servidor.
Entendiendo fileWriteLineLimit
La configuración fileWriteLineLimit controla cuántas líneas se pueden escribir en una sola operación write_file (predeterminado: 50 líneas). Este límite existe por varias razones importantes:
Por qué existe el límite:
- Las IA son derrochadoras con los tokens: En lugar de hacer dos ediciones pequeñas en un archivo, las IA pueden decidir reescribir todo. Estamos tratando de forzar a las IA a hacer cosas en cambios más pequeños, ya que ahorra tiempo y tokens
- Límites de mensajes UX de Claude: Hay límites dentro de un mensaje y presionar "Continuar" realmente no funciona. Lo que intentamos aquí es hacer que la IA trabaje en fragmentos más pequeños para que cuando alcances ese límite, múltiples fragmentos hayan tenido éxito y ese trabajo no se pierda; solo necesita reiniciarse desde el último fragmento
Configurando el límite:
// You can set it to thousands if you want
set_config_value({ "key": "fileWriteLineLimit", "value": 1000 })
// Or keep it smaller to force more efficient behavior
set_config_value({ "key": "fileWriteLineLimit", "value": 25 })
Valor máximo: Puedes configurarlo a miles si quieres; no hay restricción técnica.
Mejores prácticas:
- Mantén el valor predeterminado (50) para fomentar un comportamiento eficiente de la IA y evitar desperdicio de tokens
- El sistema sugiere automáticamente fragmentación cuando se exceden los límites
- Fragmentos más pequeños significan menos trabajo perdido cuando Claude alcanza los límites de mensajes
Mejores prácticas
-
Crea un chat dedicado para cambios de configuración: Haz todos tus cambios de configuración en un chat, luego inicia un chat nuevo para tu trabajo real.
-
Ten cuidado con
allowedDirectoriesvacío: Configurar esto a un arreglo vacío ([]) otorga acceso a todo tu sistema de archivos para operaciones de archivos. -
Usa rutas específicas: En lugar de usar rutas amplias como
/, especifica directorios exactos a los que deseas acceder. -
Siempre verifica la configuración después de los cambios: Usa
get_config({})para confirmar que tus cambios se aplicaron correctamente.
Opciones de línea de comandos
Desktop Commander admite varias opciones de línea de comandos para personalizar el comportamiento:
Deshabilitar incorporación
De forma predeterminada, Desktop Commander muestra avisos de incorporación útiles a nuevos usuarios (aquellos con menos de 10 llamadas a herramientas). Puedes deshabilitar este comportamiento:
# Disable onboarding for this session
node dist/index.js --no-onboarding
# Or if using npm scripts
npm run start:no-onboarding
# For npx installations, modify your claude_desktop_config.json:
{
"mcpServers": {
"desktop-commander": {
"command": "npx",
"args": [
"-y",
"@wonderwhy-er/desktop-commander@latest",
"--no-onboarding"
]
}
}
}
Cuando la incorporación se deshabilita automáticamente:
- Cuando el nombre del cliente MCP está configurado como "desktop-commander"
- Cuando se usa la bandera
--no-onboarding - Después de que los usuarios hayan usado los avisos de incorporación o hayan realizado 10+ llamadas a herramientas
Información de depuración:
El servidor registrará cuando la incorporación esté deshabilitada: "Onboarding disabled via --no-onboarding flag"
Usando diferentes shells
Puedes especificar qué shell usar para la ejecución de comandos:
// Using default shell (bash or system default)
execute_command({ "command": "echo $SHELL" })
// Using zsh specifically
execute_command({ "command": "echo $SHELL", "shell": "/bin/zsh" })
// Using bash specifically
execute_command({ "command": "echo $SHELL", "shell": "/bin/bash" })
Esto te permite usar características específicas del shell o mantener entornos consistentes entre comandos.
execute_commandregresa después del tiempo de espera con la salida inicial- El comando continúa en segundo plano
- Usa
read_outputcon el PID para obtener nueva salida - Usa
force_terminatepara detener si es necesario
Depuración
Si necesitas depurar el servidor, puedes instalarlo en modo de depuración:
# Using npx
npx @wonderwhy-er/desktop-commander@latest setup --debug
# Or if installed locally
npm run setup:debug
Esto hará lo siguiente:
- Configurar a Claude para usar un servidor "desktop-commander" separado
- Habilitar el protocolo de inspector de Node.js con la bandera
--inspect-brk=9229 - Pausar la ejecución al inicio hasta que un depurador se conecte
- Habilitar variables de entorno de depuración adicionales
Para conectar un depurador:
- En Chrome, visita
chrome://inspecty busca la instancia de Node.js - En VS Code, usa la configuración de depuración "Attach to Node Process"
- Otros IDE/herramientas pueden tener opciones similares de "adjuntar" para depuración de Node.js
Notas importantes de depuración:
- El servidor se pausará al inicio hasta que un depurador se conecte (debido a la bandera
--inspect-brk) - Si no ves actividad durante la depuración, asegúrate de estar conectado al proceso de Node.js correcto
- Puede haber múltiples procesos de Node ejecutándose; conéctate al que está en el puerto 9229
- El servidor de depuración se identifica como "desktop-commander-debug" en la lista de servidores MCP de Claude
Solución de problemas:
- Si Claude agota el tiempo de espera al intentar usar el servidor de depuración, tu depurador podría no estar conectado correctamente
- Cuando esté correctamente conectado, el proceso continuará la ejecución después de alcanzar el primer punto de interrupción
- Puedes agregar puntos de interrupción adicionales en tu IDE una vez conectado
Integración con el Protocolo de Contexto de Modelo
Este proyecto extiende el Servidor de Sistema de Archivos MCP para habilitar:
- Soporte de servidor local en Claude Desktop
- Ejecución completa de comandos del sistema
- Gestión de procesos
- Operaciones de archivos
- Edición de código con bloques de buscar/reemplazar
Creado como parte de la exploración de MCPs de Claude: https://youtube.com/live/TlbjFDbl5Us
Apoya a Desktop Commander
📢 APOYA ESTE PROYECTO
Desktop Commander MCP es gratuito y de código abierto, ¡pero necesita tu apoyo para prosperar!
Nuestra filosofía es simple: no queremos que pagues por ello si no tienes éxito. Pero si Desktop Commander contribuye a tu éxito, considera contribuir al nuestro.
Formas de apoyar:
- 🌟 GitHub Sponsors - Soporte recurrente
- ☕ Buy Me A Coffee - Contribuciones únicas
- 💖 Patreon - Conviértete en patrocinador y apóyanos mensualmente
- ⭐ Star en GitHub - Ayuda a otros a descubrir el proyecto
❤️ Salón de la Fama de Colaboradores
Los colaboradores generosos aparecen aquí. ¡Gracias por ayudar a hacer posible este proyecto!
Por qué tu apoyo es importante
Tu apoyo nos permite:
- Continuar con el desarrollo y mantenimiento activo
- Añadir nuevas funciones e integraciones
- Mejorar la compatibilidad entre plataformas
- Proporcionar mejor documentación y ejemplos
- Construir una comunidad más fuerte alrededor del proyecto
Sitio web
Visita nuestro sitio web oficial en https://desktopcommander.app/ para obtener la información, documentación y actualizaciones más recientes.
Medios
Aprende más sobre este proyecto a través de estos recursos:
Artículo
Claude con MCPs reemplazó a Cursor & Windsurf. ¿Cómo sucedió eso? - Una exploración detallada de cómo Claude con capacidades de Model Context Protocol está cambiando los flujos de trabajo de los desarrolladores.
Video
Tutorial en video de Claude Desktop Commander - Mira cómo configurar y usar Commander de manera efectiva.
Publicación en AnalyticsIndiaMag
Este desarrollador abandonó Windsurf y Cursor usando Claude con MCPs
Comunidad
Únete a nuestro servidor de Discord para obtener ayuda, compartir comentarios y conectarte con otros usuarios.
Testimonios
https://www.youtube.com/watch?v=ly3bed99Dy8&lc=UgyyBt6_ShdDX_rIOad4AaABAg
https://www.youtube.com/watch?v=ly3bed99Dy8&lc=UgztdHvDMqTb9jiqnf54AaABAg
https://www.youtube.com/watch?v=ly3bed99Dy8&lc=UgyQFTmYLJ4VBwIlmql4AaABAg
https://www.youtube.com/watch?v=ly3bed99Dy8&lc=Ugy4-exy166_Ma7TH-h4AaABAg
https://medium.com/@pharmx/you-sir-are-my-hero-62cff5836a3e
Si encuentras útil este proyecto, considera darle una ⭐ estrella en GitHub. Esto ayuda a otros a descubrir el proyecto y fomenta un mayor desarrollo.
¡Aceptamos contribuciones de la comunidad! Ya sea que hayas encontrado un error, tengas una solicitud de función o quieras contribuir con código, así es como puedes ayudar:
- ¿Encontraste un error? Abre un issue en github.com/wonderwhy-er/DesktopCommanderMCP/issues
- ¿Tienes una idea de función? Envía una solicitud de función en la sección de issues
- ¿Quieres contribuir con código? Haz un fork del repositorio, crea una rama y envía una pull request
- ¿Preguntas o discusiones? Inicia una discusión en la pestaña de Discusiones de GitHub
¡Todas las contribuciones, grandes o pequeñas, son muy apreciadas!
Si encuentras esta herramienta valiosa para tu flujo de trabajo, considera apoyar el proyecto.
Preguntas Frecuentes
Aquí tienes respuestas a algunas preguntas comunes. Para un FAQ más completo, consulta nuestro documento FAQ detallado.
¿Qué es Desktop Commander?
Es una herramienta MCP que permite a Claude Desktop acceder a tu sistema de archivos y terminal, convirtiendo a Claude en un asistente versátil para programación, automatización, exploración de bases de código y más.
¿En qué se diferencia de Cursor/Windsurf?
A diferencia de las herramientas centradas en IDE, Claude Desktop Commander ofrece un enfoque centrado en soluciones que funciona con todo tu sistema operativo, no solo dentro de un entorno de programación. Claude lee los archivos completos en lugar de fragmentarlos, puede trabajar en múltiples proyectos simultáneamente y ejecuta cambios de una sola vez en lugar de requerir revisiones constantes.
¿Necesito pagar por créditos de API?
No. Esta herramienta funciona con la suscripción Pro estándar de Claude Desktop ($20/mes), no con llamadas a la API, por lo que no incurrirás en costos adicionales más allá de la tarifa de suscripción.
¿Desktop Commander se actualiza automáticamente?
Sí, cuando se instala a través de npx o Smithery, Desktop Commander se actualiza automáticamente a la versión más reciente cuando reinicias Claude. No se necesita ningún proceso de actualización manual.
¿Cuáles son los casos de uso más comunes?
- Explorar y comprender bases de código complejas
- Generar diagramas y documentación
- Automatizar tareas en todo tu sistema
- Trabajar con múltiples proyectos simultáneamente
- Hacer cambios quirúrgicos en el código con control preciso
Tengo problemas para instalar o usar la herramienta. ¿Dónde puedo obtener ayuda?
Únete a nuestro servidor de Discord para soporte de la comunidad, consulta los issues de GitHub para problemas conocidos, o revisa el FAQ completo para consejos de solución de problemas. También puedes visitar nuestra sección de FAQ del sitio web para una experiencia más amigable. Si encuentras un problema nuevo, considera abrir un issue de GitHub con detalles sobre tu problema.
¿Cómo reporto vulnerabilidades de seguridad?
Por favor, crea un Issue de GitHub con información detallada sobre cualquier vulnerabilidad de seguridad que descubras. Consulta nuestra Política de Seguridad para obtener pautas completas sobre divulgación responsable.
Recopilación de Datos y Privacidad
Desktop Commander recopila telemetría limitada y seudónima para mejorar la herramienta. No recopilamos contenidos de archivos, rutas de archivos ni argumentos de comandos como telemetría.
Esto es independiente del historial local de herramientas y registros de auditoría, que permanecen en la máquina que ejecuta Desktop Commander y pueden contener argumentos de herramientas y vistas previas limitadas de resultados.
Exclusión voluntaria: Pide a Claude que "desactive la telemetría de Desktop Commander" o establece "telemetryEnabled": false en tu configuración.
Para obtener detalles completos, consulta nuestra Política de Privacidad.
Verificaciones
Licencia
MIT