Skip to main content
Glama
sonirico

mcp-shell

by sonirico

mcp-shell

Trust Score glama

MCP-сервер, который выполняет shell-команды. Ваша LLM получает инструмент; вы получаете контроль над тем, что выполняется и как.

Создан на основе mark3labs/mcp-go. Написан на Go.


Запуск

Docker (проще всего):

docker run -it --rm -v /tmp/mcp-workspace:/tmp/mcp-workspace sonirico/mcp-shell:latest

Из исходников:

git clone https://github.com/sonirico/mcp-shell && cd mcp-shell
make install
mcp-shell

Related MCP server: MCP Shell Server

Настройка

Безопасный режим включён по умолчанию. Без файла конфигурации mcp-shell запускается в безопасном режиме, ограниченном узким списком разрешённых утилит только для чтения (ls, cat, grep, find, head, tail, ...). Файл конфигурации нужен только для расширения или изменения этой политики. Чтобы работать полностью без ограничений, необходимо явно согласиться:

MCP_SHELL_ALLOW_UNSAFE=true mcp-shell   # disables all validation - do not use in production

Чтобы настроить политику, укажите YAML-конфиг:

export MCP_SHELL_SEC_CONFIG_FILE=/path/to/security.yaml
mcp-shell

Безопасный режим (рекомендуется) — без интерпретации shell, только список разрешённых исполняемых файлов:

security:
  enabled: true
  use_shell_execution: false
  allowed_executables:
    - ls
    - cat
    - grep
    - find
    - echo
  # WARNING: never add shell/language interpreters (bash, sh, python, perl,
  # ruby, node) or alias-capable tools (git) here - the interpreter executes
  # whatever it is handed, bypassing secure mode entirely. mcp-shell warns at
  # startup if it finds one.
  blocked_patterns:          # optional: restrict args on allowed commands
    - '(^|\s)remote\s+(-v|--verbose)(\s|$)'
  max_execution_time: 30s
  max_output_size: 1048576
  working_directory: /tmp/mcp-workspace
  audit_log: true

Устаревший режим — выполнение через shell, белый/чёрный список по строке команды (уязвим к инъекциям, если не осторожно):

security:
  enabled: true
  use_shell_execution: true
  allowed_commands: [ls, cat, grep, echo]
  blocked_patterns: ['rm\s+-rf', 'sudo\s+']
  max_execution_time: 30s
  audit_log: true

Подключение

Claude Desktop — добавьте в ваш MCP-конфиг:

{
  "mcpServers": {
    "shell": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "sonirico/mcp-shell:latest"],
      "env": { "MCP_SHELL_LOG_LEVEL": "info" }
    }
  }
}

Для пользовательского конфига смонтируйте файл и задайте переменную окружения:

{
  "command": "docker",
  "args": ["run", "--rm", "-i", "-v", "/path/to/security.yaml:/etc/mcp-shell/security.yaml", "-e", "MCP_SHELL_SEC_CONFIG_FILE=/etc/mcp-shell/security.yaml", "sonirico/mcp-shell:latest"]
}

API инструмента

Параметр

Тип

Описание

command

string

Команда shell для выполнения (обязательно)

base64

boolean

Кодировать stdout/stderr в base64 (по умолчанию: false)

Ответ включает status, exit_code, stdout, stderr, command, execution_time и опциональный security_info.


Переменные окружения

Переменная

Описание

MCP_SHELL_SEC_CONFIG_FILE

Путь к YAML-файлу безопасности (переопределяет встроенные безопасные настройки по умолчанию)

MCP_SHELL_ALLOW_UNSAFE

Установите true, чтобы отключить все проверки и работать без ограничений (по желанию)

MCP_SHELL_SERVER_NAME

Имя сервера (по умолчанию: "mcp-shell 🐚")

MCP_SHELL_LOG_LEVEL

debug, info, warn, error, fatal

MCP_SHELL_LOG_FORMAT

json, console

MCP_SHELL_LOG_OUTPUT

stdout, stderr, file


Разработка

make install dev-tools   # deps + goimports, golines
make fmt test lint
make docker-build       # build image locally
make release            # binary + docker image

Безопасность

  • По умолчанию: Безопасный режим, ограниченный узким списком разрешённых утилит только для чтения. Без интерпретаторов.

  • Безопасный режим (use_shell_execution: false): команда разбирается в AST shell, и принимается только одна полностью литеральная простая команда (без конвейеров, списков, подстановок, перенаправлений или глобов); её исполняемый файл должен быть в списке разрешённых. Интерпретаторы (bash/sh/python) жёстко запрещены, даже если они в списке разрешённых, а политики для отдельных инструментов по умолчанию запрещают: для управляемых бинарников (git, find, sort, tar) принимаются только явно безопасные флаги, а всё остальное, включая неизвестные или будущие флаги-лазейки, отклоняется (git -c/config, find -exec/-fls, sort -o/--compress-program, tar -I/-C). Git ограничен подкомандами только для чтения. Это уровень раннего отклонения, а не песочница.

  • Без ограничений: Только через MCP_SHELL_ALLOW_UNSAFE=true. Полный доступ; подходит для локальной разработки, опасно в других случаях.

  • Docker: Запускается от непривилегированного пользователя, на основе Alpine. Используйте в продакшене. Лучше всего сочетать с песочницей ОС (read-only ФС, сброшенные capabilities) для эшелонированной защиты.


Вклад

Сделайте форк, создайте ветку, выполните make fmt test, откройте PR.

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
<1hResponse time
7wRelease cycle
8Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    A secure and pluggable MCP server to run terminal commands on your local machine or cloud server — remotely, safely, and with LLMs or agentic clients.
  • A
    license
    Not graded
    quality
    F
    maintenance
    A secure MCP server for shell operations, terminal management, and process control, enabling AI assistants to safely execute commands and manage interactive sessions.
    143
    5
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Universal MCP server that wraps any CLI tool, enabling AI assistants to run commands via natural language.
    MIT

View all related MCP servers

Related MCP Connectors

  • Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.

  • MCP server for AI dialogue using various LLM models via AceDataCloud

  • MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sonirico/mcp-shell'

If you have feedback or need assistance with the MCP directory API, please join our Discord server