MCP Shell Server

MCP Shell Server

site icon
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_COMMANDSALLOWED_COMMANDS环境变量设置。
  • 如何传递输入到命令?:通过请求中的stdin字段传递。
  • 如何设置命令执行超时?:通过请求中的timeout字段设置。

使用教程

使用依赖

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

安装教程

pip install mcp-shell-server

调试方式

  1. 启动服务器:
ALLOW_COMMANDS="ls,cat,echo" uvx mcp-shell-server
  1. 发送请求示例:
{
    "command": ["ls", "-l", "/tmp"]
}
  1. 检查响应:
{
    "stdout": "command output",
    "stderr": "",
    "status": 0,
    "execution_time": 0.123
}

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。