mcp-shell-server
一个实现了模型上下文协议(MCP)的安全 shell 命令执行服务器。该服务器允许远程执行白名单中的 shell 命令,并支持标准输入(stdin)。
Tools
shell_execute
Execute a shell command Allowed commands: grep, find, echo, cat, ls
README
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
# 或者使用别名
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": "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
}
安全性
该服务器实现了以下安全措施:
- 命令白名单: 仅允许执行显式允许的命令
- Shell 操作符验证: shell 操作符 (;, &&, ||, |) 之后的命令也会根据白名单进行验证
- 无 Shell 注入: 命令直接执行,无需 shell 解释
开发
设置开发环境
- 克隆仓库
git clone https://github.com/yourusername/mcp-shell-server.git
cd mcp-shell-server
- 安装依赖项,包括测试需求
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
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
mermaid-mcp-server
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。
Jira-Context-MCP
MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

Linear MCP Server
一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。
VirusTotal MCP Server
一个用于查询 VirusTotal API 的 MCP 服务器。该服务器提供扫描 URL、分析文件哈希和检索 IP 地址报告的工具。

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