Shell MCP安全工具
一个安全的MCP服务器,用于执行列入白名单的shell命令,并具有资源和超时控制,专为与克劳德和其他与MCP兼容的大型语言模型集成而设计。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"shell": {
"args": [
"-y",
"@kevinwatt/shell-mcp"
],
"command": "npx"
}
}
}
可用工具 (20 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
shell_ls 1 个参数
List directory contents
该工具无需必填参数,直接调用即可
shell_cat 1 个参数
Concatenate and display file contents
该工具无需必填参数,直接调用即可
shell_pwd 1 个参数
Show current working directory
该工具无需必填参数,直接调用即可
shell_df 1 个参数
Show disk usage
该工具无需必填参数,直接调用即可
shell_echo 1 个参数
Display text
该工具无需必填参数,直接调用即可
shell_ps 1 个参数
Show process status
该工具无需必填参数,直接调用即可
shell_free 1 个参数
Show memory usage
该工具无需必填参数,直接调用即可
shell_uptime 1 个参数
Show system uptime
该工具无需必填参数,直接调用即可
shell_date 1 个参数
Show system date and time
该工具无需必填参数,直接调用即可
shell_grep 1 个参数
Search text patterns in files
该工具无需必填参数,直接调用即可
shell_w 1 个参数
Show who is logged on and what they are doing
该工具无需必填参数,直接调用即可
shell_whois 1 个参数
Query WHOIS domain registration information
该工具无需必填参数,直接调用即可
shell_find 1 个参数
Search for files in a directory hierarchy
该工具无需必填参数,直接调用即可
shell_netstat 1 个参数
Network connection information
该工具无需必填参数,直接调用即可
shell_lspci 1 个参数
List PCI devices
该工具无需必填参数,直接调用即可
shell_lsusb 1 个参数
List USB devices
该工具无需必填参数,直接调用即可
shell_dig 1 个参数
DNS lookup utility
该工具无需必填参数,直接调用即可
shell_nslookup 1 个参数
Query DNS records
该工具无需必填参数,直接调用即可
shell_ip 1 个参数
Show / manipulate routing, network devices, interfaces and tunnels
该工具无需必填参数,直接调用即可
shell_whereis 1 个参数
Locate the binary, source, and manual page files for a command
该工具无需必填参数,直接调用即可
服务介绍
shell-mcp
Shell 命令执行 MCP 服务器
一个为 LLMs 提供安全的 shell 命令执行能力的 MCP 服务器实现。
功能
- 安全执行:仅允许白名单中的命令和参数
- 资源控制:内存和 CPU 使用监控
- 超时控制:自动终止长时间运行的命令
- 大小限制:为了安全起见,限制输出大小
- MCP 集成:与 Claude 和其他兼容 MCP 的 LLMs 一起工作
安装
npm install @kevinwatt/shell-mcp
与 Dive Desktop 配置
- 在 Dive Desktop 中点击 "+ 添加 MCP 服务器"
- 复制并粘贴此配置:
{
"mcpServers": {
"shell": {
"command": "npx",
"args": [
"-y",
"@kevinwatt/shell-mcp"
]
}
}
}
工具文档
- shell_ls, shell_pwd, shell_df 等
- 执行白名单中的 shell 命令
- 输入:
command(字符串,必填): 要执行的命令args(数组,可选): 命令参数timeout(数字,可选): 执行超时时间(毫秒)
使用示例
让您的 LLM 执行:
"Show current directory using shell_pwd"
"List files using shell_ls with -l argument"
"Check disk usage using shell_df with -h argument"
手动启动
如果需要,可以手动启动服务器:
npx @kevinwatt/shell-mcp
要求
- Node.js 18+
- 兼容 MCP 的 LLM 服务
开发
# Install dependencies
npm install
# Watch mode
npm run watch
# Run tests
npm test
# Lint
npm run lint
许可证
MIT © Dewei Yen
关键词
- mcp
- shell
- 命令
- claude
- llm
- 自动化
可用命令
以下 shell 命令可用:
| 命令 | 描述 | 允许的参数 |
|---|---|---|
| ls | 列出目录内容 | -l, -a, -h, -R, --help, * |
| cat | 连接并显示文件内容 | -n, -b, --help, * |
| pwd | 显示当前工作目录 | None |
| df | 显示磁盘使用情况 | -h, -T, --help |
| echo | 显示文本 | 任意文本 |
| ps | 显示进程状态 | -e, -f, -u, --help |
| free | 显示内存使用情况 | -h, -m, -g, --help |
| uptime | 显示系统运行时间 | None |
| date | 显示系统日期和时间 | +%Y-%m-%d, +%H:%M:%S, --help |
| grep | 在文件中搜索文本模式 | -i, -v, -n, -r, -l, --color, * |
| w | 显示登录用户及其正在做什么 | -h, -s, --no-header, --help |
| whois | 查询WHOIS域名注册信息 | -H, * |
| find | 在目录层次结构中查找文件 | -name, -type, -size, -mtime, * |
| netstat | 网络连接信息 | -a, -n, -t, -u, -l, -p, --help |
| lspci | 列出PCI设备 | -v, -k, -mm, -nn, --help |
| lsusb | 列出USB设备 | -v, -t, -d, -s, --help |
| dig | DNS查询工具 | +short, +trace, +dnssec, @*, * |
| nslookup | 查询DNS记录 | -type=, -query=, * |
| ip | 显示网络设备和接口 | addr, link, route, neigh, -br, * |
| whereis | 定位二进制、源代码和手册文件 | -b, -m, -s, * |