Shell Command MCP Server

Shell Command MCP Server

site icon
2025.04.02 3
TypeScriptshell 命令执行Docker 容器Kubernetes 工具开发效率
Shell Command MCP Server 是一个基于 Docker 容器的 MCP(Model Context Protocol)服务器,允许在隔离环境中执行 shell 命令。它提供了一个安全的工作空间,无需访问主机 Docker 守护进程即可运行命令。
View on GitHub

Overview

基本能力

产品定位

Shell Command MCP Server 是一个为 AI 提供类似人类工作环境的工具,通过容器隔离和外部授权限制来实现安全性,使得无需专门工具使用知识即可执行 shell 脚本。

核心功能

  • 通过简单的 MCP 接口运行 shell 脚本
  • 同步执行
  • 异步执行(4 种模式)
    • complete: 命令完成时通知
    • line: 每行输出时通知
    • chunk: 每个输出块时通知
    • character: 每个字符输出时通知
  • 包含 Kubernetes 工具:kubectl, helm, kustomize, hemfile
  • 隔离的 Docker 容器环境(非 root 用户)
  • 实现主机-容器用户ID/组ID映射
  • 可挂载主机目录到容器 /home/mcp 目录实现持久化
  • 如果主机目录为空,将从容器备份中复制初始文件

适用场景

  • 在隔离环境中安全执行 shell 命令
  • 为 AI 提供类似人类的工作环境
  • 需要执行 Kubernetes 相关操作的场景

工具列表

  • execute-bash-script-sync: 同步执行 bash 脚本
  • execute-bash-script-async: 异步执行 bash 脚本

常见问题解答

  • 安全性考虑:
  • 容器内以非 root 用户运行
  • 容器无法访问主机 Docker 守护进程
  • 用户工作空间从主机挂载实现持久化

使用教程

使用依赖

  • Docker

安装教程

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"
  ]
}

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"
   ]
}

调试方式

安装完成后,可以尝试操作挂载目录中的文件进行测试。

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。