Back to MCP directory
publicPublicdnsLocal runtime

mac-shell-mcp

一个用于在macOS上通过MCP协议安全执行终端命令的服务器,提供命令白名单和审批机制。

article

README

🚀 Mac Shell MCP 服务器

Mac Shell MCP 服务器是一款专为 macOS 打造的工具,它通过集成 MCP(Multi-Command Protocol) 来增强 shell 功能,实现对 shell 命令的安全管理与控制。

🚀 快速开始

Mac Shell MCP 服务器能有效管理和控制 macOS 的 shell 命令,保障系统安全。下面为你介绍它的安装和使用方法。

✨ 主要特性

该服务器具备以下核心功能:

  1. 🧾 命令分类管理:将 shell 命令细致划分为安全使用、需要批准使用和禁止使用三类,方便用户管理。
  2. ✅ 审批机制:针对高风险命令设置审批流程,确保只有授权命令才能执行,提升系统安全性。
  3. 🔐 权限控制:所有命令均以运行服务器的用户权限执行,有效防止 privilege escalation 攻击。
  4. ⏳ 命令排队:待批准命令会被暂存,直至明确批准或拒绝,保证命令执行的有序性。

📦 安装指南

按照以下步骤完成项目的克隆、依赖安装和构建:

  1. 克隆项目仓库:
    git clone https://github.com/cfdude/mac-shell-mcp.git
    cd mac-shell-mcp
    
  2. 安装依赖并构建:
    npm install
    npm run build
    

💻 使用示例

启动服务器

node build/server.js

配置指南

通过 npx 使用

将以下配置添加到 MCP 设置中:

对于 Brave Shell:
"mac-shell": {
  "command": "npx",
  "args": ["-y", "github:cfdude/mac-shell-mcp"],
  "alwaysAllow": [],
  "disabled": false
}

自定义安装

  1. 安装为 npm 包:
    npm install -g mac-shell-mcp
    
  2. 添加到 MCP 配置:
    "mac-shell": {
      "command": "mac-shell-mcp",
      "alwaysAllow": [],
      "disabled": false
    }
    

📚 详细文档

默认配置

安全使用命令

  • ls - 列出目录内容
  • pwd - 显示当前工作目录
  • echo - 输出文本到标准输出
  • cat - 查看文件内容
  • grep - 在文件中搜索模式
  • find - 搜索目录层次结构
  • cd - 切换目录
  • head - 输出文件开头部分
  • tail - 输出文件结尾部分
  • wc - 显示行、单词和字节数统计

需要批准的命令

  • mv - 移动或重命名文件
  • cp - 复制文件和目录
  • mkdir - 创建新目录
  • touch - 更改文件时间戳或创建空文件
  • chmod - 修改文件权限
  • chown - 更改文件所有者和组

禁止使用的命令

  • rm - 删除文件或目录
  • sudo - 以其他用户身份执行命令

扩展 whitelist

通过 MCP 工具 add_to_whitelist 可添加新的受信任命令,示例如下:

{
  "command": "npm",
  "securityLevel": "requires_approval",
  "description": "Node.js 包管理器"
}

⚠️ 重要提示

  1. 所有命令均以运行服务器的用户权限执行。
  2. 需要批准的命令会被暂存,直到被明确批准或拒绝。
  3. 禁止使用的命令将直接被拦截并显示错误信息。

🔗 项目链接

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