mcp-shell-server

mcp-shell-server

一个实现了模型上下文协议(MCP)的安全 shell 命令执行服务器。该服务器允许远程执行白名单中的 shell 命令,并支持标准输入(stdin)。

操作系统自动化
Category.security-and-iam
开发者工具
访问服务器

Tools

shell_execute

Execute a shell command Allowed commands: grep, find, echo, cat, ls

README

MCP Shell 服务器

codecov

一个实现了模型上下文协议 (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
# 或者使用别名
ALLOWED_COMMANDS="ls,cat,echo" uvx mcp-shell-server

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

ALLOW_COMMANDSALLOWED_COMMANDS 的有效格式:

ALLOW_COMMANDS="ls,cat,echo"          # 基本格式
ALLOWED_COMMANDS="ls ,echo, cat"      # 带有空格 (使用别名)
ALLOW_COMMANDS="ls,  cat  , echo"     # 多个空格

请求格式

# 基本命令执行
{
    "command": ["ls", "-l", "/tmp"]
}

# 带有 stdin 输入的命令
{
    "command": ["cat"],
    "stdin": "Hello, World!"
}

# 带有超时的命令
{
    "command": ["long-running-process"],
    "timeout": 30  # 最大执行时间,以秒为单位
}

# 带有工作目录和超时的命令
{
    "command": ["grep", "-r", "pattern"],
    "directory": "/path/to/search",
    "timeout": 60
}

响应格式

成功响应:

{
    "stdout": "command output",
    "stderr": "",
    "status": 0,
    "execution_time": 0.123
}

错误响应:

{
    "error": "Command not allowed: rm",
    "status": 1,
    "stdout": "",
    "stderr": "Command not allowed: 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 参考

请求参数

字段 类型 必需 描述
command string[] 命令及其参数,作为数组元素
stdin string 要传递给命令的输入
directory string 命令执行的工作目录
timeout integer 最大执行时间,以秒为单位

响应字段

字段 类型 描述
stdout string 来自命令的标准输出
stderr string 来自命令的标准错误输出
status integer 退出状态码
execution_time float 执行所花费的时间(以秒为单位)
error string 错误消息(仅在失败时出现)

要求

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

许可证

MIT 许可证 - 有关详细信息,请参见 LICENSE 文件

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

精选
TypeScript
Linear MCP Server

Linear MCP Server

一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

精选
JavaScript
VirusTotal MCP Server

VirusTotal MCP Server

一个用于查询 VirusTotal API 的 MCP 服务器。该服务器提供扫描 URL、分析文件哈希和检索 IP 地址报告的工具。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python