wonderwhy-er/DesktopCommanderMCP

wonderwhy-er/DesktopCommanderMCP

от wonderwhy-er
Desktop Commander — MCP сервер для управления файлами, запуска терминальных команд, редактирования кода, работы с Excel, PDF и DOCX. Разработчики используют его для автоматизации задач и взаимодейс...

Desktop Commander MCP

Search, update, manage files and run terminal commands with AI

npm downloads AgentAudit Verified Trust Score smithery badge Buy Me A Coffee

Discord

Work with code and text, run processes, and automate tasks, going far beyond other AI editors - while using host client subscriptions instead of API token costs.

Desktop Commander MCP

🖥️ Try the Desktop Commander App (Beta)

Want a better experience? The Desktop Commander App gives you everything the MCP server does, plus:

  • Use any AI model — Claude, GPT-4.5, Gemini 2.5, or any model you prefer
  • See file changes live — visual file previews as AI edits your files
  • Add custom MCPs and context — extend with your own tools, no config files
  • Coming soon — skills system, dictation, background scheduled tasks, and more

👉 Download the App (macOS & Windows)

The MCP server below still works great with Claude Desktop and other MCP clients — the app is for those who want a dedicated, polished experience.

Table of Contents

  • Features
  • How to install
  • Getting Started
  • Usage
  • File Preview UI & Markdown Editor
  • Handling Long-Running Commands
  • Work in Progress and TODOs
  • Sponsors and Supporters
  • Website
  • Media
  • Testimonials
  • Frequently Asked Questions
  • Contributing
  • License
Инструменты были проиндексированы:
create_directory

Создаёт новую директорию или проверяет, что директория существует. Создаёт несколько вложенных директорий за одну операцию. Работает только внутри разрешённых директорий. ВАЖНО: Всегда используйте абсолютные пути для надёжности. Пути автоматически нормализуются независимо от направления слешей. 🐳 DOCKER: Предпочитайте пути в смонтированных директориях: /home/ubuntu. Когда пользователи спрашивают о расположении файлов, сначала проверяйте эти смонтированные пути. Относительные пути могут не сработать, так как они зависят от текущей рабочей директории. Пути с тильдой (~/...) могут не работать во всех контекстах. Если пользователь явно не запрашивает относительные пути, используйте абсолютные. На эту команду можно ссылаться как «DC: ...» или «use Desktop Commander to ...» в ваших инструкциях.

Параметры
  • pathstringобязательный
edit_block

Применяет хирургические правки к файлам. ЛУЧШАЯ ПРАКТИКА: Делайте множество маленьких целенаправленных правок вместо одной большой. Каждый вызов edit_block должен изменять только то, что нужно изменить — включайте ровно столько контекста, чтобы однозначно идентифицировать изменяемый текст. ОБРАБОТКА ФОРМАТОВ (по расширению): ФАЙЛЫ EXCEL (.xlsx, .xls, .xlsm) — Режим обновления диапазона: Принимает: - file_path: Путь к файлу Excel - range: ВСЕГДА используйте формат FROM:TO — «SheetName!A1:C10» или «SheetName!C1:C1» - content: Двумерный массив, например, [["H1","H2"],["R1","R2"]] ТЕКСТОВЫЕ ФАЙЛЫ — Режим поиска/замены: Принимает: - file_path: Путь к редактируемому файлу - old_string: Текст для замены - new_string: Заменяющий текст - expected_replacements: Необязательное количество замен (по умолчанию: 1) ФАЙЛЫ DOCX (.docx) — Режим поиска/замены XML: Принимает те же параметры, что и текстовые файлы (old_string, new_string, expected_replacements). Работает с красиво отформатированным XML внутри DOCX — тем же XML, который вы видите от read_file с offset/length. Копируйте фрагменты XML из вывода read как old_string. После редактирования XML упаковывается обратно в валидный DOCX. Также ищет в колонтитулах, если не найдено в теле документа. Примеры: - Замена текста: old_string="<w:t>Old Text</w:t>" new_string="<w:t>New Text</w:t>" - Смена стиля: old_string='<w:pStyle w:val="Normal"/>' new_string='<w:pStyle w:val="Heading1"/>' - Добавление содержимого: включайте окружающий XML-контекст, достаточный для однозначной идентификации.

Параметры
  • contentany
  • expected_replacementsnumber
  • file_pathstringобязательный
  • new_stringstring
  • old_stringstring
  • optionsobject
  • originenum
  • rangestring
force_terminate

Принудительно завершает активный сеанс терминала. Эту команду можно вызывать как «DC: ...» или «use Desktop Commander to ...» в вашем запросе.

Параметры
  • pidnumberобязательный
get_configтолько чтение

