Desktop Commander MCP
Поиск, обновление и управление файлами, запуск команд терминала с помощью AI
Работайте с кодом и текстом, запускайте процессы и автоматизируйте задачи — возможности значительно шире, чем у других AI-редакторов, — используя при этом подписки хост-клиентов вместо оплаты API-токенов.
Содержание
- Возможности
- Как установить
- Начало работы
- Использование
- Интерфейс предпросмотра файлов и редактор Markdown
- Работа с долго выполняющимися командами
- Работа в процессе и планы (TODO)
- Спонсоры и сторонники
- Сайт
- Медиа
- Отзывы
- Часто задаваемые вопросы
- Участие в разработке
- Лицензия
Все инструменты AI-разработки — в одном месте.
Desktop Commander собирает все инструменты разработчика в одном чате.
Запускайте долго выполняющиеся терминальные команды на своём компьютере и управляйте процессами через Model Context Protocol (MCP). Построен на базе MCP Filesystem Server и добавляет расширенные возможности редактирования файлов — поиск и замену.
Возможности
-
Удалённое управление через AI — используйте Desktop Commander из ChatGPT, веб-версии Claude и других AI-сервисов через Remote MCP
-
Интерфейс предпросмотра файлов — визуальный предпросмотр файлов в Claude Desktop с отображением Markdown, встроенными изображениями, раскрывающимся содержимым, встроенным редактором Markdown и быстрым доступом «Открыть в папке»
-
Расширенные терминальные команды с интерактивным управлением процессами
-
Выполнение кода в памяти (Python, Node.js, R) без сохранения файлов
-
Мгновенный анализ данных — просто попросите проанализировать файлы CSV/JSON/Excel
-
Встроенная поддержка файлов Excel — чтение, запись, редактирование и поиск в файлах Excel (.xlsx, .xls, .xlsm) без внешних инструментов
-
Поддержка PDF — чтение PDF с извлечением текста, создание новых PDF из Markdown, изменение существующих PDF
-
Поддержка DOCX — чтение, создание, редактирование и поиск в документах Word (.docx) с точечным редактированием XML и конвертацией Markdown в DOCX
-
Взаимодействие с запущенными процессами (SSH, базы данных, серверы разработки)
-
Выполнение терминальных команд с потоковой передачей вывода
-
Поддержка таймаутов команд и фонового выполнения
-
Управление процессами (просмотр списка и завершение процессов)
-
Управление сессиями для долго выполняющихся команд
-
Постраничное чтение вывода процессов — чтение вывода терминала с параметрами offset/length для предотвращения переполнения контекста
-
Управление конфигурацией сервера:
-
Получение и установка значений конфигурации
-
Обновление нескольких настроек за один раз
-
Динамическое изменение конфигурации без перезапуска сервера
-
-
Полный набор операций с файловой системой:
-
Чтение и запись файлов (текст, Excel, PDF, DOCX)
-
Создание директорий и получение их списка
-
Рекурсивный просмотр директорий с настраиваемой глубиной и защитой от переполнения контекста для больших папок
-
Перемещение файлов и директорий
-
Поиск по файлам и их содержимому (включая содержимое Excel)
-
Получение метаданных файлов
-
Чтение файлов с отрицательным смещением: чтение с конца файла с использованием отрицательных значений offset (аналог Unix tail)
-
-
Возможности редактирования кода:
-
Точечные текстовые замены для небольших правок
-
Полная перезапись файлов для масштабных изменений
-
Поддержка работы с несколькими файлами
-
Замены по шаблону
-
Рекурсивный поиск кода или текста в папках на основе vscode-ripgrep
-
-
Локальная история вызовов инструментов и журналы аудита:
-
Вызовы инструментов и их аргументы сохраняются локально на машине, где запущен Desktop Commander
-
История недавних вызовов с ограниченными превью вывода доступна через
get_recent_tool_calls -
Ротация и усечение по размеру не дают файлам активной истории разрастаться
-
-
Защитные механизмы (это не песочница — подробнее в SECURITY.md):
-
Защита от обхода через симлинки при файловых операциях
-
Список заблокированных команд для защиты от случайного запуска
-
Изоляция в Docker для полной изоляции
-
Как установить
Установка в Claude Desktop
Desktop Commander поддерживает несколько способов установки в Claude Desktop.
📋 Сведения об обновлении и удалении: варианты 1, 2, 3, 4 и 6 обновляются автоматически. Вариант 5 требует обновления вручную. Подробности приведены ниже.
Вариант 1: Установка через npx ⭐ Автообновление (требуется Node.js)
Просто выполните в терминале:
npx @wonderwhy-er/desktop-commander@latest setup
Для режима отладки (разрешает подключение инспектора Node.js):
npx @wonderwhy-er/desktop-commander@latest setup --debug
Параметры командной строки при установке:
-
--debug: включает режим отладки для инспектора Node.js -
--no-onboarding: отключает приветственные подсказки для новых пользователей
Если Claude запущен, перезапустите его.
✅ Автообновление: Да — обновляется автоматически при перезапуске Claude
🔄 Ручное обновление: выполните команду установки повторно
🗑️ Удаление: выполните npx @wonderwhy-er/desktop-commander@latest remove
Вариант 2: Установка с помощью bash-скрипта (macOS) ⭐ Автообновление (при необходимости устанавливает Node.js)
curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install.sh | bash
Скрипт автоматически устанавливает все зависимости и выполняет настройку.
✅ Автообновление: Да
🔄 Ручное обновление: повторно выполните приведённую выше команду установки
🗑️ Удаление: выполните npx @wonderwhy-er/desktop-commander@latest remove
Вариант 3: Установка через Smithery ⭐ Автообновление (требуется Node.js)
-
Откройте страницу: https://smithery.ai/server/@wonderwhy-er/desktop-commander
-
Войдите в Smithery, если вы ещё не авторизованы
-
Выберите свой клиент (Claude Desktop) в правой части страницы
-
Установите с помощью ключа, который появится после выбора клиента
-
Перезапустите Claude Desktop
✅ Автообновление: Да — обновляется автоматически при перезапуске Claude
🔄 Ручное обновление: откройте страницу Smithery и выполните установку заново
Вариант 4: Ручное добавление в claude_desktop_config ⭐ Автообновление (требуется Node.js)
Добавьте следующую запись в файл claude_desktop_config.json:
-
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json -
Windows:
%APPDATA%\Claude\claude_desktop_config.json -
Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"desktop-commander": {
"command": "npx",
"args": [
"-y",
"@wonderwhy-er/desktop-commander@latest"
]
}
}
}
Если Claude запущен, перезапустите его.
✅ Автообновление: Да — обновляется автоматически при перезапуске Claude
🔄 Ручное обновление: выполните команду установки повторно
🗑️ Удаление: выполните npx @wonderwhy-er/desktop-commander@latest remove либо удалите запись из claude_desktop_config.json
Вариант 5: Локальное клонирование репозитория ❌ Ручное обновление (требуется Node.js)
git clone https://github.com/wonderwhy-er/DesktopCommanderMCP.git
cd DesktopCommanderMCP
npm run setup
Если Claude запущен, перезапустите его.
Команда setup установит зависимости, соберёт сервер и настроит настольное приложение Claude.
❌ Автообновление: Нет — обновления выполняются вручную через git
🔄 Ручное обновление: cd DesktopCommanderMCP && git pull && npm run setup
🗑️ Удаление: выполните npx @wonderwhy-er/desktop-commander@latest remove либо удалите клонированную директорию и запись MCP-сервера из конфигурации Claude
Вариант 6: Установка через Docker 🐳 ⭐ Автообновление (Node.js не требуется)
Отлично подходит тем, кому нужна изоляция или у кого не установлен Node.js. Сервер работает в изолированном Docker-контейнере с сохранением рабочего окружения.
Требования: установленный и запущенный Docker Desktop, а также установленное приложение Claude Desktop.
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'))
Установщик проверит Docker, загрузит образ, предложит выбрать папки для монтирования и настроит Claude Desktop.
Сохранение данных в Docker: инструменты, конфигурации, рабочие файлы и кеши пакетов сохраняются между перезапусками.
Ручная настройка Docker
Базовая настройка (без доступа к файлам):
{
"mcpServers": {
"desktop-commander-in-docker": {
"command": "docker",
"args": ["run", "-i", "--rm", "mcp/desktop-commander:latest"]
}
}
}
С монтированием папок:
{
"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"
]
}
}
}
Расширенное монтирование папок:
{
"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"
]
}
}
}
Команды управления 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
Устранение неполадок: выполните сброс и установите заново с нуля:
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)
✅ Автообновление: Да — тег latest автоматически получает новые версии
🔄 Ручное обновление: выполните docker pull mcp/desktop-commander:latest, затем перезапустите Claude
Установка в другие клиенты
Desktop Commander работает с любым MCP-совместимым клиентом. Стандартная JSON-конфигурация:
{
"mcpServers": {
"desktop-commander": {
"command": "npx",
"args": ["-y", "@wonderwhy-er/desktop-commander@latest"]
}
}
}
Добавьте эту конфигурацию в MCP-файл вашего клиента в одном из расположений ниже:
Cursor
Либо добавьте вручную в ~/.cursor/mcp.json (глобально) или в .cursor/mcp.json в папке проекта (для конкретного проекта).
Подробнее — в документации Cursor MCP.
Windsurf
Добавьте в ~/.codeium/windsurf/mcp_config.json. Подробнее — в документации Windsurf MCP.
VS Code / GitHub Copilot
Добавьте в .vscode/mcp.json в проекте или в пользовательские настройки VS Code (JSON). Убедитесь, что MCP включён в разделе Chat > MCP. Работает в режиме Agent.
Подробнее — в документации VS Code MCP.
Cline
Настройте через параметры расширения Cline в VS Code: откройте боковую панель Cline, нажмите на значок MCP Servers и добавьте JSON-конфигурацию выше. Подробнее — в документации Cline MCP.
Roo Code
Добавьте в файл конфигурации MCP вашего Roo Code. Подробнее — в документации Roo Code MCP.
Claude Code
claude mcp add --scope user desktop-commander -- npx -y @wonderwhy-er/desktop-commander@latest
Уберите --scope user, чтобы установить только для текущего проекта. Подробнее — в документации Claude Code MCP.
Trae
Используйте функцию «Add manually» и вставьте JSON-конфигурацию выше. Подробнее — в документации Trae MCP.
Kiro
Перейдите в Kiro > MCP Servers, нажмите + Add и вставьте JSON-конфигурацию выше. Подробнее — в документации Kiro MCP.
Codex (OpenAI)
Codex использует конфигурацию в формате TOML. Выполните команду, чтобы добавить Desktop Commander:
codex mcp add desktop-commander -- npx -y @wonderwhy-er/desktop-commander@latest
Либо добавьте вручную в ~/.codex/config.toml:
[mcp_servers.desktop-commander]
command = "npx"
args = ["-y", "@wonderwhy-er/desktop-commander@latest"]
Подробнее — в документации Codex MCP.
JetBrains (AI Assistant)
В IDE JetBrains откройте Settings → Tools → AI Assistant → Model Context Protocol (MCP), нажмите + Add, выберите As JSON и вставьте JSON-конфигурацию выше. Подробнее — в документации JetBrains MCP.
Gemini CLI
Добавьте в ~/.gemini/settings.json:
{
"mcpServers": {
"desktop-commander": {
"command": "npx",
"args": ["-y", "@wonderwhy-er/desktop-commander@latest"]
}
}
}
Подробнее — в документации Gemini CLI.
Augment Code
Нажмите Cmd/Ctrl+Shift+P, откройте панель Augment и добавьте новый MCP-сервер с именем desktop-commander, используя JSON-конфигурацию выше. Подробнее — в документации Augment Code MCP.
Qwen Code
Выполните команду, чтобы добавить Desktop Commander:
qwen mcp add desktop-commander -- npx -y @wonderwhy-er/desktop-commander@latest
Либо добавьте в .qwen/settings.json (для проекта) или ~/.qwen/settings.json (глобально). Подробнее — в документации Qwen Code MCP.
ChatGPT / Claude Web (Remote MCP)
Используйте Desktop Commander из ChatGPT, Claude web и других AI-сервисов — команды при этом по-прежнему выполняются на вашем компьютере.
Запустите Remote Device:
npx @wonderwhy-er/desktop-commander@latest remote
При первом запуске пройдите аутентификацию в браузере, затем подключите свой AI на mcp.desktopcommander.app.
-
Временно остановить локальное устройство можно с помощью
Ctrl+C -
Доступные опции CLI можно посмотреть с помощью
npx @wonderwhy-er/desktop-commander@latest remote --help -
См. настройку Remote MCP, выход и отзыв доступа, справочник CLI и устранение неполадок
Безопасность
-
✅ Remote Device принимает команды только пока он запущен
-
✅ Команды выполняются локально с правами вашего пользователя
-
✅ Безопасная аутентификация через OAuth и зашифрованный канал связи
Обновление и удаление Desktop Commander
Автоматическое обновление (варианты 1, 2, 3, 4 и 6)
Варианты 1 (npx), 2 (bash installer), 3 (Smithery), 4 (ручная настройка) и 6 (Docker) автоматически обновляются до последней версии при каждом перезапуске Claude. Ручное вмешательство не требуется.
Ручное обновление (вариант 5)
- Вариант 5 (локальная копия репозитория):
cd DesktopCommanderMCP && git pull && npm run setup
Удаление Desktop Commander
🤖 Автоматическое удаление (рекомендуется)
Простейший способ полностью удалить Desktop Commander:
npx @wonderwhy-er/desktop-commander@latest remove
Автоматический деинсталлятор:
-
✅ Удалит Desktop Commander из конфигурации MCP-серверов Claude
-
✅ Создаст резервную копию конфигурации Claude перед внесением изменений
-
✅ Подскажет, как полностью удалить пакет
-
✅ Восстановит данные из резервной копии, если что-то пойдёт не так
🔧 Ручное удаление
Если автоматический деинсталлятор не сработал или вы предпочитаете удалить всё вручную:
Удаление из конфигурации Claude
-
Найдите файл конфигурации 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 -
Отредактируйте файл конфигурации:
-
Откройте файл в текстовом редакторе
-
Найдите и удалите запись
"desktop-commander"из секции"mcpServers" -
Сохраните файл
Пример — удалите эту секцию:
{
"desktop-commander": {
"command": "npx",
"args": ["@wonderwhy-er/desktop-commander@latest"]
}
}
Закройте и перезапустите Claude Desktop, чтобы завершить удаление.
🆘 Устранение неполадок
Если автоматическое удаление не сработало:
- Используйте ручное удаление как запасной вариант
Если Claude не запускается после удаления:
-
Восстановите резервную копию файла конфигурации, созданную деинсталлятором
-
Либо вручную исправьте синтаксис JSON в файле claude_desktop_config.json
Нужна помощь?
- Присоединяйтесь к нашему сообществу в Discord: https://discord.com/invite/kQ27sNnZr7
Начало работы
Когда Desktop Commander установлен, а Claude Desktop перезапущен, можно выводить работу с Claude на новый уровень!
🚀 Онбординг новых пользователей
В Desktop Commander встроен интеллектуальный онбординг, который поможет вам узнать обо всех возможностях:
Для новых пользователей: если вы только начинаете (успешно выполнено менее 10 команд), Claude автоматически предложит полезное вводное руководство и практические уроки после успешного использования Desktop Commander.
Помощь в любой момент: запросить помощь с онбордингом можно в любое время, просто написав:
-
«Помоги мне начать работать с Desktop Commander»
-
«Покажи примеры использования Desktop Commander»
-
«Что я могу делать с Desktop Commander?»
Claude покажет понятные новичку уроки и примеры, в том числе:
-
📁 автоматическую организацию папки Downloads
-
📊 анализ файлов CSV/Excel с помощью Python
-
⚙️ настройку CI/CD на GitHub Actions
-
🔍 изучение и понимание кодовых баз
-
🤖 запуск интерактивных сред разработки
Использование
Сервер предоставляет обширный набор инструментов, сгруппированных по нескольким категориям:
Доступные инструменты
| Категория | Инструмент | Описание |
|---|---|---|
| Конфигурация | get_config | Получить полную конфигурацию сервера в формате JSON (включает blockedCommands, defaultShell, allowedDirectories, fileReadLineLimit, fileWriteLineLimit, telemetryEnabled) |
set_config_value | Установить конкретное значение конфигурации по ключу. Доступные параметры: • blockedCommands: массив shell-команд, которые запрещено выполнять • defaultShell: оболочка для выполнения команд (например, bash, zsh, powershell) • allowedDirectories: массив путей файловой системы, доступных серверу для файловых операций (⚠️ терминальные команды всё же могут обращаться к файлам за пределами этих каталогов) • fileReadLineLimit: максимум строк, читаемых за один раз (по умолчанию: 1000) • fileWriteLineLimit: максимум строк, записываемых за один раз (по умолчанию: 50) • telemetryEnabled: включение/отключение телеметрии (логическое значение) | |
| Терминал | start_process | Запуск программ с интеллектуальным определением момента, когда они готовы принимать ввод |
interact_with_process | Отправка команд запущенным программам и получение ответов | |
read_process_output | Чтение вывода запущенных процессов | |
force_terminate | Принудительное завершение активной терминальной сессии | |
list_sessions | Список всех активных терминальных сессий | |
list_processes | Список всех запущенных процессов с подробной информацией | |
kill_process | Завершение запущенного процесса по PID | |
| Файловая система | read_file | Чтение содержимого из локальной файловой системы, по URL, из файлов Excel (.xlsx, .xls, .xlsm) и PDF с построчной и постраничной пагинацией |
read_multiple_files | Одновременное чтение нескольких файлов | |
write_file | Запись содержимого файла в режиме перезаписи или добавления. Поддерживает файлы Excel (формат двумерного JSON-массива). Для PDF используйте write_pdf | |
write_pdf | Создание новых PDF-файлов из markdown или изменение существующих (вставка/удаление страниц). Поддерживает стилизацию HTML/CSS и графику SVG | |
create_directory | Создание нового каталога или проверка его наличия | |
list_directory | Подробный рекурсивный список файлов и каталогов (поддерживается параметр глубины, по умолчанию depth=2) | |
move_file | Перемещение или переименование файлов и каталогов | |
start_search | Запуск потокового поиска файлов по имени или содержимому (ищет в текстовых файлах и содержимом Excel) | |
get_more_search_results | Получение результатов активного поиска с пагинацией и поддержкой смещения | |
stop_search | Корректная остановка активного поиска | |
list_searches | Список всех активных поисковых сессий | |
get_file_info | Получение подробных метаданных о файле или каталоге (включает сведения о листах для файлов Excel) | |
| Редактирование текста | edit_block | Точечные замены текста в текстовых файлах или обновление ячеек Excel по диапазону |
| Аналитика | get_usage_stats | Получение статистики использования для собственного анализа |
get_recent_tool_calls | Получение истории недавних вызовов инструментов с аргументами и результатами — для отладки и восстановления контекста | |
give_feedback_to_desktop_commander | Открытие формы обратной связи в браузере, чтобы отправить отзыв команде Desktop Commander |
Быстрые примеры
Анализ данных:
"Analyze sales.csv and show top customers" → Claude runs Python code in memory
Удалённый доступ:
"SSH to my server and check disk space" → Claude maintains SSH session
Разработка:
"Start Node.js and test this API" → Claude runs interactive Node session
Примеры использования инструментов
Формат блока поиска и замены:
filepath.ext
<<<<<<< SEARCH
content to find
=======
new content
>>>>>>> REPLACE
Пример:
src/main.js
<<<<<<< SEARCH
console.log("old message");
=======
console.log("new message");
>>>>>>> REPLACE
Расширенные возможности edit_block
Инструмент edit_block включает ряд улучшений для повышения надёжности:
-
Улучшенные подсказки: описания инструмента теперь делают упор на несколько небольших точечных правок вместо одного масштабного изменения
-
Резервный нечёткий поиск: если точное совпадение не найдено, выполняется нечёткий поиск с подробной обратной связью
-
Посимвольные различия: наглядно показывает, что именно изменилось, в формате
{-removed-}{+added+} -
Поддержка нескольких вхождений: можно заменить несколько экземпляров с помощью параметра
expected_replacements -
Подробное журналирование: все нечёткие поиски фиксируются в журнале для анализа и отладки
Если поиск завершился неудачей, вы увидите подробную информацию о ближайшем найденном совпадении: процент схожести, время выполнения и посимвольные различия. Все эти данные автоматически сохраняются в журнал для последующего анализа с помощью инструментов просмотра журнала нечёткого поиска.
Поддержка Docker
🐳 Работа в изолированном окружении
Desktop Commander можно запускать в контейнерах Docker для полной изоляции от хост-системы — это гарантирует нулевую опасность для вашего компьютера. Идеальный вариант для тестирования, разработки и любых задач, где требуется полноценная песочница.
Инструкция по установке
-
Установите Docker для Windows/Mac
- Скачайте и установите Docker Desktop с docker.com
-
Получите конфигурацию Docker для Desktop Commander
-
Перейдите по адресу: https://hub.docker.com/mcp/server/desktop-commander/manual
-
Вариант A: используйте готовую терминальную команду для автоматической настройки
-
Вариант B: нажмите «Standalone», чтобы получить JSON-конфигурацию и вручную добавить её в конфиг Claude Desktop
-
-
Подключение локальных папок (скоро)
-
Инструкции по монтированию локальных каталогов в контейнер Docker появятся в ближайшее время
-
Это позволит работать с вашими файлами, сохраняя полную изоляцию
-
Преимущества использования Docker
-
Полная изоляция от хост-системы
-
Единообразное окружение на разных машинах
-
Простая очистка — по завершении работы достаточно удалить контейнер
-
Идеально подходит для тестирования новых функций и конфигураций
Поддержка URL
-
read_fileтеперь может получать содержимое как из локальных файлов, так и по URL -
Пример:
read_fileс параметромisUrl: trueдля чтения из веб-ресурсов -
Обрабатывает как текст, так и изображения из удалённых источников
-
Изображения (локальные или полученные по URL) отображаются в интерфейсе Claude визуально, а не в виде текста
-
Claude видит и анализирует реальное содержимое изображений
-
Стандартный таймаут для URL-запросов — 30 секунд
Предпросмотр файлов и Markdown-редактор
Desktop Commander добавляет в Claude Desktop многофункциональный виджет предпросмотра файлов, который визуально отображает их в процессе работы ИИ.
Поддерживаемые типы файлов
-
Markdown — отрендеренный предпросмотр со встроенным редактором
-
Изображения — отображение прямо в интерфейсе (PNG, JPEG, GIF, WebP и др.)
-
Файлы кода — просмотр исходного кода с подсветкой синтаксиса
-
HTML — отрендеренный предпросмотр с переключением на исходный код
-
Каталоги — интерактивное дерево с раскрытием/сворачиванием и ленивой загрузкой
-
PDF, Excel, DOCX — нативное извлечение и отображение содержимого
Markdown-редактор
При просмотре файла .md в Claude Desktop его можно редактировать прямо в панели предпросмотра — без запуска отдельного приложения.
Как пользоваться:
-
Попросите Claude прочитать или создать markdown-файл
-
Разверните предпросмотр файла на весь экран кнопкой ⤢ Expand
-
В полноэкранном режиме редактор активируется автоматически
-
Редактируйте текст, используя переключатель живого предпросмотра и кнопки копирования, отмены и сохранения
-
Изменения сохраняются на диск; сверните панель, чтобы вернуться к встроенному виду
Возможности редактора:
-
Переключатель редактирование / предпросмотр в реальном времени — переход между исходным markdown и отрендеренным результатом
-
Автосохранение на диск с индикатором статуса сохранения
-
Поддержка отмены для отката несохранённых изменений
-
Кнопка копирования всего исходного markdown
-
Открыть в редакторе — запуск приложения для markdown по умолчанию прямо из панели
-
Учёт частичного чтения — если файл был прочитан лишь частично, загружаются и объединяются соседние строки
-
Контекст выделения — выделите текст в режиме предпросмотра, и ИИ сможет ссылаться на него
Обозреватель каталогов
Когда Claude выполняет list_directory, результат открывается в панели предпросмотра как интерактивное дерево файлов, а не просто сырой текстовый вывод.
Возможности:
-
Раскрываемое дерево — папки раскрываются и сворачиваются по клику; содержимое верхнего уровня показывается сразу
-
Ленивая загрузка — подпапки подгружаются по запросу, чтобы начальный вид открывался быстро
-
Работа с большими каталогами — вместо перегруженного списка для каталогов с множеством элементов показывается кнопка
⚠ click to load all -
Открыть в Finder/Explorer — у каждой папки есть кнопка быстрого открытия в файловом менеджере
-
Клик для предпросмотра — клик по любому файлу в дереве сразу открывает его в панели предпросмотра
-
Обратная навигация — после открытия файла из дерева кнопка ← Back возвращает к просмотру каталога
Другие возможности предпросмотра
-
Развернуть / свернуть — переключение между компактной строкой сводки и полной панелью
-
Открыть в папке — показать файл в Finder/Explorer одним щелчком
-
Загрузить больше строк — постепенная загрузка содержимого выше или ниже частично прочитанного окна
-
Выделение текста — выделяйте текст в любом предпросмотре; ИИ видит ваше выделение и может ссылаться на него
Анализ журналов нечёткого поиска (npm-скрипты)
Система логирования нечёткого поиска включает удобные npm-скрипты для анализа журналов за пределами окружения 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
Подробная документация по этим скриптам доступна в scripts/README.md.
Журналы нечёткого поиска
Desktop Commander ведёт подробное логирование операций нечёткого поиска в инструменте edit_block. Если точное совпадение не найдено, система выполняет нечёткий поиск и записывает детальную информацию для последующего анализа.
Что попадает в журнал
Каждая операция нечёткого поиска фиксирует:
-
Искомый и найденный текст: текст, который вы ищете, и текст, который был найден
-
Оценку схожести: насколько близким оказалось совпадение (0–100 %)
-
Время выполнения: сколько времени занял поиск
-
Различия символов: подробный diff, показывающий, что именно отличается
-
Метаданные файла: расширение, длины искомого и найденного текста
-
Коды символов: конкретные коды символов, ставшие причиной различий
Расположение журналов
Журналы автоматически сохраняются в:
-
macOS/Linux:
~/.claude-server-commander-logs/fuzzy-search.log -
Windows:
%USERPROFILE%\.claude-server-commander-logs\fuzzy-search.log
Что можно узнать
Журналы нечёткого поиска помогают понять:
-
Почему не срабатывают точные совпадения: типичные проблемы вроде различий в пробелах, переводах строк или кодировке символов
-
Паттерны производительности: как сложность поиска влияет на время выполнения
-
Проблемы с типами файлов: для каких расширений файлов проблемы совпадения встречаются чаще всего
-
Проблемы кодировки символов: какие конкретные коды символов вызывают различия
Локальная история инструментов и журналы аудита
Desktop Commander хранит записи о вызовах инструментов локально на машине, где запущен MCP-сервер. Эти локальные файлы существуют отдельно от опциональной телеметрии и не являются серверным журналом аудита истории.
claude_tool_call.log — локальный журнал аргументов
Каждый вызов инструмента, обрабатываемый локальным MCP-сервером, добавляется в виде текстовой строки, содержащей метку времени в формате ISO, имя инструмента и сериализованные в JSON аргументы. Аргументы не редактируются и не очищаются перед записью в этот локальный файл, поэтому он может содержать текст команд, пути к файлам и другие конфиденциальные значения, переданные инструментам. Результаты работы инструментов в этот файл не записываются.
Активный файл ротируется при достижении 10 МБ. Предыдущий файл переименовывается с использованием метки времени, например claude_tool_call_2026-09-07_14-32-10.log, и создаётся новый claude_tool_call.log. Ротированные файлы не удаляются логгером автоматически.
Расположение:
-
macOS/Linux:
~/.claude-server-commander/claude_tool_call.log -
Windows:
%USERPROFILE%\.claude-server-commander\claude_tool_call.log
tool-history.jsonl — история последних вызовов инструментов
Desktop Commander также ведёт историю в формате JSON Lines, используемую инструментом get_recent_tool_calls. Каждая запись содержит метку времени, имя инструмента, аргументы, длительность и возвращённый результат. Эта история загружается с диска при запуске, поэтому последние данные могут сохраниться после перезапуска MCP-сервера.
Чтобы история оставалась ограниченной:
-
В памяти хранится не более 1 000 последних вызовов.
-
Сохраняемый вывод ограничен 4 КиБ на запись; более крупные выводы заменяются маркером пропуска.
-
Файл на диске усекается при превышении 5 МиБ, сохраняя примерно 4 МиБ самых новых данных.
-
При запуске история, содержащая более 2 000 записей, перезаписывается последними 1 000 записями.
-
get_recent_tool_callsиtrack_ui_eventисключены из этой истории JSONL.
Расположение:
-
macOS/Linux:
~/.claude-server-commander/tool-history.jsonl -
Windows:
%USERPROFILE%\.claude-server-commander\tool-history.jsonl
Удалённые вызовы и серверное хранение
Вызовы, выполняемые через Remote Desktop Commander, по-прежнему обрабатываются локальным MCP-сервером и используют те же локальные файлы истории, что описаны выше. Сервис Remote Desktop Commander временно хранит аргументы и результаты вызовов инструментов в mcp_remote_calls, чтобы вызовы можно было маршрутизировать и завершать. Строки терминала автоматически очищаются вскоре после завершения (доступны для удаления через одну минуту, с резервным лимитом в один час от момента создания), поэтому они не сохраняются как долгосрочный серверный журнал аудита.
Эти локальные файлы истории также отделены от опциональной телеметрии Desktop Commander. Сами файлы не выгружаются как телеметрия. Подробности о телеметрии см. в разделе «Сбор данных и конфиденциальность» и в PRIVACY.md.
Работа с длительными командами
Для команд, выполнение которых может занять продолжительное время:
Управление конфигурацией
⚠️ Важные предупреждения о безопасности
Полную информацию о безопасности и правилах сообщения об уязвимостях см. в SECURITY.md
-
Известные ограничения безопасности: ограничения директорий и блокировки команд можно обойти разными способами, включая симлинки, подстановку команд, абсолютные пути или выполнение кода
-
Всегда изменяйте конфигурацию в отдельном окне чата, а не в том, где ведётся основная работа. Claude иногда может пытаться изменить параметры конфигурации (например,
allowedDirectories), если сталкивается с ограничениями доступа к файловой системе. -
Параметр
allowedDirectoriesсейчас ограничивает только файловые операции, но не команды терминала. Команды терминала по-прежнему могут обращаться к файлам за пределами разрешённых директорий. -
Для производственной безопасности: используйте установку через Docker, которая обеспечивает полную изоляцию от вашей хост-системы.
Инструменты конфигурации
Управлять конфигурацией сервера можно с помощью предоставляемых инструментов:
// 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"] })
Конфигурация сохраняется в config.json в рабочей директории сервера и сохраняется между перезапусками сервера.
Понимание fileWriteLineLimit
Параметр fileWriteLineLimit определяет, сколько строк можно записать за одну операцию write_file (по умолчанию: 50 строк). Этот лимит существует по нескольким важным причинам:
Зачем нужен лимит:
-
ИИ неэкономно расходует токены: вместо двух небольших правок в файле ИИ может решить перезаписать его целиком. Мы пытаемся заставить ИИ работать небольшими изменениями — это экономит время и токены
-
Ограничения сообщений в Claude UX: в одном сообщении есть лимиты, и нажатие «Continue» на самом деле не помогает. Наша цель — заставить ИИ работать небольшими частями, чтобы при достижении лимита несколько частей уже были успешно выполнены и эта работа не потерялась — нужно лишь продолжить с последней части
Настройка лимита:
// 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 })
Максимальное значение: при желании можно установить значение в тысячи — технических ограничений нет.
Лучшие практики:
-
Оставляйте значение по умолчанию (50), чтобы стимулировать эффективное поведение ИИ и избегать лишнего расхода токенов
-
Система автоматически предлагает разбиение на части при превышении лимитов
-
Меньшие части означают, что при достижении лимитов сообщений Claude теряется меньше работы
Лучшие практики
-
Создайте отдельный чат для изменений конфигурации: вносите все изменения конфигурации в одном чате, а затем начинайте новый чат для основной работы.
-
Осторожно с пустым
allowedDirectories: установка пустого массива ([]) открывает доступ ко всей файловой системе для файловых операций. -
Используйте конкретные пути: вместо широких путей вроде
/указывайте точные директории, к которым нужен доступ. -
Всегда проверяйте конфигурацию после изменений: используйте
get_config({}), чтобы убедиться, что изменения применились корректно.
Параметры командной строки
Desktop Commander поддерживает несколько параметров командной строки для настройки поведения:
Отключение онбординга
По умолчанию Desktop Commander показывает новым пользователям (тем, кто сделал менее 10 вызовов инструментов) полезные подсказки для начала работы. Это поведение можно отключить:
# 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"
]
}
}
}
Когда онбординг отключается автоматически:
-
Если имя MCP-клиента установлено в "desktop-commander"
-
При использовании флага
--no-onboarding -
После того как пользователь воспользовался подсказками онбординга или совершил 10 и более вызовов инструментов
Отладочная информация:
При отключении онбординга сервер записывает в лог сообщение: "Onboarding disabled via --no-onboarding flag"
Использование разных оболочек
Можно указать, какая оболочка будет использоваться для выполнения команд:
// 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" })
Это позволяет задействовать возможности конкретной оболочки или поддерживать единообразное окружение между командами.
-
execute_commandвозвращает начальный вывод по истечении таймаута -
Команда продолжает выполняться в фоне
-
Используйте
read_outputс PID, чтобы получать новый вывод -
При необходимости остановите команду с помощью
force_terminate
Отладка
Если требуется отладить сервер, установите его в режиме отладки:
# Using npx
npx @wonderwhy-er/desktop-commander@latest setup --debug
# Or if installed locally
npm run setup:debug
Это позволит:
-
Настроить Claude на использование отдельного сервера "desktop-commander"
-
Включить протокол инспектора Node.js с флагом
--inspect-brk=9229 -
Приостановить выполнение на старте до подключения отладчика
-
Активировать дополнительные переменные окружения для отладки
Чтобы подключить отладчик:
-
В Chrome откройте
chrome://inspectи найдите экземпляр Node.js -
В VS Code используйте конфигурацию отладки "Attach to Node Process"
-
В других IDE и инструментах могут быть похожие опции подключения для отладки Node.js
Важные замечания по отладке:
-
Сервер приостанавливается при запуске до подключения отладчика (из-за флага
--inspect-brk) -
Если во время отладки не видно активности, убедитесь, что вы подключены к нужному процессу Node.js
-
Одновременно может работать несколько процессов Node; подключайтесь к тому, что на порту 9229
-
Отладочный сервер отображается в списке MCP-серверов Claude под именем "desktop-commander-debug"
Устранение неполадок:
-
Если Claude прерывает работу по таймауту при попытке обратиться к отладочному серверу, возможно, отладчик подключён некорректно
-
При корректном подключении процесс продолжит выполнение после первой точки останова
-
После подключения можно добавлять дополнительные точки останова в своей IDE
Интеграция с Model Context Protocol
Этот проект расширяет MCP Filesystem Server, добавляя:
-
Поддержку локального сервера в Claude Desktop
-
Полноценное выполнение системных команд
-
Управление процессами
-
Операции с файлами
-
Редактирование кода с помощью блоков поиска и замены
Создано в рамках исследования возможностей Claude MCP: https://youtube.com/live/TlbjFDbl5Us
Поддержка Desktop Commander
📢 ПОДДЕРЖИТЕ ПРОЕКТ
Desktop Commander MCP — бесплатный проект с открытым исходным кодом, но ему нужна ваша поддержка, чтобы развиваться!
Наша философия проста: мы не хотим, чтобы вы платили за проект, если он не принёс вам пользы. Но если Desktop Commander помог вашему успеху, подумайте о том, чтобы внести вклад и в наш.
**Способы поддержки:**
-
🌟 GitHub Sponsors — регулярная поддержка
-
☕ Buy Me A Coffee — разовые пожертвования
-
💖 Patreon — станьте патроном и поддерживайте нас ежемесячно
-
⭐ Поставьте звезду на GitHub — помогите другим узнать о проекте
❤️ Зал славы сторонников
Здесь представлены наши щедрые сторонники. Спасибо за то, что помогаете делать этот проект возможным!
| Jon Richards | Matija Stepanic |
|---|
Почему ваша поддержка важна
Ваша поддержка позволяет нам:
-
Продолжать активную разработку и сопровождение проекта
-
Добавлять новые функции и интеграции
-
Улучшать совместимость между платформами
-
Создавать более качественную документацию и примеры
-
Развивать сообщество вокруг проекта
Сайт
Актуальная информация, документация и новости доступны на официальном сайте https://desktopcommander.app/.
Медиа
Узнать больше о проекте можно из этих материалов:
Статья
Claude с MCP заменил Cursor и Windsurf. Как это произошло? — подробный разбор того, как Claude с возможностями Model Context Protocol меняет рабочие процессы разработчиков.
Видео
Видеоурок по Claude Desktop Commander — посмотрите, как настроить Commander и эффективно его использовать.
Публикация на AnalyticsIndiaMag
Этот разработчик отказался от Windsurf и Cursor в пользу Claude с MCP
Сообщество
Присоединяйтесь к нашему серверу Discord, чтобы получить помощь, поделиться отзывами и пообщаться с другими пользователями.
Отзывы
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
Если проект оказался полезным, поставьте ему ⭐ на GitHub! Это поможет другим узнать о нём и простимулирует дальнейшую разработку.
Мы приветствуем вклад сообщества! Нашли баг, хотите предложить новую функцию или внести код — вот как можно помочь:
-
Нашли баг? Создайте issue на github.com/wonderwhy-er/DesktopCommanderMCP/issues
-
Есть идея для функции? Оставьте запрос на функцию в разделе issues
-
Хотите внести код? Сделайте форк репозитория, создайте ветку и отправьте pull request
-
Есть вопросы или идеи для обсуждения? Начните обсуждение во вкладке GitHub Discussions
Любой вклад, большой или малый, очень ценится!
Если этот инструмент полезен для вашего рабочего процесса, поддержите проект.
Часто задаваемые вопросы
Здесь собраны ответы на распространённые вопросы. Более полный FAQ доступен в нашем подробном документе.
Что такое Desktop Commander?
Это MCP-инструмент, который даёт Claude Desktop доступ к вашей файловой системе и терминалу, превращая Claude в универсального помощника для программирования, автоматизации, изучения кодовой базы и многого другого.
Чем это отличается от Cursor/Windsurf?
В отличие от инструментов, ориентированных на IDE, Claude Desktop Commander предлагает подход, сфокусированный на решении задачи: он работает со всей операционной системой, а не только внутри среды разработки. Claude читает файлы целиком, а не по частям, может работать с несколькими проектами одновременно и вносит изменения за один проход, не требуя постоянной проверки.
Нужно ли оплачивать API-кредиты?
Нет. Инструмент работает со стандартной подпиской Claude Desktop Pro ($20 в месяц), а не через API-вызовы, поэтому дополнительных расходов помимо стоимости подписки не будет.
Обновляется ли Desktop Commander автоматически?
Да. При установке через npx или Smithery Desktop Commander автоматически обновляется до последней версии при перезапуске Claude. Ручное обновление не требуется.
Какие сценарии использования встречаются чаще всего?
-
Изучение и понимание сложных кодовых баз
-
Создание диаграмм и документации
-
Автоматизация задач по всей системе
-
Одновременная работа с несколькими проектами
-
Точечные изменения кода с аккуратным контролем
Не удаётся установить или использовать инструмент. Где найти помощь?
Присоединяйтесь к нашему серверу Discord, чтобы получить поддержку от сообщества. Известные проблемы собраны в GitHub issues, а советы по устранению неполадок — в полном FAQ. Кроме того, можно заглянуть в раздел FAQ на нашем сайте — там информация представлена более удобно. Если вы столкнулись с новой проблемой, пожалуйста, создайте issue на GitHub и подробно опишите её.
Как сообщить об уязвимостях в системе безопасности?
Если вы обнаружили уязвимость, создайте GitHub Issue с подробным описанием. Полные рекомендации по ответственному раскрытию уязвимостей приведены в нашей политике безопасности.
Сбор данных и конфиденциальность
Desktop Commander собирает ограниченную псевдонимизированную телеметрию для улучшения инструмента. В телеметрию не попадают содержимое файлов, пути к файлам и аргументы команд.
Телеметрия отделена от локальной истории использования инструментов и журналов аудита: они остаются на машине, где запущен Desktop Commander, и могут содержать аргументы инструментов и ограниченные по объёму предпросмотры результатов.
Отключение: попросите Claude «отключить телеметрию Desktop Commander» или задайте значение "telemetryEnabled": false в конфигурации.
Полные сведения приведены в нашей политике конфиденциальности.
Проверки
Лицензия
MIT