返回 MCP 目录
public公开dns本地运行

Shell Command MCP Server

一个基于Docker容器的安全MCP服务器,提供隔离的Shell命令执行环境

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

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端