Получает полную конфигурацию сервера в формате JSON. Конфиг содержит поля: - blockedCommands (массив заблокированных shell-команд) - defaultShell (оболочка для команд) - allowedDirectories (пути, к которым сервер имеет доступ) - fileReadLineLimit (максимум строк для read_file, по умолчанию 1000) - fileWriteLineLimit (максимум строк на один вызов write_file, по умолчанию 50) - telemetryEnabled (булево значение для включения/отключения телеметрии) - currentClient (информация о текущем подключённом MCP-клиенте) - clientHistory (история всех подключавшихся клиентов) - version (версия DesktopCommander) - systemInfo (информация об операционной системе и окружении) Эту команду можно вызывать как «DC: ...» или «use Desktop Commander to ...» в ваших инструкциях.

Параметры
  • originenum
get_file_infoтолько чтение

Получает подробные метаданные о файле или каталоге, включая: - размер - время создания - время последнего изменения - разрешения - тип - lineCount (для текстовых файлов) - lastLine (индекс последней строки, начиная с нуля, для текстовых файлов) - appendPosition (номер строки для добавления, для текстовых файлов) - sheets (для файлов Excel — массив {name, rowCount, colCount}) Работает только в разрешённых каталогах. ВАЖНО: Всегда используйте абсолютные пути для надёжности. Пути автоматически нормализуются независимо от направления слешей. 🐳 DOCKER: Отдавайте предпочтение путям в смонтированных каталогах: /home/ubuntu. Когда пользователи спрашивают о расположении файлов, сначала проверяйте эти смонтированные пути. Относительные пути могут не сработать, так как они зависят от текущей рабочей директории. Тильда-пути (~/...) могут работать не во всех контекстах. Если пользователь явно не запрашивает относительные пути, используйте абсолютные пути. Эту команду можно упоминать как "DC: ..." или "use Desktop Commander to ..." в ваших инструкциях.

Параметры
  • pathstringобязательный
get_more_search_resultsтолько чтение

Получает больше результатов из активного поиска с постраничной навигацией на основе смещения. Поддерживает частичное чтение результатов с помощью: - 'offset' (индекс начала результатов, по умолчанию: 0) * Положительное: начать с результата N (индексация с 0) * Отрицательное: прочитать последние N результатов с конца (поведение «хвоста») - 'length' (максимальное количество результатов для чтения, по умолчанию: 100) * Используется с положительными смещениями для чтения диапазона * Игнорируется, когда смещение отрицательное (читаются все запрошенные хвостовые результаты) Примеры: - offset: 0, length: 100 → Первые 100 результатов - offset: 200, length: 50 → Результаты 200–249 - offset: -20 → Последние 20 результатов - offset: -5, length: 10 → Последние 5 результатов (length игнорируется) Возвращает только результаты в указанном диапазоне вместе со статусом поиска. Работает как read_process_output — вызывайте этот инструмент повторно, чтобы получать постепенные результаты из поиска, запущенного с помощью start_search. Эту команду можно указывать как «DC: ...» или «используй Desktop Commander, чтобы ...» в ваших инструкциях.

Параметры
  • lengthnumber
  • offsetnumber
  • sessionIdstringобязательный
get_promptsтолько чтение

Получает конкретное приветственное приглашение Desktop Commander по ID и выполняет его. УПРОЩЁННАЯ НАСТРОЙКА V2: Этот инструмент поддерживает только прямой поиск приглашений. Система приветствия предлагает 5 вариантов в виде простого нумерованного списка: 1. Упорядочить папку "Загрузки" (promptId: 'onb2_01') 2. Объяснить кодовую базу или репозиторий (promptId: 'onb2_02') 3. Создать организованную базу знаний (promptId: 'onb2_03') 4. Проанализировать файл данных (promptId: 'onb2_04') 5. Проверить состояние и ресурсы системы (promptId: 'onb2_05') ИСПОЛЬЗОВАНИЕ: Когда пользователь говорит "1", "2", "3", "4" или "5" из приветствия: - "1" → get_prompts(action='get_prompt', promptId='onb2_01') - "2" → get_prompts(action='get_prompt', promptId='onb2_02') - "3" → get_prompts(action='get_prompt', promptId='onb2_03') - "4" → get_prompts(action='get_prompt', promptId='onb2_04') - "5" → get_prompts(action='get_prompt', promptId='onb2_05') Содержимое приглашения будет внедрено, и выполнение начнётся немедленно. Эту команду можно использовать как "DC: ..." или "используй Desktop Commander, чтобы ..."

Параметры
  • actionenumобязательный
  • promptIdstringобязательный
get_recent_tool_callsтолько чтение

