
MCP Shell Server

2025.01.05
65
Python安全Shell命令执行远程命令执行开发效率
MCP Shell Server 是一个基于模型上下文协议(MCP)的安全Shell命令执行服务器。它允许远程执行白名单中的Shell命令,并支持标准输入(stdin)。该服务器提供了安全的命令执行环境,包括命令白名单验证、标准输入支持、全面的输出返回(包括stdout、stderr、退出状态和执行时间)、Shell操作符安全性验证以及超时控制等功能。
View on GitHub
Overview
基本能力
产品定位
MCP Shell Server 是一个安全Shell命令执行服务器,旨在通过MCP协议提供远程命令执行能力,同时确保执行环境的安全性。
核心功能
- 安全命令执行:仅允许执行白名单中的命令。
- 标准输入支持:可以通过stdin向命令传递输入。
- 全面输出:返回stdout、stderr、退出状态和执行时间。
- Shell操作符安全性:验证Shell操作符(;、&&、||、|)后的命令。
- 超时控制:可以设置命令的最大执行时间。
适用场景
- 远程执行受限的Shell命令。
- 需要安全执行环境的应用场景。
- 需要控制命令执行时间的自动化任务。
工具列表
- uvx:用于启动mcp-shell-server的命令行工具。
- pip:用于安装mcp-shell-server的Python包管理工具。
常见问题解答
- 如何设置允许的命令?:通过
ALLOW_COMMANDS
或ALLOWED_COMMANDS
环境变量设置。 - 如何传递输入到命令?:通过请求中的
stdin
字段传递。 - 如何设置命令执行超时?:通过请求中的
timeout
字段设置。
使用教程
使用依赖
- Python 3.11或更高版本。
- mcp>=1.1.0。
安装教程
pip install mcp-shell-server
调试方式
- 启动服务器:
ALLOW_COMMANDS="ls,cat,echo" uvx mcp-shell-server
- 发送请求示例:
{
"command": ["ls", "-l", "/tmp"]
}
- 检查响应:
{
"stdout": "command output",
"stderr": "",
"status": 0,
"execution_time": 0.123
}