zsh-tool — MCP-сервер для Claude Code: что делает и как установить
Запускает команды в нативном Zsh с поддержкой PTY и защитой от зависаний. Предотвращает ошибки кавычек и сбои сессий в терминале.
claude mcp add --env ALAN_DB_PATH=<ALAN_DB_PATH> --transport stdio zsh-tool -- uvx zsh-tool-mcpЧто делает zsh-tool
Стандартный вызов Bash в агентах часто ломается на кавычках и синтаксисе Zsh, заставляя тратить контекст на исправление ошибок. Этот сервер запускает процессы прямо в окружении Zsh. Режим PTY эмулирует псевдотерминал, поэтому агент может работать с интерактивными утилитами и передавать пароли в скрытые запросы.
Для долгих задач предусмотрено пошаговое выполнение с возвратом контроля через параметр yield_after. Терминал не блокирует диалог. Читать свежий вывод можно небольшими порциями через zsh_poll, не перегружая контекст сотнями строк. Зависшие процессы отсекает предохранитель NEVERHANG: если команда падает по тайм-ауту трижды за час, сервер временно блокирует её повторы на 5 минут.
История вызовов и статистика сохраняются в SQLite через модуль A.L.A.N. Без указания переменной ALAN_DB_PATH база данных не будет сохраняться между сессиями.
Какие задачи решает
- перехватить ввод паролей и интерактивные диалоги через PTY
- остановить зависшие команды предохранителем NEVERHANG
- читать только новые строки терминала через дельты
zsh_poll - выполнять скрипты без конфликта кавычек между Bash и Zsh
Примеры запросов агенту
- Выполни
pass insert mypassчерез PTY и передай пароль по запросу. - Запусти
pip install .с возвратом контроля через 5 секунд и читай логи черезzsh_poll. - Покажи текущие фоновые процессы командой
zsh_tasks.
Как установить zsh-tool
Командой платформы
claude mcp add --env ALAN_DB_PATH=<ALAN_DB_PATH> --transport stdio zsh-tool -- uvx zsh-tool-mcpВместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from zsh-tool-mcp <команда>
Командой платформы
codex mcp add zsh-tool --env ALAN_DB_PATH=<ALAN_DB_PATH> -- uvx zsh-tool-mcpВместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from zsh-tool-mcp <команда>
Файл настроек
{
"mcpServers": {
"zsh-tool": {
"command": "uvx",
"args": [
"zsh-tool-mcp"
],
"env": {
"ALAN_DB_PATH": "<ALAN_DB_PATH>"
}
}
}
}Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from zsh-tool-mcp <команда>
Файл настроек
{
"servers": {
"zsh-tool": {
"type": "stdio",
"command": "uvx",
"args": [
"zsh-tool-mcp"
],
"env": {
"ALAN_DB_PATH": "<ALAN_DB_PATH>"
}
}
}
}Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from zsh-tool-mcp <команда>
Командой платформы
gemini mcp add -e ALAN_DB_PATH=<ALAN_DB_PATH> zsh-tool uvx zsh-tool-mcpВместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from zsh-tool-mcp <команда>
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о zsh-tool
Как установить zsh-tool в Claude Code?
Выполните claude mcp add zsh-tool -- uvx zsh-tool-mcp. Чтобы сохранять базу данных A.L.A.N. между перезапусками, задайте путь к файлу: claude mcp add --env ALAN_DB_PATH=<ALAN_DB_PATH> --transport stdio zsh-tool -- uvx zsh-tool-mcp.
Что делает zsh-tool?
Предоставляет агенту среду Zsh с поддержкой псевдотерминала PTY и управлением фоновыми задачами. Сервер возвращает контроль во время долгих операций и изолирует зависающие вызовы.
Зачем в zsh-tool встроен модуль A.L.A.N.?
Он ведёт историю запусков, предупреждает о повторении сломанных команд, читает локальные man при частых сбоях и разделяет сетевые проблемы SSH от ошибок самой утилиты.