Get recent local tool call history with arguments and outputs. Returns a chronological list of recent calls loaded from the local history file. Useful for: - Onboarding new chats about work already done - Recovering context after chat history loss - Debugging tool call sequences Note: Does not track its own calls or track_ui_event. History is persisted locally in tool-history.jsonl, keeps up to the last 1000 calls in memory, and trims older on-disk history. Stored outputs over 4 KiB are replaced with an omission marker. This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.

Параметры
  • maxResultsnumber
  • sincestring
  • toolNamestring
get_usage_statsтолько чтение

Получает статистику использования для отладки и анализа. Возвращает сводку по использованию инструментов, частоту успешных/неудачных вызовов и показатели производительности. В инструкциях на эту команду можно ссылаться как "DC: ..." или "use Desktop Commander to ...".

Параметры

Без параметров.

give_feedback_to_desktop_commanderвнешний мир

Открывает форму обратной связи в браузере, чтобы оставить отзыв о Desktop Commander. ВАЖНО: Этот инструмент просто открывает форму обратной связи — предварительное заполнение недоступно. Пользователь заполнит форму вручную в своём браузере. РАБОЧИЙ ПРОЦЕСС: 1. Когда пользователь соглашается оставить отзыв, просто вызовите этот инструмент сразу 2. Не нужно задавать вопросы или собирать информацию 3. Инструмент открывает форму, в которой автоматически предзаполнена только статистика использования: - tool_call_count: Количество выполненных ими команд - days_using: Сколько дней они пользуются Desktop Commander - platform: Их операционная система (Mac/Windows/Linux) - client_id: Аналитический идентификатор Все вопросы опроса будут отвечены напрямую в форме: - Должность и уровень технической подготовки - URL компании для контекста отрасли - Другие AI-инструменты, которые они используют - Главное преимущество Desktop Commander - Как они обычно его используют - Вероятность рекомендации (0-10) - Заинтересованность в участии в исследовании - Электронная почта и любые дополнительные отзывы ПРИМЕР ВЗАИМОДЕЙСТВИЯ: Пользователь: «да, я оставлю отзыв» Claude: «Отлично! Открываю форму обратной связи для вас.» [сразу вызывает инструмент] Параметры не нужны — просто вызовите инструмент, чтобы открыть форму. На эту команду можно ссылаться как на «DC: ...» или «используй Desktop ...»

Параметры

Без параметров.

interact_with_processвнешний мир

Отправляет ввод запущенному процессу и автоматически получает ответ. КРИТИЧЕСКИ ВАЖНО: ЭТО ОСНОВНОЙ ИНСТРУМЕНТ ДЛЯ ВСЕГО ЛОКАЛЬНОГО АНАЛИЗА ФАЙЛОВ Для ЛЮБОГО локального анализа файлов (CSV, JSON, обработка данных) ВСЕГДА используйте этот инструмент вместо инструмента анализа. Инструмент анализа НЕ МОЖЕТ получить доступ к локальным файлам и ВЫЗОВЕТ ОШИБКУ - используйте процессы для ВСЕЙ работы с файлами. ПРИОРИТЕТНЫЙ ПОРЯДОК АНАЛИЗА ФАЙЛОВ (ОБЯЗАТЕЛЬНО): 1. ВСЕГДА В ПЕРВУЮ ОЧЕРЕДЬ: Используйте этот инструмент (start_process + interact_with_process) для локального анализа данных 2. АЛЬТЕРНАТИВА: Используйте инструменты командной строки (cut, awk, grep) для быстрой обработки3. НИ В КОЕМ СЛУЧАЕ: Не используйте инструмент анализа для доступа к локальным файлам (ЭТО ВЫЗОВЕТ ОШИБКУ) ОБЯЗАТЕЛЬНЫЙ ИНТЕРАКТИВНЫЙ РАБОЧИЙ ПРОЦЕСС ДЛЯ АНАЛИЗА ФАЙЛОВ: 1. Запустите REPL: start_process("python3 -i") 2. Загрузите библиотеки: interact_with_process(pid, "import pandas as pd, numpy as np") 3. Прочитайте файл: interact_with_process(pid, "df = pd.read_csv('/absolute/path/file.csv')") 4. Проанализируйте: interact_with_process(pid, "print(df.describe())") 5. Продолжайте: interact_with_process(pid, "df.groupby('column').size()") РАБОЧИЕ ПРОЦЕССЫ ОБРАБОТКИ БИНАРНЫХ ФАЙЛОВ: Используйте подходящие библиотеки Python (PyPDF2, pandas, docx2txt и т.д.) или инструменты командной строки для анализа бинарных файлов. УМНОЕ ОБНАРУЖЕНИЕ: - Автоматически ожидает приглашение REPL (>>>, > и т.д.) - Обнаруживает ошибки и состояния завершения - Ранний выход предотвращает задержки по тайм-ауту - Чистое форматирование вывода (удаляет приглашения)

