Back to MCP directory
publicPublicdnsLocal runtime

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

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client