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 以安全模式启动,仅限于一组狭窄的只读工具白名单(lscatgrepfindheadtail 等)。你只需要一个配置文件来扩大或更改该策略。要完全不受限制地运行,你必须明确选择加入:

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)

响应包含 statusexit_codestdoutstderrcommandexecution_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):命令被解析为 shell AST,并且只接受单个、完全字面量的简单命令(不允许管道、列表、替换、重定向或通配符);其可执行文件必须在白名单中。解释器(bash/sh/python)即使被列入白名单也会被硬性拒绝,并且每个工具的策略默认拒绝:对于受管制的二进制文件(gitfindsorttar),只接受明确安全的标志,其他所有内容,包括未知或未来的逃生舱标志,都会被拒绝(git -c/configfind -exec/-flssort -o/--compress-programtar -I/-C)。Git 仅限于只读子命令。这是一个早期拒绝层,不是沙箱。

  • 不受限制:仅通过 MCP_SHELL_ALLOW_UNSAFE=true。完全访问;适合本地开发,否则很危险。

  • Docker:以非 root 用户运行,基于 Alpine。在生产环境中使用它。最好与操作系统沙箱(只读文件系统、删除能力)配合使用,作为纵深防御。


贡献

Fork、分支、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