Параметры
  • inputstringобязательный
  • pidnumberобязательный
  • timeout_msnumber
  • verbose_timingboolean
  • wait_for_promptboolean
kill_process

Завершает работающий процесс по PID. Используйте с осторожностью, так как это принудительно завершит указанный процесс. На эту команду ссылаются как "DC: ..." или "use Desktop Commander to ..." в ваших инструкциях.

Параметры
  • pidnumberобязательный
list_directoryтолько чтение

Получает подробный список всех файлов и каталогов по указанному пути. Используйте этот инструмент вместо 'execute_command' с командами ls/dir. Результаты различают файлы и каталоги с помощью префиксов [FILE] и [DIR]. Поддерживает рекурсивное перечисление с параметром 'depth' (по умолчанию: 2): - depth=1: Только непосредственное содержимое каталога - depth=2: Содержимое плюс один уровень подкаталогов - depth=3+: Несколько уровней вглубь ЗАЩИТА ОТ ПЕРЕПОЛНЕНИЯ КОНТЕКСТА: - В каталоге верхнего уровня показываются ВСЕ элементы - Вложенные каталоги ограничены максимум 100 элементами на каталог - Когда во вложенном каталоге более 100 элементов, вы увидите предупреждение: [WARNING] node_modules: 500 items hidden (showing first 100 of 600 total) - Это предотвращает перегрузку контекста большими каталогами, такими как node_modules Результаты показывают полные относительные пути от корневого каталога, который просматривается. Пример вывода с depth=2: [DIR] src [FILE] src/index.ts [DIR] src/tools [FILE] src/tools/filesystem.ts Если каталог недоступен, будет показано [DENIED]. Если путь не существует, будет показано [NOT_FOUND]. Работает только в разрешённых каталогах. ВАЖНО: Всегда используйте абсолютные пути для надёжности. Пути автоматически нормализуются независимо от направления слешей. 🐳 DOCKER: Предпочитайте пути в пределах разрешённых каталогов.

Параметры
  • depthnumber
  • originenum
  • pathstringобязательный
list_processesтолько чтение

Выводит список всех запущенных процессов. Возвращает информацию о процессах, включая PID, имя команды, загрузку ЦП и объём используемой памяти. Эту команду можно вызывать как "DC: ..." или "use Desktop Commander to ..." в ваших инструкциях.

Параметры

Без параметров.

list_searchesтолько чтение

Перечисляет все активные поиски. Показывает идентификаторы поисков, типы поисков, шаблоны, статус и время выполнения. Аналогично list_sessions для терминальных процессов. Полезно для управления несколькими одновременными поисками. В инструкциях эту команду обозначают как «DC: ...» или «use Desktop Commander to ...».

Параметры

Без параметров.

list_sessionsтолько чтение

Выводит список всех активных сессий терминала. Показывает статус сессии, включая: - PID: Идентификатор процесса- Blocked: Ожидает ли сессия ввода - Runtime: Как долго сессия работает ОТЛАДКА REPL: - "Blocked: true" часто означает, что REPL ожидает ввода - Используйте это, чтобы проверить, что сессии запущены, перед отправкой ввода - Большое время работы при статусе Blocked может указывать на зависший процесс Эту команду можно указывать как "DC: ..." или "используйте Desktop Commander для ..." в ваших инструкциях.

Параметры

Без параметров.

move_file

Перемещает или переименовывает файлы и каталоги. Может перемещать файлы между каталогами и переименовывать их за одну операцию. Исходный и конечный пути должны находиться в разрешённых каталогах. ВАЖНО: Для надёжности всегда используйте абсолютные пути. Пути автоматически нормализуются независимо от направления слеша. 🐳 DOCKER: Предпочитайте пути внутри смонтированных каталогов: /home/ubuntu. Когда пользователи спрашивают о расположении файлов, сначала проверяйте эти смонтированные пути. Относительные пути могут не сработать, так как они зависят от текущей рабочей директории. Пути с тильдой (~/...) могут не работать во всех контекстах. Если пользователь явно не запрашивает относительные пути, используйте абсолютные пути. Эту команду можно указывать как "DC: ..." или "используйте Desktop Commander, чтобы ..." в ваших инструкциях.

Параметры
  • destinationstringобязательный
  • sourcestringобязательный
read_fileтолько чтениевнешний мир

