article
README
🚀 MCP Shell Server
MCP Shell Server是一个安全的命令执行服务器,实现了模型上下文协议(MCP)。它允许远程执行经过批准的shell命令,还支持通过stdin传递输入,为用户提供了安全且灵活的命令执行环境。
🚀 快速开始
启动服务器
ALLOW_COMMANDS="ls,cat,echo" uvx mcp-shell-server
# 或使用别名
ALLOWED_COMMANDS="ls ,echo, cat" uvx mcp-shell-server
ALLOW_COMMANDS(或其别名 ALLOWED_COMMANDS)环境变量指定允许执行的命令。命令之间用逗号分隔,可选空格。
ALLOW_COMMANDS的有效格式:
ALLOW_COMMANDS="ls,cat,echo" # 基本格式
ALLOWED_COMMANDS="ls ,echo, cat" # 包含空格的格式
请求示例
{
"id": "string",
"method": "shell",
"params": {
"command": "string"
}
}
✨ 主要特性
- 安全命令执行:仅允许批准的命令执行。
- 标准输入支持:通过stdin传递输入到命令。
- 全面输出:返回stdout、stderr、退出状态和执行时间。
- Shell操作符安全性:在shell操作符(; , &&, ||, |)之后验证命令。
- 超时控制:设置命令的最大执行时间。
📦 安装指南
本地版本安装
pip install mcp-shell-server
💻 使用示例
基础用法
# 启动服务器并指定允许的命令
ALLOW_COMMANDS="ls,cat,echo" uvx mcp-shell-server
高级用法
# 使用别名指定允许的命令
ALLOWED_COMMANDS="ls ,echo, cat" uvx mcp-shell-server
📚 详细文档
MCP客户端配置在Claude.app中
发布版本
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"
}
}
}
}
安全注意事项
- 所有命令执行都在受控环境中进行。
- 禁止危险的系统调用和文件操作。
🔧 技术细节
开发环境设置
- Python 3.11或更高版本
- mcp>=1.1.0
📄 许可证
本项目采用MIT License,详见LICENSE文件。
Scan to contact