MCP Shell Server

MCP Shell Server

一个安全的服务器,它实现了模型上下文协议(MCP),以支持对授权的 shell 命令进行受控执行,并支持标准输入 (stdin)。

远程shell执行
访问服务器

README

MCP Shell 服务器

codecov smithery badge

一个安全的 shell 命令执行服务器,实现了模型上下文协议 (MCP)。 该服务器允许远程执行授权的 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_COMMANDS 或 ALLOWED_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": "命令输出",
    "stderr": "",
    "status": 0,
    "execution_time": 0.123
}

错误响应:

{
    "error": "不允许的命令: rm",
    "status": 1,
    "stdout": "",
    "stderr": "不允许的命令: 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 文件

推荐服务器

e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
AIO-MCP Server

AIO-MCP Server

🚀 集成了 AI 搜索、RAG 和多服务(GitLab/Jira/Confluence/YouTube)的一体化 MCP 服务器,旨在增强 AI 驱动的开发工作流程。来自 Folk。

精选
本地
https://github.com/Streen9/react-mcp

https://github.com/Streen9/react-mcp

react-mcp 与 Claude Desktop 集成,能够根据用户提示创建和修改 React 应用程序。

精选
本地
any-chat-completions-mcp

any-chat-completions-mcp

将 Claude 与任何 OpenAI SDK 兼容的聊天完成 API 集成 - OpenAI、Perplexity、Groq、xAI、PyroPrompts 等。

精选
Exa MCP Server

Exa MCP Server

一个模型上下文协议服务器,它使像 Claude 这样的人工智能助手能够以安全和受控的方式,使用 Exa AI 搜索 API 执行实时网络搜索。

精选
MySQL MCP Server

MySQL MCP Server

允许人工智能助手通过受控界面列出表格、读取数据和执行 SQL 查询,从而使数据库探索和分析更安全、更有条理。

精选
browser-use MCP server

browser-use MCP server

一个由人工智能驱动的浏览器自动化服务器,它实现了模型上下文协议,从而能够使用自然语言控制网页浏览器,以执行诸如导航、表单填写和视觉交互等任务。

精选
mcp-codex-keeper

mcp-codex-keeper

作为开发知识的守护者,为 AI 助手提供精心策划的最新文档和最佳实践访问权限。

精选
OpenRouter MCP Server

OpenRouter MCP Server

提供与 OpenRouter.ai 的集成,允许通过统一的界面访问各种 AI 模型。

精选
Supabase MCP Server

Supabase MCP Server

通过提供数据库管理、SQL查询执行和Supabase管理API访问工具,并内置安全控制,使Cursor和Windsurf能够安全地与Supabase数据库交互。

精选