Читает содержимое файлов и URL. Читает PDF-файлы и извлекает содержимое в формате Markdown и изображения. Используй этот инструмент вместо 'execute_command' с cat/type для просмотра файлов. Поддерживает частичное чтение файлов с помощью: - 'offset' (начальная строка, по умолчанию: 0) * Положительное: начать со строки N (индексация с 0) * Отрицательное: прочитать последние N строк с конца (как tail) - 'length' (максимальное количество строк, по умолчанию: задаётся настройкой 'fileReadLineLimit', изначально 1000) * Используется с положительным offset для чтения диапазона * Игнорируется, когда offset отрицательный (читаются все запрошенные хвостовые строки) Примеры: - offset: 0, length: 10 → Первые 10 строк - offset: 100, length: 5 → Строки 100-104 - offset: -20 → Последние 20 строк - offset: -5, length: 10 → Последние 5 строк (length игнорируется) Оптимизация производительности: - Для больших файлов с отрицательным offset используется обратное чтение для эффективности - Для больших файлов с большим положительным offset применяется оценка по байтам - Для маленьких файлов используется быстрое построчное чтение (readline) При чтении из файловой системы работает только в разрешённых каталогах. Может получать содержимое по URL, когда параметр isUrl установлен в true (URL всегда читаются полностью, независимо от offset/length). ОБРАБОТКА ФОРМАТОВ (по расширению): - Текст: использует offset/length для построчной разбивки на страницы

Параметры
  • isUrlboolean
  • lengthnumber
  • offsetnumber
  • optionsobject
  • originenum
  • pathstringобязательный
  • rangestring
  • sheetstring
read_multiple_filesтолько чтение

Читает содержимое нескольких файлов одновременно. Содержимое каждого файла возвращается с его путём в качестве ссылки. Обрабатывает текстовые файлы как обычно и отображает изображения как просматриваемый контент. Распознаваемые типы изображений: PNG, JPEG, GIF, WebP. Сбои при чтении отдельных файлов не прерывают всю операцию. Работает только в разрешённых директориях. ВАЖНО: Всегда используйте абсолютные пути для надёжности. Пути автоматически нормализуются независимо от направления слешей. 🐳 DOCKER: Предпочитайте пути внутри смонтированных директорий: /home/ubuntu. Когда пользователи спрашивают о расположении файлов, сначала проверяйте эти смонтированные пути. Относительные пути могут давать сбой, так как зависят от текущей рабочей директории. Пути с тильдой (~/...) могут не работать во всех контекстах. Если пользователь явно не запрашивает относительные пути, используйте абсолютные. Эту команду можно обозначать как «DC: ...» или «используйте Desktop Commander, чтобы ...» в ваших инструкциях.

Параметры
  • pathsstring[]обязательный
read_process_outputтолько чтение

Читает вывод запущенного процесса с поддержкой постраничного просмотра, как у файла. Поддерживает частичное чтение вывода с параметрами offset и length (как read_file): - 'offset' (начальная строка, по умолчанию: 0) * offset=0: читает НОВЫЙ вывод с момента последнего чтения (по умолчанию, как в старом поведении) * Положительный: читает с абсолютной позиции строки * Отрицательный: читает последние N строк с конца (поведение tail) - 'length' (максимальное количество строк для чтения, по умолчанию: настраивается через параметр 'fileReadLineLimit') Примеры: - offset: 0, length: 100 → первые 100 НОВЫХ строк с момента последнего чтения - offset: 0 → все новые строки (с учётом ограничения из конфигурации) - offset: 500, length: 50 → строки 500-549 (абсолютная позиция) - offset: -20 → последние 20 строк (tail) - offset: -50, length: 10 → начать за 50 строк от конца, прочитать 10 строк ЗАЩИТА ВЫВОДА: - Использует тот же fileReadLineLimit, что и read_file (по умолчанию: 1000 строк) - Возвращает статус вида: [Reading 100 lines from line 0 (total: 5000 lines, 4900 remaining)] - Предотвращает переполнение контекста из-за многословных процессов УМНЫЕ ВОЗМОЖНОСТИ: - При offset=0 ожидает поступления нового вывода до истечения timeout_ms - Обнаруживает приглашения REPL и завершение процесса - Показывает состояние процесса (ожидание ввода, завершён и т.д.) СОСТОЯНИЯ ОБНАРУЖЕНИЯ: Процесс ожидает ввода (готов к interact_with_process) Процесс завершён

Параметры
  • lengthnumber
  • offsetnumber
  • pidnumberобязательный
  • timeout_msnumber
  • verbose_timingboolean
set_config_value

Устанавливает конкретное значение конфигурации по ключу. ПРЕДУПРЕЖДЕНИЕ: Следует использовать в отдельном чате, отдельно от файловых операций и выполнения команд, чтобы предотвратить проблемы безопасности. Ключи конфигурации включают: - blockedCommands (array) - defaultShell (string) - allowedDirectories (array of paths) - fileReadLineLimit (number, макс. строк для read_file) - fileWriteLineLimit (number, макс. строк за вызов write_file) - telemetryEnabled (boolean) ВАЖНО: Установка allowedDirectories в пустой массив ([]) предоставляет полный доступ ко всей файловой системе, независимо от операционной системы. Эту команду можно указывать как «DC: ...» или «use Desktop Commander to ...» в ваших инструкциях.

