MCP Shell Server

MCP Shell 服务器

用于执行实现模型上下文协议 (MCP) 的 shell 命令的安全服务器。该服务器允许远程执行授权的 shell 命令,并支持通过 stdin 输入。

特征

  • 安全命令执行:只有授权的命令才能执行
  • 标准输入支持:通过 stdin 将输入传递给命令
  • 综合输出:返回 stdout、stderr、退出代码和执行时间
  • 使用 Shell 运算符的安全性:验证 Shell 运算符(;、&&、||、|)后的命令
  • 超时控制:设置命令的最大执行时间

在 Claude.app 中配置 MCP 客户端

已发布版本

code ~/Library/Application\ Support/Claude/claude_desktop_config.json
{ "mcpServers": { "shell": { "command": "uvx", "args": [ "mcp-shell-server" ], "env": { "ALLOW_COMMANDS": "ls,cat,pwd,grep,wc,touch,find" } }, } }

本地版本

设置

code ~/Library/Application\ Support/Claude/claude_desktop_config.json
{ "mcpServers": { "shell": { "command": "uv", "args": [ "--directory", ".", "run", "mcp-shell-server" ], "env": { "ALLOW_COMMANDS": "ls,cat,pwd,grep,wc,touch,find" } }, } }

安装

pip install mcp-shell-server

使用

启动服务器

ALLOW_COMMANDS="ls,cat,echo" uvx mcp-shell-server # Ou usando o alias ALLOWED_COMMANDS="ls,cat,echo" uvx mcp-shell-server

ALLOW_COMMANDS环境变量(或其别名ALLOWED_COMMANDS )指定可以执行哪些命令。命令可以用逗号分隔,周围可以有空格。

ALLOW_COMMANDS 或 ALLOWED_COMMANDS 的有效格式:

ALLOW_COMMANDS="ls,cat,echo" # Formato básico ALLOWED_COMMANDS="ls ,echo, cat" # Com espaços (usando alias) ALLOW_COMMANDS="ls, cat , echo" # Múltiplos espaços

请求格式

# Execução básica de comando { "command": ["ls", "-l", "/tmp"] } # Comando com entrada stdin { "command": ["cat"], "stdin": "Hello, World!" } # Comando com timeout { "command": ["long-running-process"], "timeout": 30 # Tempo máximo de execução em segundos } # Comando com diretório de trabalho e timeout { "command": ["grep", "-r", "pattern"], "directory": "/path/to/search", "timeout": 60 }

响应格式

成功响应:

{ "stdout": "saída do comando", "stderr": "", "status": 0, "execution_time": 0.123 }

错误响应:

{ "error": "Comando não permitido: rm", "status": 1, "stdout": "", "stderr": "Comando não permitido: rm", "execution_time": 0 }

安全

该服务器实施了多项安全措施:

  1. 命令白名单:只有明确允许的命令才能执行
  2. Shell 运算符验证:shell 运算符(;、&&、||、|)后的命令也会根据白名单进行验证
  3. 无 Shell 注入:命令直接执行,无需 Shell 解释

发展

设置开发环境

  1. 克隆存储库
git clone https://github.com/yourusername/mcp-shell-server.git cd mcp-shell-server
  1. 安装依赖项,包括测试要求
pip install -e ".[test]"

运行测试

pytest

API 参考

请求参数

场地类型强制的描述
命令细绳[]是的命令及其参数作为数组元素
标准输入细绳传递给命令的输入
目录细绳执行命令的工作目录
暂停所有的最大执行时间(秒)

响应字段

场地类型描述
标准输出细绳命令的标准输出
标准错误细绳命令错误输出
地位所有的退出状态代码
执行时间漂浮执行所需的时间(以秒为单位)
错误细绳错误消息(仅在失败时显示)

要求

  • Python 3.11 或更高版本
  • mcp>=1.1.0

执照

MIT 许可证 - 详情请参阅许可证文件

ID: sx9bf448k1