MCP-сервер для выполнения произвольных системных команд с настраиваемыми ограничениями. Запускает shell-команды, передаёт stdin, получает stdout/stderr. Поддерживает timeout и рабочую директорию.
# Claude Desktop — claude_desktop_config.json:
{ "mcpServers": { "commands": { "command": "npx", "args": ["-y", "mcp-server-commands"] } } }
# Claude Code (CLI):
claude mcp add commands -- npx -y mcp-server-commands
# OpenCode — ~/.config/opencode/opencode.json:
{ "mcp": { "commands": { "type": "local", "command": ["npx", "-y", "mcp-server-commands"] } } }
runProcessИнструмент runProcess запускает процессы на хост-машине. Есть два взаимоисключающих способа его вызова:
command_line (строка) — Выполняется через оболочку по умолчанию в системе (то же самое, что вводить в bash/fish/pwsh и т.д.). Все возможности оболочки, такие как конвейеры (пайпы), перенаправления и расширение переменных, работают.argv (массив строк) — Прямой вызов исполняемого файла. argv[0] — это исполняемый файл, остальные — аргументы. Без интерпретации оболочкой.Вы не можете указать оба параметра одновременно. Инструмент определяет, использовать ли оболочку, на основе того, какой параметр вы предоставили.
Если вы хотите, чтобы ваша модель использовала определенные оболочки в системе, я бы перечислил их в вашем системном промпте. Или, возможно, в инструкциях к инструментам, хотя модели, как правило, лучше обращают внимание на примеры в системном промпте.
Дайте мне знать, если столкнетесь с проблемами!
Инструменты предназначены для запросов от LLM. Claude Sonnet 3.5 интеллектуально использует run_process. И, начальные тесты показывают многообещающие результаты с Groq Desktop с MCP и моделями llama4.
На данный момент только одна команда для управления всеми!
run_process - запустить команду, например, hostname или ls -al или echo "hello world" и т.д.STDOUT и STDERR в виде текстаstdin позволяет вашей LLM:STDIN в команды типа fish, bash, zsh, pythoncat >> foo/bar.txt из текста в stdin[!WARNING] Будьте осторожны с тем, что просите этот сервер запустить! В приложении Claude Desktop используйте
Approve Once(неAllow for This Chat), чтобы вы могли просматривать каждую команду, используйтеDeny, если вы не доверяете команде. Права определяются пользователем, запускающим сервер. НЕ запускайте сsudo.
Промпты предназначены для включения пользователями в историю чата, например, через команды со слэшем в Zed (в его панели AI Chat)
run_process - сгенерировать сообщение-промпт с выводом команды
Для вашего сведения, это было в основном учебное упражнение... Я рассматриваю это как инструмент для вызова по запросу пользователя. Это изящный способ сказать, что это шаблон для запуска команды и передачи выходных данных модели!
Установить зависимости:
npm install
Собрать сервер:
npm run build
Для разработки с автоматической пересборкой:
npm run watch
Чтобы использовать с Claude Desktop, добавьте конфигурацию сервера:
На MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
На Windows: %APPDATA%/Claude/claude_desktop_config.json
Groq Desktop (бета, macOS) использует ~/Library/Application Support/groq-desktop-app/settings.json
Опубликовано в npm как mcp-server-commands с помощью этого workflow
{
"mcpServers": {
"mcp-server-commands": {
"command": "npx",
"args": ["mcp-server-commands"]
}
}
}
Убедитесь, что выполнили npm run build
{
"mcpServers": {
"mcp-server-commands": {
// работает благодаря shebang в index.js
"command": "/path/to/mcp-server-commands/build/index.js"
}
}
}
run_processs без двойной проверки.# ПРИМЕЧАНИЕ: обязательно проверьте варианты и размеры, чтобы модель помещалась в вашу VRAM и хорошо работала!
# Вероятно, лучшая на данный момент - [OpenHands LM](https://www.all-hands.dev/blog/introducing-openhands-lm-32b----a-strong-open-coding-agent-model)
ollama pull https://huggingface.co/lmstudio-community/openhands-lm-32b-v0.1-GGUF
# https://ollama.com/library/devstral
ollama pull devstral
# Qwen2.5-Coder умеет работать с инструментами, но вас придется убеждать
ollama pull qwen2.5-coder
Сервер реализован с использованием транспорта STDIO.
Для HTTP используйте mcpo для совместимого с OpenAPI веб-интерфейса сервера.
Это работает с Open-WebUI
uvx mcpo --port 3010 --api-key "supersecret" -- npx mcp-server-commands
# uvx запускает mcpo => mcpo запускает npx => npx запускает mcp-server-commands
# затем, mcpo мостит STDIO <=> HTTP
[!WARNING] Я кратко использовал
mcpoсopen-webui, убедитесь, что проверили его на предмет проблем с безопасностью.
Приложение Claude Desktop записывает логи в ~/Library/Logs/Claude/mcp-server-mcp-server-commands.log
По умолчанию логируются только важные сообщения (т.е. ошибки).
Если вы хотите видеть больше сообщений, добавьте --verbose в args при конфигурации сервера.
Кстати, логи записываются в STDERR, потому что именно этот поток Claude Desktop направляет в файлы логов.
В будущем я ожидаю, что форматированные сообщения логов будут передаваться через транспорт STDIO в MCP-клиент (примечание: не в приложение Claude Desktop).
Поскольку MCP-серверы общаются через stdio, отладка может быть сложной. Мы рекомендуем использовать MCP Inspector, который доступен как скрипт пакета:
npm run inspector
Inspector предоставит URL для доступа к инструментам отладки в вашем браузере.