Shell Command MCP Server

Shell Command MCP Server

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

  • execute-bash-script-sync
  • execute-bash-script-async

安全注意事项

  • MCP 服务器在容器内以非 root 用户运行
  • 容器没有访问主机 Docker 守护进程的权限
  • 用户工作区从主机挂载,用于持久化存储

📄 许可证

MIT

  • 0 关注
  • 0 收藏,12 浏览
  • system 提出于 2025-09-30 12:42

相似服务问题