Параметры
  • keystringобязательный
  • originenum
  • valuestring | number | boolean | string[] | nullобязательный
start_processвнешний мир

Start a new terminal process with intelligent state detection. PRIMARY TOOL FOR FILE ANALYSIS AND DATA PROCESSING This is the ONLY correct tool for analyzing local files (CSV, JSON, logs, etc.). The analysis tool CANNOT access local files and WILL FAIL - always use processes for file-based work. CRITICAL RULE: For ANY local file work, ALWAYS use this tool + interact_with_process, NEVER use analysis/REPL tool. Running on Linux (Docker). Default shell: bash. 🐳 DOCKER CONTAINER ENVIRONMENT DETECTED: This Desktop Commander instance is running inside a Docker container. AVAILABLE MOUNTED DIRECTORIES: - /home/ubuntu (read-write) - Host folder: ubuntu IMPORTANT: When users ask about files, FIRST check mounted directories above. Files outside these paths will be lost when the container stops. Always suggest using mounted directories for file operations. PATH TRANSLATION IN DOCKER: When users provide host paths, translate to container paths: Windows: "C:\projects\data\file.txt" → "/home/projects/data/file.txt" Linux/Mac: "/Users/john/projects/data/file.txt" → "/home/projects/data/file.txt" Rules: Remove drive letter/user prefix, keep full folder structure, mount to /home/ NOTE: Desktop Commander Docker installer mounts host folders to /home/[folder-name]. Container: c7b50ecbc8a2 LINUX-SPECIFIC NOTES: - Package managers vary by distro: apt, yum, dnf, pacman, zypper - Python 3 might be 'python3' command, not 'python' - Standard Unix shell tools available (grep, awk, sed, etc.) - File permissions and ownership important for many operations - Systemd services common on modern distributions REQUIRED WORKFLOW FOR LOCAL FILES: 1. start_process("python3 -i") - Start Python REPL for data analysis 2. interact_with_process(pid, "import pandas as pd, numpy as np") 3. interact_with_process(pid, "df = pd.read_csv('/absolute/path/file.csv')") 4. interact_with_process(pid, "print(df.describe())") 5. Continue analysis with pandas, matplotlib, seaborn, etc. COMMON FILE ANALYSIS PATTERNS: • start_process("python3 -i") → Python REPL for data analysis (RECOMMENDED) • start_process("node -i") → Node.js REPL for JSON processing • start_process("node:local") → Node.js on MCP server (stateless, ES imports, all code in one call) • start_process("cut -d',' -f1 file.csv | sort | uniq -c") → Quick CSV analysis • start_process("wc -l /path/file.csv") → Line counting • start_process("head -10 /path/file.csv") → File preview BINARY FILE SUPPORT: For PDF, Excel, Word, archives, databases, and other binary formats, use process tools with appropriate libraries or command-line utilities. INTERACTIVE PROCESSES FOR DATA ANALYSIS: For code/calculations, use in this priority order: 1. start_process("python3 -i") - Python REPL (preferred) 2. start_process("node -i") - Node.js REPL (when Python unavailable) 3. start_process("node:local") - Node.js fallback (when node -i fails) 4. Use interact_with_process() to send commands 5. Use read_process_output() to get responses When Python is unavailable, prefer Node.js over shell for calculations. Node.js: Always use ES import syntax (import x from 'y'), not require(). SMART DETECTION: - Detects REPL prompts (>>>, >, $, etc.) - Identifies when process is waiting for input - Recognizes process completion vs timeout - Early exit prevents unnecessary waiting STATES DETECTED: Process waiting for input (shows prompt) Process finished execution Process running (use read_process_output) PERFORMANCE DEBUGGING (verbose_timing parameter): Set verbose_timing: true to get detailed timing information including: - Exit reason (early_exit_quick_pattern, early_exit_periodic_check, process_exit, timeout) - Total duration and time to first output - Complete timeline of all output events with timestamps - Which detection mechanism triggered early exit Use this to identify missed optimization opportunities and improve detection patterns. ALWAYS USE FOR: Local file analysis, CSV processing, data exploration, system commands NEVER USE ANALYSIS TOOL FOR: Local file access (analysis tool is browser-only and WILL FAIL) IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. 🐳 DOCKER: Prefer paths within mounted directories: /home/ubuntu. When users ask about file locations, check these mounted paths first. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths. This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.

