article
README
🚀 Shell 命令 MCP 服务器
这是一个 MCP(模型上下文协议)服务器,允许在 Docker 容器内执行 shell 命令。它提供了安全且隔离的工作环境,可运行命令,同时不授予对主机 Docker 守护进程的访问权限。
🚀 快速开始
先决条件
- Docker
与 Claude for Desktop 结合使用
将以下配置添加到你的 Claude for Desktop 配置文件中。
MacOS
"shell-command": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--mount",
"type=bind,src=/Users/user-name/MCPHome,dst=/home/mcp",
"ghcr.io/kaznak/shell-command-mcp:latest"
]
}
将 /Users/user-name/ClaudeWorks 替换为你想要使其对容器可用的目录。
Windows
"shell-command": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--mount",
"type=bind,src=\\\\wsl.localhost\\Ubuntu\\home\\user-name\\MCPHome,dst=/home/mcp",
"ghcr.io/kaznak/shell-command-mcp:latest"
]
}
提供一些提示
在挂载目录中操作文件。
✨ 主要特性
- 通过简单的 MCP 接口运行 shell 脚本
- 同步执行
- 具有四种不同模式的异步执行
- complete: 命令完成时通知
- line: 每输出一行通知
- chunk: 每输出一个数据块通知
- character: 每输出一个字符通知
- Kubernetes 工具包含:kubectl、helm、kustomize、hemfile
- 隔离的 Docker 容器环境,非 root 用户
- 主机容器 userid/groupid 映射实现。这使得容器能够以与主机相同的用户身份运行,确保容器创建的文件具有与主机相同的所有者和权限。
- 将主机目录挂载到容器的 /home/mcp 目录中作为持久化存储。它成为 AI 工作的家目录。
- 如果主机目录为空,则从容器中的备份初始文件开始。
📚 详细文档
设计理念
此 MCP 服务器为 AI 提供了一个与人类相似的工作环境。 授权不是通过 MCP 功能限制的,而是通过容器隔离和外部授权限制实现的。
它提供了更通用的工具,如 shell 脚本执行,因此可以无需专门了解工具使用知识即可使用它们。
服务器实现保持尽可能简单,以促进代码审核。
可用的 MCP 工具
安全注意事项
- MCP 服务器在容器内以非 root 用户运行
- 容器没有访问主机 Docker 守护进程的权限
- 用户工作区从主机挂载,用于持久化存储
📄 许可证
MIT
扫码联系在线客服