M

MCP容器命令工具

@kaznak/shell-command-mcp
0 Stars 534 次浏览 kaznak 更新于 2026-08-23

允许通过 Claude 的 MCP 接口在安全的 Docker 容器内执行 shell 命令,提供 Kubernetes 工具和隔离环境,且无需访问主机的 Docker 守护进程。

该服务暂未提供标准配置,请参考 README 手动接入

可用工具 (1 个)

该服务在 MCP 协议中暴露的工具,AI 可按需调用

execute-command 2 个参数 需填 2 项

# execute-command This tool executes shell command on bash. Each command execution spawn a new bash process.

必填参数:command、options

服务介绍

Shell Command MCP 服务器

这是一个MCP(Model Context Protocol)服务器,允许在Docker容器内执行shell命令。它提供了一个安全且隔离的工作空间来运行命令,而无需访问主机的Docker守护进程。

特性

  • 通过简单的MCP接口运行shell脚本
    • 同步执行
    • 异步执行,支持4种不同的模式
      • 完成:当命令完成时通知
      • 行:每输出一行通知一次
      • 块:每输出一块数据通知一次
      • 字符:每输出一个字符通知一次
  • 包含Kubernetes工具:kubectl, helm, kustomize, hemfile
  • 隔离的Docker容器环境,使用非root用户
    • 实现了宿主机-容器用户ID/组ID映射。这使得容器可以以与宿主机相同的用户身份运行,确保由容器创建的文件具有与宿主机创建的文件相同的拥有者和权限。
    • 将宿主机目录挂载到容器的/home/mcp目录以实现持久化。这成为AI工作的主目录。
    • 如果宿主机目录为空,则会从容器内的备份中复制初始文件。

设计理念

这个MCP服务器为AI提供了一个类似于人类工作空间的环境。
授权限制不是通过MCP功能实现的,而是通过容器隔离和外部授权限制来实现的。

它提供了更通用的工具如shell脚本执行,这样可以在没有特定工具使用知识的情况下使用它们。

服务器实现尽可能简单,以便于代码审查。

开始使用

前提条件

  • Docker

与桌面版Claude一起使用

将以下配置添加到您的桌面版Claude配置文件中。

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工具

安全考虑

  • MCP服务器在容器内以非root用户身份运行
  • 容器无法访问宿主机的Docker守护进程
  • 用户工作空间从宿主机挂载以实现持久化

许可证

MIT

相关 MCP 服务