Параметры
  • commandstringобязательный
  • originenum
  • shellstring
  • timeout_msnumberобязательный
  • verbose_timingboolean
start_searchтолько чтение

Запускает потоковый поиск, который может возвращать результаты постепенно. РУКОВОДСТВО ПО СТРАТЕГИИ ПОИСКА: Выбирайте правильный тип поиска в зависимости от того, что ищет пользователь: ИСПОЛЬЗУЙТЕ searchType="files", КОГДА: - Пользователь запрашивает конкретные файлы: «найди package.json», «найди конфигурационные файлы» - Шаблон похож на имя файла: «.js», «README.md», «test-.tsx» - Пользователь хочет найти файлы по имени/расширению: «все TypeScript-файлы», «Python-скрипты» - Ищет конфигурационные/установочные файлы: «.env», «dockerfile», «tsconfig.json» ИСПОЛЬЗУЙТЕ searchType="content", КОГДА: - Пользователь спрашивает о коде/логике: «логика аутентификации», «обработка ошибок», «API-вызовы» - Ищет функции/переменные: «функция getUserData», «хук useState» - Ищет текст/комментарии: «TODO-задачи», «FIXME-комментарии», «документация» - Находит паттерны в коде: «выражения console.log», «инструкции import» - Пользователь описывает функциональность: «компоненты, которые обрабатывают вход», «файлы с запросами к базе данных» КОГДА НЕ УВЕРЕНЫ ИЛИ ЗАПРОС ПОЛЬЗОВАТЕЛЯ НЕОДНОЗНАЧЕН: Запустите ДВА параллельных поиска — один по файлам и один по содержимому: Пример для неоднозначного запроса вроде «найти всё, что связано с аутентификацией»: 1. Запустите поиск по файлам: searchType="files", pattern="auth" 2. Одновременно запустите поиск по содержимому: searchType="content", pattern="authentication" 3. Покажите объединённые результаты: «Найдено 3 файла, связанных с auth, и 8 файлов, содержащих код аутентификации»

Параметры
  • contextLinesnumber
  • earlyTerminationboolean
  • filePatternstring
  • ignoreCaseboolean
  • includeHiddenboolean
  • literalSearchboolean
  • maxResultsnumber
  • originenum
  • pathstringобязательный
  • patternstringобязательный
  • searchTypeenum
  • timeout_msnumber
stop_search

Останавливает активный поиск. Останавливает фоновый процесс поиска корректно. Используйте эту команду, когда вы нашли то, что нужно, или если поиск занимает слишком много времени. Аналогично force_terminate для процессов в терминале. Результаты поиска будут доступны для чтения, пока они не будут автоматически удалены через 5 минут. Эту команду можно указать в запросе как "DC: ..." или "use Desktop Commander to ...".

Параметры
  • sessionIdstringобязательный
write_file

Записывает содержимое в файл или добавляет его к существующему. ВАЖНО: НЕ ИСПОЛЬЗУЙТЕ этот инструмент для создания PDF-файлов. Используйте 'write_pdf' для всех задач по созданию PDF. НЕ ИСПОЛЬЗУЙТЕ этот инструмент для редактирования DOCX-файлов. Вместо этого используйте 'edit_block' с old_string/new_string. Чтобы СОЗДАТЬ новый DOCX, используйте write_file с расширением .docx — текстовое содержимое с заголовками Markdown (#, ##, ###) преобразуется в стилизованные абзацы DOCX. РАЗБИВКА НА ЧАНКИ — СТАНДАРТНАЯ ПРАКТИКА: Всегда записывайте файлы частями не более 25-30 строк. Это нормальный, рекомендуемый способ записи файлов, а не экстренная мера. СТАНДАРТНЫЙ ПРОЦЕСС ДЛЯ ЛЮБОГО ФАЙЛА: 1. СНАЧАЛА → write_file(filePath, firstChunk, {mode: 'rewrite'}) [≤30 строк] 2. ЗАТЕМ → write_file(filePath, secondChunk, {mode: 'append'}) [≤30 строк] 3. ПРОДОЛЖАЙТЕ → write_file(filePath, nextChunk, {mode: 'append'}) [≤30 строк] ВСЕГДА РАЗБИВАЙТЕ НА ЧАНКИ УПРЕЖДАЮЩЕ — не ждите предупреждений о производительности! КОГДА РАЗБИВАТЬ НА ЧАНКИ (всегда действуйте упреждающе): 1. Любой файл, который, как ожидается, будет длиннее 25-30 строк 2. При записи нескольких файлов подряд 3. При создании документации, файлов с кодом или конфигурационных файлов ОБРАБОТКА ПРОДОЛЖЕНИЯ (запросы «Продолжить»): Если пользователь просит «Продолжить» после неполной операции: 1. Прочитайте файл, чтобы увидеть, что было успешно записано 2. Продолжите запись ТОЛЬКО оставшегося содержимого, используя {mode: 'append'} 3. Оставляйте размер чанков 25-30 строк ОБРАБОТКА ФОРМАТОВ (по расширению): - Текстовые файлы: строковое содержимое - Excel (.xlsx, .xls, .xlsm): JSON-массив двумерных массивов

Параметры
  • contentstringобязательный
  • modeenum
  • originenum
  • pathstringобязательный
write_pdf

Создаёт новый PDF-файл или изменяет существующий. ЭТО ЕДИНСТВЕННЫЙ ИНСТРУМЕНТ ДЛЯ СОЗДАНИЯ И ИЗМЕНЕНИЯ PDF-ФАЙЛОВ. ПРАВИЛА ИМЁН ФАЙЛОВ: - При создании нового PDF обязательно указывать 'outputPath', и он ДОЛЖЕН использовать новое уникальное имя файла (например, "result_01.pdf", "analysis_2025_01.pdf" и т.д.). РЕЖИМЫ: 1. СОЗДАТЬ НОВЫЙ PDF: - Передать строку Markdown как 'content'. write_pdf(path="doc.pdf", content="# Title\n\nBody text...") 2. ИЗМЕНИТЬ СУЩЕСТВУЮЩИЙ PDF: - Передать массив операций как 'content'. - НИКОГДА не перезаписывать исходный файл. - ВСЕГДА указывать новое имя файла в 'outputPath'. - После изменения показать пользователю путь к исходному файлу и путь к новому файлу. write_pdf(path="doc.pdf", content=[ { type: "delete", pageIndexes: [0, 2] }, { type: "insert", pageIndex: 1, markdown: "# New Page" } ]) ОПЕРАЦИИ: - delete: Удаляет страницы по индексу (начиная с 0). { type: "delete", pageIndexes: [0, 1, 5] } - insert: Добавляет страницы по указанному индексу (начиная с 0). { type: "insert", pageIndex: 0, markdown: "..." } { type: "insert", pageIndex: 5, sourcePdfPath: "/path/to/source.pdf" } РАЗРЫВЫ СТРАНИЦ: Чтобы принудительно вставить разрыв страницы, используйте HTML-элемент: <div style="page-break-before: always;"></div> Пример: "# Page 1\n\n<div style="page-break-before: always;"></div>\n\n# Page 2"

Параметры
  • contentstring | object[]обязательный
  • optionsobject
  • outputPathstring
  • pathstringобязательный

Похожие MCP-сервера

aybelatchane/mcp-server-terminal

aybelatchane/mcp-server-terminal

MCP-сервер для управления терминальными приложениями AI-агентами через модель состояния. Поддерживает создание сессий, ввод текста, нажатие клавиш и снимки экрана. Полезен разработчикам для автомат...

Rust19
x51xxx/copilot-mcp-server

x51xxx/copilot-mcp-server

MCP сервер для подключения GitHub Copilot CLI к вашему редактору или ИИ-ассистенту. Позволяет выполнять неинтерактивные команды, анализировать код с @ссылками на файлы, проводить ревью, рефакторинг и пакетную обработку задач. Полезен разработчикам для автоматизации CI и ускорения работы с кодом.

TypeScript5
FileToPDF/filetopdf-mcp

FileToPDF/filetopdf-mcp

MCP сервер для конвертации файлов, HTML и Markdown в PDF через естественный язык. Поддерживает DOCX, XLSX, PPTX, изображения и веб-страницы. Использует API FileToPDF (бесплатный ключ на 10 конверсий без регистрации). Подходит для создания счетов, отчетов и документации в любом MCP-клиенте (Claude...

TypeScript2
ferrislucas/iterm-mcp

ferrislucas/iterm-mcp

Разработчики: MCP сервер для iTerm дает модели полный контроль над терминалом - выполнение команд, чтение вывода, управление REPL. Эффективный расход токенов, простая интеграция. Делегируйте задачи и наблюдайте за работой.

TypeScript567
goklab/guardvibe

goklab/guardvibe

MCP-сервер для безопасности AI-кода. Детерминистично проверяет уязвимости, CVE и целостность репозитория в реальном времени. Полезен разработчикам с AI-агентами — предупреждает угрозы до появления кода.

TypeScript5
laszlopere/mcp-tmux

laszlopere/mcp-tmux

MCP-сервер для tmux: управляет сеансами, окнами, панелями, отправляет команды и читает вывод. Работает локально или по SSH. Подходит для парного программирования с ИИ — вы видите действия агента в реальном времени и можете перехватить управление. Полезен разработчикам.

Python4
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин